- Upgrade to argmin 0.10.0:
- new
serde1
feature to enable serialization/deserialization (required for checkpointing) - add
argmin-observer-slog
dependency
- new
- Fix default constraint tolerance (set to zero, was 2e-4)
- Remove
fmin_cobyla
implementation asnlopt_cobyla
now renamedminimize
based on NLopt implementation is more powerful Nevertheless Cobyla argmin solver is still based on initial implementation, not on NLopt one. - Remove gradient from
ObjFn
trait which is now renamedFunc
minimize
API rework to make it more Rusty.- Not all options of NLopt version are managed. Currently
cobyla::minimize
handlesxinit
,bounds
,max_eval
,ftol_rel
,ftol_abs
,xtol_rel
,xtol_abs
and 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.