Expand description
FERAL backend — pure-Rust sparse symmetric LDL^T factor.
Implements SparseSymLinearSolverInterface over feral::Solver.
The lifecycle mirrors pounce_hsl::Ma57SolverInterface:
matrix_format()returnsEMatrixFormat::TripletFormat(1-based, lower-triangle COO) so the IPMTSymLinearSolverwrapper requires no changes versus the MA57 path.initialize_structurecaches the 0-based row/col arrays needed by FERAL’sCscMatrix::from_tripletsand allocates the values buffer.multi_solverebuildsCscMatrixfrom the cached pattern + caller- filled values and dispatches toferal::Solver::factor/feral::Solver::solve_many. FERAL’s pattern-fingerprint cache reuses the symbolic factorization across iterates with identical structure (the IPM common case).increase_qualitydelegates toferal::Solver::increase_qualityand uses MA57’spivtol_changed/CallAgainprotocol so the upper-layer reload-and-retry semantics line up.
Structs§
- Feral
Config - Construction-time configuration for
FeralSolverInterface. - Feral
Solver Interface - FERAL solver implementing the IPM-side sparse symmetric backend contract.
Enums§
- Ordering
Method - Which fill-reducing ordering to use in
symbolic_factorize_with_method. - Scaling
Strategy - Re-export so option-aware callers can construct a
FeralConfigwithout taking a direct dependency onferal. User-facing scaling strategy selector.
Functions§
- parse_
ordering_ method - Parse a case-insensitive ordering tag (the values accepted by the
feral_orderingOptionsList option and thePOUNCE_FERAL_ORDERINGenv var) into the correspondingOrderingMethod. ReturnsNonefor unrecognized tags so the caller can fall back to the default. - parse_
scaling_ strategy - Parse a case-insensitive scaling tag (the values accepted by the
feral_scalingOptionsList option and thePOUNCE_FERAL_SCALINGenv var) into the correspondingScalingStrategy. ReturnsNonefor unrecognized tags (and forexternal, which carries a vector that cannot be supplied via a string option) so the caller can fall back to the default.