Skip to main content

Crate pounce_feral

Crate pounce_feral 

Source
Expand description

FERAL backend — pure-Rust sparse symmetric LDL^T factor.

Implements SparseSymLinearSolverInterface over feral::Solver. The lifecycle mirrors pounce_hsl::Ma57SolverInterface:

  • matrix_format() returns EMatrixFormat::TripletFormat (1-based, lower-triangle COO) so the IPM TSymLinearSolver wrapper requires no changes versus the MA57 path.
  • initialize_structure caches the 0-based row/col arrays needed by FERAL’s CscMatrix::from_triplets and allocates the values buffer.
  • multi_solve rebuilds CscMatrix from the cached pattern + caller- filled values and dispatches to feral::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_quality delegates to feral::Solver::increase_quality and uses MA57’s pivtol_changed / CallAgain protocol so the upper-layer reload-and-retry semantics line up.

Structs§

FeralConfig
Construction-time configuration for FeralSolverInterface.
FeralSolverInterface
FERAL solver implementing the IPM-side sparse symmetric backend contract.

Enums§

OrderingMethod
Which fill-reducing ordering to use in symbolic_factorize_with_method.
ScalingStrategy
Re-export so option-aware callers can construct a FeralConfig without taking a direct dependency on feral. User-facing scaling strategy selector.

Functions§

parse_ordering_method
Parse a case-insensitive ordering tag (the values accepted by the feral_ordering OptionsList option and the POUNCE_FERAL_ORDERING env var) into the corresponding OrderingMethod. Returns None for 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_scaling OptionsList option and the POUNCE_FERAL_SCALING env var) into the corresponding ScalingStrategy. Returns None for unrecognized tags (and for external, which carries a vector that cannot be supplied via a string option) so the caller can fall back to the default.