Skip to main content

feral_config_from_options_scoped

Function feral_config_from_options_scoped 

Source
pub fn feral_config_from_options_scoped(
    options: &OptionsList,
    carve_out: RefineCarveOut,
) -> FeralConfig
Expand description

feral_config_from_options with the limited-memory refine carve-out made explicit.

The carve-out is interior-point-specific in both of its premises, and neither holds on the active-set SQP arm. It is justified by PdFullSpaceSolver::compute_residuals already refining the unreduced Newton system — the SQP arm has no such host loop, so pounce_qp::factor::LinearSolver relies on the backend’s own refinement (“refinement is implicit in this layer”, that module’s docs) and turning it off removes refinement from the stack entirely. And it keys off hessian_approximation, which is not that arm’s Hessian selector at all: sqp_hessian is.

Measured, and this is why the parameter exists rather than the SQP path just calling the plain function: inheriting the carve-out moved 10 of 97 fixtures on the sweep’s L-BFGS leg under algorithm=active-set-sqp, while the exact leg did not move at all. Some of that movement looked like a win (mu_fallback_point_floor MaximumIterationsExceeded/200 -> SolveSucceeded/8), but it was a win bought by disabling refinement for a reason that does not apply here, and it came with hs13_bigstart landing on a different point (objective 1 -> 1.0018) and eigena2 and mpcc_scholtes4_biactive likewise. Turning refinement off on this arm may well be worth measuring on its own merits; it should not arrive as a side effect of honouring linear_solver.