Benchmarks / Competitors
Competitor Benchmarks
This benchmark compares Basin against argmin, gomez, slsqp, and nlopt. Each plot shows suboptimality, f(x) − f*, against wall-clock time on
log–log axes: how far down the objective each library gets, and how long
it spends getting there. Lower and further left is better.
SLSQP · Rosenbrock
SLSQP with analytic gradients on unconstrained Rosenbrock (n = 2), from (−1.2, 1). Basin versus slsqp 1.0.2 (a Rust translation of NLopt 2.7.1) and NLopt 2.9.1. This case does not measure constraint handling.
Gradient Descent · Rosenbrock
Steepest descent with a More–Thuente line search: first-order, identical configuration on both sides.
Nelder–Mead · Rosenbrock
Derivative-free Nelder–Mead. Basin and argmin run from a bit-identical initial simplex (standard coefficients); gomez and nlopt construct their own simplex with their default coefficients.
L-BFGS · Rosenbrock
Limited-memory BFGS (m = 10), quasi-Newton; Basin and argmin both use a More–Thuente line search; nlopt uses its bundled L-BFGS (no line-search knob exposed).
NEWUOA · Styblinski–Tang
Powell's model-based derivative-free NEWUOA. Basin's implementation is based on the modernized version from PRIMA, whereas nlopt uses Powell's reference.
Measured 2026-09-16 on AMD Ryzen 9 7900 12-Core Processor
(linux/x64). All libraries run on the Vec<f64> backend (gomez through its
own bundled nalgebra::DVector<f64>). The GD,
NM, and L-BFGS cases run from the classic Rosenbrock start to a
200-iteration cap. Each point is the median wall-clock
time per sample over 11 repeated runs (nlopt, which exposes no
per-iteration hook, is sampled per function evaluation as a best-so-far
curve); the solvers are deterministic, so only the timing varies.
For SLSQP, all three curves record the best objective seen at function evaluations, include solve initialization, and end after termination. Basin uses Kraft's composite accuracy test at 1e-10; slsqp and NLopt use an absolute function-change tolerance of 1e-10, with their other optional tolerances disabled. These stopping rules differ. Basin has a 200-iteration safety cap, and the references have a 200-evaluation cap. All three returned solutions pass an independent objective and gradient check before the harness emits results.
To watch basin's solvers converge interactively, try the visualizer.