cramer-backward
At its defaults it draws backward error of cramer's rule and of elimination on 11974 2×2 systems at 24 bits. The share of systems whose normwise backward error exceeds a given multiple of the unit roundoff. Elimination never exceeds 1.2u. Cramer's rule reaches 395u on the same systems, on a matrix whose condition number is 3.39·10⁶ and which elimination solved to 0.3u. The control curve, over uniformly random 2×2 systems, stops at 4.9u — so the failure belongs to the near-parallel family and not to a choice of scale.
cramer-backward is one function in lib/figures/determinant.js —
the determinant — the scalar that answers none of the questions it is asked. Everything below came out of it during this build, at
arguments taken from the essays rather than invented for this page. A figure here is the
figure a reader meets in an essay, and if the generator changes, this page changes with it.
At its defaults
Drawn even though every essay passes arguments — which on this site is every essay, at 100% of placements since the standard pass. A default nothing exercises is a trap for the next essay to call this with none, and this is the page where a default that has drifted from the figures around it becomes visible.
The share of systems whose normwise backward error exceeds a given multiple of the unit roundoff. Elimination never exceeds 1.2u. Cramer's rule reaches 395u on the same systems, on a matrix whose condition number is 3.39·10⁶ and which elimination solved to 0.3u. The control curve, over uniformly random 2×2 systems, stops at 4.9u — so the failure belongs to the near-parallel family and not to a choice of scale.
bits: 53
The arguments are the ones A bound that is proved passes. A value drawn at the generator's defaults instead would be a picture no essay asked for and no assertion has been run against.
The share of systems whose normwise backward error exceeds a given multiple of the unit roundoff. Elimination never exceeds 1.4u. Cramer's rule reaches 248u on the same systems, on a matrix whose condition number is 3.37·10⁶ and which elimination solved to 0.3u. The control curve, over uniformly random 2×2 systems, stops at 6.9u — so the failure belongs to the near-parallel family and not to a choice of scale.
bits: 24
The arguments are the ones A rule that is correct and unusable passes. A value drawn at the generator's defaults instead would be a picture no essay asked for and no assertion has been run against.
The share of systems whose normwise backward error exceeds a given multiple of the unit roundoff. Elimination never exceeds 1.2u. Cramer's rule reaches 395u on the same systems, on a matrix whose condition number is 3.39·10⁶ and which elimination solved to 0.3u. The control curve, over uniformly random 2×2 systems, stops at 4.9u — so the failure belongs to the near-parallel family and not to a choice of scale.
bits: 16
The arguments are the ones A rule that is correct and unusable passes. A value drawn at the generator's defaults instead would be a picture no essay asked for and no assertion has been run against.
The share of systems whose normwise backward error exceeds a given multiple of the unit roundoff. Elimination never exceeds 1.1u. Cramer's rule reaches 63u on the same systems, on a matrix whose condition number is 6.98·10⁴ and which elimination solved to 0.0u. The control curve, over uniformly random 2×2 systems, stops at 3.0u — so the failure belongs to the near-parallel family and not to a choice of scale.
What it checked while drawing
Every figure above asserted its own claims on the way to being drawn, and a claim that failed
would have failed the build rather than drawn a wrong picture. Those assertions used to leave
no trace at all: a passing one returned true and the only evidence the figure had
checked anything was that nothing crashed. The list below is what they actually said, collected
by running this generator with an observer installed — not a description of
what it is believed to check.
7 distinct claims across 4 sets of arguments, grouped below by shape — because most of them are one sentence with a different number in it, and how many separate times that sentence was put to the test is the informative part.
a precision the sweep is calibrated at
and Cramer's rule does not
by more than a factor of ten at every precision
elimination stays at the unit roundoff on every system
enough systems to reach the tail and few enough to afford
on a system whose condition number is unremarkable
while on uniformly random systems it stays within a small multiple of the roundoff
Against the rule
The rule does not apply to it. It factorises nothing, so there is no residual it could be withholding. That is worth stating rather than leaving blank: a site that reported the rule as satisfied by every generator would be counting mostly generators the rule never reached.
Across the library: the rule bites on 92
of 198 generators —
77 print a residual and
15 are exempt with a published reason;
106 factorise nothing.
Read from lib/residual-rule.js, which is the same body the gate enforces from,
and the gate's last check fails the build if this page and it disagree about any generator.
Where it is called
Changing this generator changes every figure on this list. That is what makes the list worth publishing rather than keeping in a check script.
A bound that is proved
Every error statement on this site so far is a measurement of one run. Interval arithmetic makes a different kind of claim — the answer lies in this set, for this input, with no probability attached — and its failure mode is that it returns nothing at all. On a Hilbert system it proves a bound 23 times the error it bounds, and one size later it refuses.
Elimination, and the swapA rule that is correct and unusable
Cramer's rule gives every component of the solution in closed form, in terms of determinants, and it is a theorem. On two-by-two systems whose rows are nearly parallel it returns an answer with a backward error of 458 units of roundoff where elimination returns 1.3 — on a matrix whose condition number is 32,000 and which elimination solved perfectly.
Elimination, and the swapElimination is a sequence of choices
Gaussian elimination is taught as a procedure with no decisions in it. There is one decision at every step — which row to use — and every stability property the algorithm has comes from making it well.
The arithmetic underneathProving the answer is in the box
Every other method here computes a number and estimates how wrong it is. This one returns a verdict: there is exactly one solution in this box, or there is none, or — the honest third outcome — nothing can be said. Two of the three are proofs about infinitely many points from finitely many operations.
Elimination, and the swapThe bound that is never attained
Partial pivoting's stability guarantee permits the entries to double at every step — a factor of 5.5·10¹¹ at n = 40. The measured growth on random matrices of that size is about three. The gap is eleven orders of magnitude, and the guarantee is still worth having.
Two errors, and whose fault they areThe exact answer to a nearby problem
A good algorithm does not give an approximate answer to your problem. It gives the exact answer to a problem very close to yours — and once that is the definition, a wrong result has two possible authors and they can be measured apart.
Iterating, instead of factorisingThe formula that was already optimal
Ask for the interpolation that minimises the energy of its own columns and the answer is the classical AMG formula — to zero at every row of the one-dimensional Laplacian, and to four digits in two dimensions. On the operator rotated to 45° the two part company, and the gap between them is a diagnostic that needs no reference solution.
Elimination, and the swapThe inverse that is never formed
x = A⁻¹b is how the solution of a linear system is written and it is not how it is computed. The usual reason given is cost — three times the arithmetic. The real reason is that one of the two routes is backward stable and the other is not, and at κ = 10¹⁴ they differ by twelve orders of magnitude in the number that says whose fault a wrong answer is.
Elimination, and the swapThe swap that is not optional
Run elimination without a row interchange on a matrix that needs one and nothing announces a failure. There is no division by zero, no warning, and an answer of the right shape. It is simply wrong, and how wrong depends on a number you did not look at.