accumulation-excess
At its defaults it draws what a chain of truncations costs, against the best rank-4 answer, in two regimes. Both curves are the error of a running rank-4 object divided by the error of the best rank-4 approximation of the exact sum — the answer nothing in a real code has and none could beat. The standard reading of formatted arithmetic is that a truncation after every operation must accumulate, so a chain of 32 of them is dangerous. Measured, the worst point on either curve is 1.040×. A naive bound multiplies the per-step error by the number of steps and would put the line at 32. The roundings are doing something — the energy they have discarded, which a truncation can only remove, grows from 1.8·10⁻⁷ to 0.03 across the sweep — they are just not doing it to the answer. What does limit the answer is whether the exact sum is still nearly rank 4, and the two regimes disagree about that by a factor of 1022 at the second term.
accumulation-excess is one function in lib/figures/recompress.js —
arithmetic in the format — the one operation it is not closed under, and what a hundred roundings cost. 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.
Both curves are the error of a running rank-4 object divided by the error of the best rank-4 approximation of the exact sum — the answer nothing in a real code has and none could beat. The standard reading of formatted arithmetic is that a truncation after every operation must accumulate, so a chain of 32 of them is dangerous. Measured, the worst point on either curve is 1.040×. A naive bound multiplies the per-step error by the number of steps and would put the line at 32. The roundings are doing something — the energy they have discarded, which a truncation can only remove, grows from 1.8·10⁻⁷ to 0.03 across the sweep — they are just not doing it to the answer. What does limit the answer is whether the exact sum is still nearly rank 4, and the two regimes disagree about that by a factor of 1022 at the second term.
k: 4
The arguments are the ones A correction cheaper than the problem 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.
Both curves are the error of a running rank-4 object divided by the error of the best rank-4 approximation of the exact sum — the answer nothing in a real code has and none could beat. The standard reading of formatted arithmetic is that a truncation after every operation must accumulate, so a chain of 32 of them is dangerous. Measured, the worst point on either curve is 1.040×. A naive bound multiplies the per-step error by the number of steps and would put the line at 32. The roundings are doing something — the energy they have discarded, which a truncation can only remove, grows from 1.8·10⁻⁷ to 0.03 across the sweep — they are just not doing it to the answer. What does limit the answer is whether the exact sum is still nearly rank 4, and the two regimes disagree about that by a factor of 1022 at the second term.
k: 8
The arguments are the ones The rounding that was not the problem 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.
Both curves are the error of a running rank-8 object divided by the error of the best rank-8 approximation of the exact sum — the answer nothing in a real code has and none could beat. The standard reading of formatted arithmetic is that a truncation after every operation must accumulate, so a chain of 32 of them is dangerous. Measured, the worst point on either curve is 1.058×. A naive bound multiplies the per-step error by the number of steps and would put the line at 32. The roundings are doing something — the energy they have discarded, which a truncation can only remove, grows from 1.7·10⁻⁷ to 0.036 across the sweep — they are just not doing it to the answer. What does limit the answer is whether the exact sum is still nearly rank 8, and the two regimes disagree about that by a factor of 1005 at the second term.
k: 2
The arguments are the ones The rounding that was not the problem 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.
Both curves are the error of a running rank-2 object divided by the error of the best rank-2 approximation of the exact sum — the answer nothing in a real code has and none could beat. The standard reading of formatted arithmetic is that a truncation after every operation must accumulate, so a chain of 32 of them is dangerous. Measured, the worst point on either curve is 1.034×. A naive bound multiplies the per-step error by the number of steps and would put the line at 32. The roundings are doing something — the energy they have discarded, which a truncation can only remove, grows from 1.8·10⁻⁷ to 0.031 across the sweep — they are just not doing it to the answer. What does limit the answer is whether the exact sum is still nearly rank 2, and the two regimes disagree about that by a factor of 1109 at the second term.
k: 6
The arguments are the ones The rounding that was not the problem 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.
Both curves are the error of a running rank-6 object divided by the error of the best rank-6 approximation of the exact sum — the answer nothing in a real code has and none could beat. The standard reading of formatted arithmetic is that a truncation after every operation must accumulate, so a chain of 32 of them is dangerous. Measured, the worst point on either curve is 1.049×. A naive bound multiplies the per-step error by the number of steps and would put the line at 32. The roundings are doing something — the energy they have discarded, which a truncation can only remove, grows from 1.8·10⁻⁷ to 0.033 across the sweep — they are just not doing it to the answer. What does limit the answer is whether the exact sum is still nearly rank 6, and the two regimes disagree about that by a factor of 1005 at the second term.
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.
13 distinct claims across 5 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.
32 truncations leave the drifting accumulation within a few per cent of the best rank-4 answer — asserted 4 times
32 truncations leave the independent accumulation within a few per cent of the best rank-4 answer — asserted 4 times
a family this file defines
a number of terms the dense reference is affordable at
a rank the accumulation is affordable at
and the two regimes disagree about the representability from the second term
matmul shapes agree
Against the rule
It draws a decomposition and prints its residual. It calls
accumulationSlopes,
and every figure above carries the badge — which residualcheck verifies by looking
for it in the emitted SVG rather than by finding the call that builds one. A badge that is
constructed and then left out of the body is the failure that check exists for.
Across the library: the rule bites on 141
of 264 generators —
126 print a residual and
15 are exempt with a published reason;
123 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 correction cheaper than the problem
Sherman and Morrison's formula updates a solved system for a rank-one change to the matrix, at 4n² operations instead of (2/3)n³. It is exact algebra. On a problem whose updated matrix is the identity — condition number one, the easiest system there is — it returns a forward error of 2.5·10⁻⁴ where a direct solve returns 10⁻¹⁶.
Neither sparse nor denseA rank that is a number of digits
Ask a kernel block for two digits and it costs two columns; ask for fourteen and it costs nine. The curve is a straight line at 0.55 columns a decade, and the bound the geometry gives is a straight line too — at 3.32, which is the same shape and six times the price.
The arithmetic underneathThe order they are added in
Addition is associative in the algebra and is not associative in the arithmetic. The same million numbers, added in a different order, give answers that differ in the third significant figure — and the fix is not a wider float, it is a different order.
Neither sparse nor denseThe rounding that was not the problem
A rank-k block plus a rank-k block is a rank-2k block, exactly, so every arithmetic in this format truncates after every addition. A Cholesky performed inside it does ninety-eight of those and its residual is 1.14·10⁻⁹ against a representation error of 1.40·10⁻⁹ — the roundings cost nothing measurable.