Expand description
Framework: traits, state shapes, the iteration driver, and the termination layer. The slot taxonomy is:
problem— what the user implements about their objective:CostFunction,Gradient,Residual/Jacobian(least squares), andHessian(second order). Future: operators (matrix-free).numdiff— finite-difference derivative synthesis: theFiniteDiffwrapper addsGradient/Jacobian/Hessianto a problem that only exposes function values.constraint— constraint markers carried on the problem (tenet 4 inAGENTS.md):BoxConstraintsandLinearInequalityConstraints.barrier— theLogBarrieradapter that rewrites a linearly-constrained problem as the unconstrained log-barrier objective consumed by theBarrierMethod.state— what a solver carries between iterations:Statefor the minimum,GradientState/SimplexStatewhen a solver carries richer info that termination criteria can read.solver— theSolvertrait every concrete solver implements. Lifecycle isinitonce, then repeatednext_iter, with an optionalterminatehook.termination— the framework-levelTerminationCriteriontrait plus shipped criteria. Each criterion bounds on the minimum state shape it needs (tenet 3), so mismatches are compile errors rather than runtime no-ops.executor— the driver:Executor/Stepper/run_loop. The canonical iteration ordering is documented on theexecutormodule.inner— the composition adapter:InnerExecutorwrapsrun_loopfor outer solvers that drive an inner solver per outer iteration. SeeAGENTS.md“Solver composition” for the contracts.math— the small shared math layer (ScaledAdd,NormSquared, …) that backend-generic solvers depend on. Per tenet 5, this stays honest: only ops every backend can implement well live here. LA-heavy ops will live in a separate tier when the first solver wants them.
Modules§
- augmented_
lagrangian - Augmented-Lagrangian adapter for linear equality constraints.
- barrier
- Log-barrier adapter for linear inequality constraints.
- constraint
- Constraint markers carried on the problem (tenet 4 in
AGENTS.md).BoxConstraints(interval bounds, consumed by projection-based solvers),LinearInequalityConstraints(A x ≤ b, consumed by the log-barrier method), andLinearEqualityConstraints(A x = b, consumed by the augmented-Lagrangian method). - executor
- Iteration driver. The high-level entry point is
Executor;Stepperexposes one-iteration-at-a-time control, andrun_loopis the borrowed-problem variant used by composed solvers. - inner
- Composition adapter: drive an inner solver from inside an outer
solver’s
next_iter. - math
- Math abstraction the solvers depend on.
- numdiff
- Finite-difference derivative synthesis.
- problem
- Problem traits the user implements about their objective. Solvers
bind on whichever subset they need (e.g. gradient descent requires
CostFunctionandGradient; Nelder-Mead only needsCostFunction). - rng
- Seedable, wasm-safe RNG used by stochastic solvers.
- solver
- The
Solvertrait every concrete solver implements. See the trait contract for the lifecycle (initonce, then repeatednext_iter, with an optionalterminatehook) and theexecutormodule for the canonical iteration ordering. - state
- Solver state shapes.
- termination
- Termination layer: the
TerminationCriteriontrait and the framework-level criteria solvers can be terminated by. Each criterion bounds on the minimum state shape it needs (tenet 3 inAGENTS.md), so mismatches are compile errors rather than runtime no-ops.