Benchmarks / Solvers

Solver Benchmarks

This benchmark compares optimizers from Basin across several starting points sampled randomly. Each run is capped on a fixed 20.00 ms wall-clock budget and stopped early on reaching suboptimality 1e−10. Lines within a panel share the same f(x₀); lower and further left is better.

Rosenbrock

n = 10, starts sampled uniformly in [−2, 2]10.

Gradient Descent Nelder–Mead BFGS L-BFGS CMA-ES
suboptimality f(x) − f*

Seed 1 f(x₀) = 700

1e31e01e-31e-61e-91 µs10 µs100 µs1 ms10 ms

Seed 2 f(x₀) = 5836

1e41e11e-21e-51e-81 µs10 µs100 µs1 ms10 ms100 ms

Seed 3 f(x₀) = 3435

1e41e11e-21e-51e-81 µs10 µs100 µs1 ms10 ms

Seed 4 f(x₀) = 7689

1e41e11e-21e-51e-81 µs10 µs100 µs1 ms10 ms100 ms

Seed 5 f(x₀) = 2849

1e41e11e-21e-51e-81 µs10 µs100 µs1 ms10 ms

Seed 6 f(x₀) = 5014

1e41e11e-21e-51e-81 µs10 µs100 µs1 ms10 ms100 ms

wall-clock time

Measured 2026-05-28 on AMD Ryzen 9 7900 12-Core Processor (linux/x64). Every solver runs on the Vec<f64> backend, capped at 20.00 ms per (solver, seed) run. Each per-iteration timestamp is the median over 11 repetitions of the same deterministic run; absolute times are machine-specific.

For the basin-versus-other-libraries view, see the competitors axis; for backend cost on the same solvers, see the backends axis. To watch the same solvers converge interactively, try the visualizer.