Skip to main content

Module schur_aug_system_solver

Module schur_aug_system_solver 

Source
Expand description

Block-triangular / Schur augmented-system solver (pounce#180 item 2, Phase 2).

Wraps the standard StdAugSystemSolver — reusing its exact KKT assembly and RHS packing — but routes the assembled system through a FeralSchurSolver over a caller-supplied F/S partition (see crates/pounce-feral/src/schur.rs). The partition is given as KKT-space indices (0..dim in the x, s, c, d block order StdAugSystemSolver assembles); the S block is Schur-complemented out and only the two diagonal blocks are factorized, with inertia recovered a priori via Sylvester’s law.

Gate + fallback (first-class, per the scope doc). The Schur path helps only when n_schur ≪ n_f; and it is feral-specific. This wrapper falls back to the plain StdAugSystemSolver — transparently, preserving every solve — whenever: the Schur fraction exceeds max_schur_frac, the partition is malformed for the current KKT dimension, or the Schur backend reports a FatalError. A fallback is permanent for the rest of the solve (the KKT pattern is fixed across IPM iterations, so re-deciding every iterate is pointless).

Structs§

SchurAugSystemSolver