- Move the argmin solver,
CobylaSolver, in its own dedicated cratecobyla-argmin
- Gate argmin COBYLA solver behind
argminfeature. Migration guide: If you useCobylaSolverchange yourCargo.tomlas follows:cobyla = { version = "0.8", features = ["argmin"] }
- Upgrade to argmin 0.11.0
- Bump to edition 2024
- Use
web-timeinstead of deprecatedinstant
- Upgrade to argmin 0.10.0:
- new
serde1feature to enable serialization/deserialization (required for checkpointing) - add
argmin-observer-slogdependency
- new
- Fix default constraint tolerance (set to zero, was 2e-4)
- Remove
fmin_cobylaimplementation asnlopt_cobylanow renamedminimizebased on NLopt implementation is more powerful Nevertheless Cobyla argmin solver is still based on initial implementation, not on NLopt one. - Remove gradient from
ObjFntrait which is now renamedFunc minimizeAPI rework to make it more Rusty.- Not all options of NLopt version are managed. Currently
cobyla::minimizehandlesxinit,bounds,max_eval,ftol_rel,ftol_abs,xtol_rel,xtol_absand only inequality contraints (like c >= 0). See documentation for further details.
COBYLA implementation coming from the NLopt project is now also available (as nlopt_cobyla) allowing to compare
with the initial implementation (fmin_cobyla). This new implementation went through the same process of using c2rust
transpilation from initial C implementation.
COBYLA is now also implemented as an argmin::Solver to benefit from argmin framework tooling. See example
COBYLA C code has been translated to Rust using c2rust then manually edited.
Rust wrapper for COBYLA optimizer (COBYLA stands for Constrained Optimization BY Linear Approximations). COBYLA C code was copied from here and wrapped using the callback trick implemented in nlopt-rust project.