Skip to main content

Module solver_contract

Module solver_contract 

Source
Expand description

§Outer-objective contract (lower shared layer)

The interface types that the families layer must name, implement, and return to participate in outer smoothing-parameter optimization, hosted below both families and solver so families stop importing up into crate::solver::rho_optimizer (#1135).

What lives here is exactly the family ↔ solver contract: the matrix-free OuterHessianOperator trait that families implement, the OuterEval / HessianResult result types they return, the EfsEval step bundle, and the capability enums (Derivative, DeclaredHessianForm, OuterHessianMaterialization) plus the operator-shape error (OuterStrategyError).

What does not live here is the solver’s use of the contract — the outer runner, ARC/trust-region planning, seeding, caching, barrier configuration, and OuterProblem — all of which stay in crate::solver::rho_optimizer and depend downward on this module. crate::solver::rho_optimizer re-exports these names so existing crate::solver::rho_optimizer::* paths keep working.

Structs§

EfsEval
Result bundle returned by the EFS (extended Fellner–Schall) evaluation path. Pure data: families compute the additive step and the optional curvature/gradient diagnostics; the solver consumes them.
OuterEval
Shared outer-objective result used by optimizer-facing objective implementations.

Enums§

DeclaredHessianForm
Capability-time declaration of what shape the outer Hessian takes. Replaces the binary Derivative for the Hessian field on OuterCapability: callers that know the shape upfront declare it here, and the planner routes between dense ARC and matrix-free trust-region before seed evaluation rather than dynamically branching on seed_eval.hessian at runtime.
Derivative
Whether an analytic derivative is available for a given order.
HessianResult
Explicit Hessian result replacing Option<Array2<f64>>.
OuterHessianMaterialization
Exact dense-materialization route exposed by an outer Hessian operator.
OuterStrategyError
Typed error for the outer-strategy Hessian-operator surface.

Traits§

OuterHessianOperator
Matrix-free outer Hessian operator.