Expand description
A pure-Rust, dependency-free port of M. J. D. Powell’s BOBYQA (Bound Optimization BY Quadratic Approximation) — a derivative-free, box-constrained local optimizer, ported from PRIMA’s modern Fortran.
Trajectory-parity-tested bit-exact against PRIMA (natively and on
wasm32-wasip1).
Three invariants hold across every call:
- Feasibility — every point at which the objective is evaluated lies
within
[lower, upper]. - Determinism — no global mutable state, no RNG, no I/O, no threads; identical inputs give identical outputs on a given target.
- Zero-alloc warm path —
Bobyqa::newis the sole heap-allocation site; a builtBobyqathen runsBobyqa::minimizewith no further allocation.
Structs§
- Bobyqa
- A reusable BOBYQA solver: holds every buffer the algorithm needs, built
once per problem size and driven across many
Bobyqa::minimizecalls. - Config
- Tuning knobs for
Bobyqa. NoDefault:npt’s default (2n + 1) needsn— useConfig::newand struct-update syntax for overrides. - Outcome
- The result of one
Bobyqa::minimizecall.
Enums§
- Status
- Why the solver stopped (or why construction failed).