Migrating Convergence Settings

Basin now configures numerical convergence on solvers and execution limits on executors. The former criterion facility and abbreviated setters remain available during Basin 1.x and are scheduled for removal in Basin 2.0.

let solver =
    GradientDescent::new(1e-3).with_absolute_gradient_tolerance(1e-6);
let result = Executor::from_start(problem, solver, x0)
    .max_iter(50_000)
    .max_cost_evals(100_000)
    .run()?;

See each solver’s API documentation for its tolerance setters and numerical conventions. The ConfiguredSolver reference explains optional tolerance semantics and how checks combine. The Executor reference documents execution budgets, application stops, and checkpoints.

For a working introduction, see Getting Started. The authoritative signatures and defaults live in the API reference.