pub fn eliminate(rows: Vec<Vec<Scalar>>, n: usize) -> EliminationExpand description
Gauss-Jordan elimination of rows (each over n variables) with
complete pivoting: each pivot the entry of largest magnitude among the
rows and the columns not used yet — a free choice among those that
cannot be zero; elimination stops when every candidate could be zero.
Which constraints are independent and which variables they determine is
decided from the rows’ own enclosures; where it matters for correctness,
crate::solvers::system’s enclosure verifies what it is used for.
Complete, not column by column: going column by column takes the first
column with any entry that cannot be zero, and rounding leaves entries
of 1e-16 that cannot. Such a pivot determines a variable the
constraints barely touch, in place of one they do — a half circle
tangent to two parallel sides was left with its sweep free and two
tangencies over the same coordinate, and could not be enclosed.