The arithmetic underneath

Three walks and one bound

A left-to-right sum, a chain of three thousand rotations and a conjugate gradient residual recurrence share no arithmetic and no vocabulary. Each has a standard bound that is linear in whatever it accumulates against. All three come out at a half — 0.486, 0.554 and 0.507 — and nothing is rescaled.

Worth reading first: The order they are added in · The direction the error leans · Stable once, and three thousand times.

The essay on the order terms are added in makes a remark in passing: the bound on a left-to-right sum is n·u, and the measured errors behave more like √n·u. It is one sentence, it is not the point of that essay, and it is the kind of observation that gets filed as a curiosity about summation.

Two other measurements in this collection have since produced the same number, in objects that share no arithmetic with a sum and none with each other. This essay is what happens when the three are put on one pair of axes.

Three accumulations, each against its own quantity, each divided by its own first pointA left-to-right sum against the number of terms, at a fitted slope of 0.486; a chain of rotations against the number of steps, at 0.554; and a conjugate gradient residual recurrence against the largest iterate, at 0.507. The three share no arithmetic and no vocabulary. Each has a standard bound that is linear in whatever it accumulates against, drawn here as the upper line, and each comes out at half of it. Nothing is rescaled except the division by each series' own first point, which is what makes three quantities of different sizes comparable in slope and in nothing else.110¹10²10³110¹10²10³the accumulating quantity, relative to its first valuethe error, relative to its first valuethe bounds: slope 1what all three do: slope ½three mechanisms, one exponenta left-to-right sum0.49a chain of rotations0.55a residual recurrence0.51every bound's slope1spread of the three0.067a bound is a sum of the roundingsand the roundings have signs
Fig. 1 Three accumulations, each against its own accumulating quantity, each divided by its own first point so that only the slopes are comparable. The upper line is every bound and the lower is a half.

The three

A left-to-right sum. Terms added one at a time into a running total. The bound on the error after n terms is n·u·Σ|xᵢ|, and it is the bound every account of floating-point summation states first. The summands here are positive and exactly representable in the working precision, and the reference is the same sum accumulated in double — which is not merely better but exact, because 24-bit summands and at most 2¹⁵ of them need 39 bits and a double has 53.

Fitted over nine sizes from 64 terms to 32,768: slope 0.486.

A chain of rotations. A sliding window of 24 rows on 6 columns, one row added and one removed at every step by Givens and hyperbolic rotations, with the triangular factor never rebuilt from the data. The bound on the drift is linear in the number of steps. The reference is the Gram matrix formed in BigInt from integer parts, so it too is exact.

Fitted over two decades of step count: slope 0.554.

A residual recurrence. Conjugate gradients on a diagonal matrix with one small eigenvalue, where r ← r − αAp accumulates and nothing recomputes it. The bound is u·‖A‖·max‖x_j‖, linear in the largest iterate. The reference is ‖b − Ax‖ recomputed from the iterate, on a matrix whose products are exact.

Fitted over ten decades of iterate size: slope 0.507.

Relative error of three summation algorithms in binary32A log–log plot of relative error against the number of terms for naive, pairwise and compensated summation, each measured against the exactly rounded sum.10¹10²10³10⁴10⁵10⁶10⁻⁹10⁻⁷10⁻⁵10⁻³10⁻¹number of terms addedrelative error against the exact sumin orderin a treecompensatedbinary32 · terms are 1/icompensated: 3·10⁻⁸
Fig. 2 The first of the three in its own field: the error of a recursive sum against the number of terms.
How far a carried triangular factor drifts from the data, over 2976 steps of a sliding windowA window of 24 rows on 6 columns, moved one row at a time: each step folds a row in with Givens rotations and removes one with hyperbolic rotations, and the factor is never rebuilt from the rows. The rows are integers times powers of two, so AᵀA is exact in a double and the vertical axis is a distance from the answer. No single step amplifies by more than 2.72, no downdate fails, and after 2976 steps the factor is 3.87·10⁻¹⁴ from the matrix it is supposed to factor — a fitted slope of 0.554 in the step count, against a bound whose slope is 1.10²10³10⁴10⁻¹⁷10⁻¹⁶10⁻¹⁵10⁻¹⁴10⁻¹³10⁻¹²steps taken‖RᵀR − AᵀA‖ ⁄ ‖AᵀA‖the bound, linear in the steps√k · uevery step safe, the chain notdrift after the run3.9·10⁻¹⁴the bound there3.3·10⁻¹³√k · u there6.1·10⁻¹⁵worst single amplification2.7worst leverage met0.69refactorisations1backward stable onceand three thousand times is a different claim
Fig. 3 The second: what a carried triangular factor collects over three thousand steps that are individually safe.
How far the two residuals drift apart, against how large the iterates got on the waySix runs, differing only in the smallest eigenvalue of the matrix, which sets how far the iterates travel: from 9309 to 9.31·10¹³, ten decades of it. The upper line is the standard bound, u·‖A‖·max‖x‖, which every run stays inside. The lower series is what the drift actually does, and its fitted slope is 0.507 where the bound's is 1 — so the roundings are a random walk rather than a sum, the bound is correct, and it is loose by a square root that reaches 9·10⁴ across the sweep.10³10⁶10⁹10¹²10¹⁵10⁻¹⁵10⁻¹²10⁻⁹10⁻⁶10⁻³1largest iterate on the way, ‖x‖difference between the two residualsthe bound, linear in ‖x‖what it does, slope 0.51a bound of one, a walk of a halffitted slope0.51the bound's slope1smallest gap measured4.6·10⁻¹⁵largest gap measured5.1·10⁻¹⁰share of the bound, near end6.6·10⁻⁴share of the bound, far end7.3·10⁻⁹the bound is rightand loose by a square root
Fig. 4 And the third: how far a residual recurrence drifts from the residual of the answer it belongs to.

Why they are comparable at all, and only in one way

Three numbers agreeing is worth nothing without saying what would have made them disagree, and there is a real difficulty here that the figure’s construction is about.

The three quantities are a relative error of a sum, a relative drift of a Gram matrix and a relative residual gap. They are not the same size, they are not in the same units, and there is no scaling that would make them so. Any drawing that put them on a shared absolute axis would be claiming a correspondence that does not exist.

What is comparable is the exponent. Each series is divided by its own first point, and each independent variable by its own first value, so all three start at (1, 1) and the only thing left on the page is how each one grows. The claim is about slopes and nothing else, and the figure is constructed so that no other claim can be read off it.

The spread of the three is 0.068, which is smaller than the distance from any of them to 1.

Three accumulations, each against its own quantity, each divided by its own first pointA left-to-right sum against the number of terms, at a fitted slope of 0.486; a chain of rotations against the number of steps, at 0.554; and a conjugate gradient residual recurrence against the largest iterate, at 0.507. The three share no arithmetic and no vocabulary. Each has a standard bound that is linear in whatever it accumulates against, drawn here as the upper line, and each comes out at half of it. Nothing is rescaled except the division by each series' own first point, which is what makes three quantities of different sizes comparable in slope and in nothing else.110¹10²10³10⁴10⁵110¹10²10³10⁴10⁵the accumulating quantity, relative to its first valuethe error, relative to its first valuethe bounds: slope 1what all three do: slope ½three mechanisms, one exponenta left-to-right sum0.49a chain of rotations0.55a residual recurrence0.51every bound's slope1spread of the three0.067a bound is a sum of the roundingsand the roundings have signs
Fig. 5 The same comparison over a wider window. None of the three bends, which is the check worth making: a slope of a half over one decade is a coincidence and over four it is a mechanism.
Three accumulations, each against its own quantity, each divided by its own first pointA left-to-right sum against the number of terms, at a fitted slope of 0.486; a chain of rotations against the number of steps, at 0.554; and a conjugate gradient residual recurrence against the largest iterate, at 0.507. The three share no arithmetic and no vocabulary. Each has a standard bound that is linear in whatever it accumulates against, drawn here as the upper line, and each comes out at half of it. Nothing is rescaled except the division by each series' own first point, which is what makes three quantities of different sizes comparable in slope and in nothing else.110¹10²110¹10²the accumulating quantity, relative to its first valuethe error, relative to its first valuethe bounds: slope 1what all three do: slope ½three mechanisms, one exponenta left-to-right sum0.49a chain of rotations0.55a residual recurrence0.51every bound's slope1spread of the three0.067a bound is a sum of the roundingsand the roundings have signs
Fig. 6 And over a narrower one, where the bound has not yet run away and the difference between a half and a one looks like a detail.

Why the bounds have to be linear

The bounds are not wrong and it is worth being clear about why they say 1 rather than a half.

A bound is a statement about the worst case, and it is obtained by taking absolute values. If the kth operation contributes an error of size at most εₖ, the total is at most Σ|εₖ| — and that sum is linear in the number of terms because every term is counted with a plus sign. There is no way to obtain anything else while remaining a bound: a sequence of roundings could all point the same way, on some input, and a bound has to cover it.

What actually happens is that they do not. A rounding to nearest is as likely to be up as down, the errors are close to uncorrelated, and a sum of k of them of typical size ε is of size ε√k rather than εk. That is the central limit theorem doing the only thing it does, and it is why the same exponent appears in three mechanisms that share nothing else: the mechanism is the sign of the rounding, and every one of the three has roundings.

Rounding 1.42 to 4 significand bits, five waysA number line of the representable values in one octave, with the exact value marked between two of them and a row for each rounding mode showing which neighbour it returns.11.131.251.381.51.631.751.882exact 1.42nearest1.375toward zero1.375toward +∞1.5toward −∞1.375stochastic36% upstochastic, measuredposition between neighbours0.36share of draws rounded up0.369 representable values between 1 and 2four functions and one distribution
Fig. 7 Where the sign comes from, in the field that measures it: rounding to nearest, and the two directions it can go.
Every column's 1-norm on a 24×24 matrix built to stop Hager's walk one column short24 bars, one per column, each the sum of the absolute values in that column — the quantity the estimator maximises, whose largest is the matrix's 1-norm. The walk visits 1 of them and returns 24.00; column 2 has 1-norm 474.24 and is never visited, because its entries alternate in sign and cancel against every sign vector the walk stands on.the estimator maximises this quantity over the columns it visitscolumn 1 ‹visited›24column 2 ‹the answer›474.2column 322.8column 422.8column 522.8column 622.8column 722.8column 822.8column 922.8column 1022.8column 1122.8column 1222.8column 1322.8column 1422.8column 1522.8column 1622.8column 1722.8column 1822.8column 1922.8column 2022.8column 2122.8column 2222.8column 2322.8column 2422.8estimate 24.0a walk that stopped earlythe estimate returned24the true 1-norm474columns visited1products with the matrix5the walk's own stopping test firedand every column it could see was smaller
Fig. 8 A random walk drawn as one, from the field about estimating what cannot be looked at. The shape in this essay is the same shape arriving in three places nobody was looking for it.

What the difference is worth

A factor of √k is not a subtlety. It is the whole difference between a bound that is usable and one that is not.

  • At 1,000 steps, a linear bound is 32 times the behaviour.
  • At 10⁶ steps, it is a thousand times.
  • At 10⁹, which is a long-running stream or a large time-stepping run, it is thirty thousand.

So a code sized against the bound is sized for an event that will not happen, and a code sized against the behaviour has no guarantee. Both readings are in use and both are defensible; what is not defensible is not knowing which one a number came from.

The measured version has one more property worth naming: it is not a bound, and it is not a theorem. It is what these three accumulations did on these inputs, and a different input distribution — summands of one sign, a drift that is systematic rather than random, an operator whose roundings correlate — would produce something else. The collection’s own summation essay measures exactly that: five ways of rounding the same sum, of which two rise like √n and the others do not.

Communication for a 512×12 factorisation on 16 processorsTwo counts for the same factorisation. Rounds on the critical path: 48 for the column sweep, 4 for the reduction tree, 4 for Cholesky QR — a factor of n between the first and the other two. Words sent: 1170, 1170 and 2160 — the sweep and the tree send the same number, and the method with the fewest rounds sends the most.rounds on the critical pathHouseholder sweep48reduction tree4Cholesky QR4words sentHouseholder sweep1170reduction tree1170Cholesky QR2160two counts, two rankingsrounds, sweep ÷ tree12words, Cholesky ÷ tree1.8arithmetic, tree ÷ sweep1.5the rounds separate the threeand the words do not
Fig. 9 A count that really is linear, from the field about what a computation moves. Not everything that accumulates is a walk, and the distinction is worth keeping sharp.
Relative error of a sum against the number of terms, at 24 significand bitsFive curves of relative error against the number of terms, both axes logarithmic. Three rise with unit slope; two rise with about half that.10²10³10⁴10⁻⁸10⁻⁷10⁻⁶10⁻⁵10⁻⁴terms summedrelative error+∞, −∞ 1.01zero 1.00stochastic 0.50nearest 0.47√n against n, fittednearest, fitted exponent0.47stochastic, fitted exponent0.5toward +∞, fitted exponent1twelve seeds averaged at each sizethe slope is the bias, not the precision
Fig. 10 And a drift with a direction in it, from the field on rounding modes: rounding towards zero biases every error the same way, and there the linear growth is what happens.

The one that is not a walk

The counterweight is in this collection already and it is the reason the finding is a finding rather than a truism.

Round towards zero instead of to nearest and the errors stop having signs: every one of them points the same way, the walk becomes a sum, and the growth becomes linear — which is exactly the bound. The essay on the direction the error leans measures it, and the difference between the two rounding modes on the same sum is the difference between the two slopes in this essay’s figure.

So the half is a property of unbiased rounding rather than of accumulation, and the bound’s 1 is attainable rather than merely conservative: it is what a biased rounding actually does. Three unrelated mechanisms agree at a half because all three are running the same unbiased arithmetic, and a fourth mechanism running biased arithmetic would sit on the upper line.

That is what makes the three-way agreement worth drawing. It is not that bounds are pessimistic; it is that this particular pessimism has a cause, the cause is in the arithmetic rather than in any of the three algorithms, and it can be removed by changing the arithmetic.

Rounding 1.42 to 4 significand bits, five waysA number line of the representable values in one octave, with the exact value marked between two of them and a row for each rounding mode showing which neighbour it returns.11.131.251.381.51.631.751.882exact 1.42nearest1.375toward zero1.375toward +∞1.5toward −∞1.375stochastic36% upstochastic, measuredposition between neighbours0.36share of draws rounded up0.369 representable values between 1 and 2four functions and one distribution
Fig. 11 The rounding modes side by side, from the essay that measures which of them lean.
A box rotated 20 times, and the smallest box containing itTwo widths against the number of rotations, on a logarithmic vertical axis. The set's width is a flat line, because a rotation is an isometry. The interval enclosure's climbs geometrically — by a factor of 1.4142 a step against a predicted √2 — and after 20 rotations it is 1024 times larger than the thing it encloses.036912151810¹10²10³rotationswidththe enclosurethe seta rotation is an isometrymeasured growth a step1.4√2, from the geometry1.4enclosure ÷ set after 201024no rounding error is responsible for any of thisa higher precision does not touch it
Fig. 12 And what a biased accumulation does over a run, which is the upper line of this essay’s figure appearing as a measurement rather than as a bound.

What a half predicts that a one does not

There is a use for the exponent beyond arguing about bounds, and it is the reason it is worth measuring rather than quoting.

It says what a refresh period buys. If the drift after k steps grows like √k, then refactorising every m steps holds the worst drift at √m·u rather than at √k·u — so quartering the period halves the drift, and the relationship between what is spent and what is bought is a square root in both directions. Under a linear model the same arithmetic says quartering the period quarters the drift, which is four times more optimistic and would lead somebody to buy a much shorter period than they need.

The measured table on the sliding window is exactly that: never rebuilding gives 6.6·10⁻¹⁴, every five hundred gives 2.9·10⁻¹⁴, every hundred gives 5.7·10⁻¹⁵ and every twenty-five gives 2.2·10⁻¹⁶. From five hundred to twenty-five is a factor of twenty in the period and a factor of 132 in the drift — faster than a square root, because the shortest period is holding the drift near the floor rather than on the curve.

And it says when a run is long enough to care. A walk reaches a stated error at k steps where a sum reaches it at √k, so the crossover between “this never matters” and “this dominates” is at a different place by an amount that grows with the run. For the residual recurrence the practical statement is that the gap is invisible below iterates of about 10⁴ and nine orders wide at 10¹⁴, which is a range no single rule of thumb covers.

Both of those are quantitative uses of an exponent, and neither is available from a bound.

How far a carried triangular factor drifts from the data, over 2976 steps of a sliding windowA window of 24 rows on 6 columns, moved one row at a time: each step folds a row in with Givens rotations and removes one with hyperbolic rotations, and the factor is never rebuilt from the rows except every 100 steps. The rows are integers times powers of two, so AᵀA is exact in a double and the vertical axis is a distance from the answer. No single step amplifies by more than 2.72, no downdate fails, and after 2976 steps the factor is 2.48·10⁻¹⁵ from the matrix it is supposed to factor, against 3.87·10⁻¹⁴ with no refresh at all.10²10³10⁴10⁻¹⁹10⁻¹⁸10⁻¹⁷10⁻¹⁶10⁻¹⁵10⁻¹⁴10⁻¹³10⁻¹²steps taken‖RᵀR − AᵀA‖ ⁄ ‖AᵀA‖the bound, linear in the steps√k · uevery step safe, the chain notdrift after the run2.5·10⁻¹⁵the bound there3.3·10⁻¹³√k · u there6.1·10⁻¹⁵worst single amplification2.7worst leverage met0.69refactorisations30backward stable onceand three thousand times is a different claim
Fig. 13 The refresh period as a purchase, from the essay that priced it: what a hundred steps of memory costs and holds.
The residual conjugate gradients reports and the residual of the vector it holds, along one runA 50×50 diagonal matrix with one eigenvalue at 10⁻⁸ and the rest between 1 and 50, so every product with it is exact to a rounding and nothing below can be blamed on the operator. The lower curve is r ← r − αAp, updated by the recurrence, which is what a stopping test reads. The upper curve is ‖b − Ax‖/‖b‖, recomputed from the iterate. They start as the same vector and end 7.5·10⁷ apart, with the reported one at 7.91·10⁻²¹ — below the unit roundoff of 1.11·10⁻¹⁶, which is the shortest proof available that it is not the residual of anything.0112233445566778810⁻²²10⁻¹⁸10⁻¹⁴10⁻¹⁰10⁻⁶10⁻²conjugate gradient iterationrelative residualthe unit roundoff, 1.11·10⁻¹⁶the answer's residualthe residual reportedtwo residuals, one runreported, at its best7.9·10⁻²¹the answer's, at its best5.9·10⁻¹³unit roundoff1.1·10⁻¹⁶largest iterate on the way9.3·10⁷iterations drawn87the recurrence remembers every roundingand the stopping test is written in it
Fig. 14 And the middle of the residual gap’s range, where it is four orders wide and a run would notice nothing at all.
Words moved against the block size, n = 64, M = 100A U-shaped curve on logarithmic axes. Too small a block refactors the panel too often; too large a block does not fit in the fast memory and the tiled update evicts what it is about to read. The minimum is at b = 8, which is √M − 2. The three-line count says √(M/3) = 5, which has the right scaling and the wrong constant.110¹10⁵block size bwords movedthe count: √(M/3) = 5measured best: b = 8words movedat the best block3.8·10⁴at b = 11.4·10⁵at b = 249.4·10⁴derived from M with no measurement, and scannedthe two agree
Fig. 15 A quantity that really does scale linearly, from the field about what a computation moves — drawn here as a reminder that the essay’s claim is narrow.

What follows for a long run

Three practical readings, in order of how much they cost.

Do not size a buffer, a tolerance or an error budget from a linear bound without saying so. The bound is right and it is thirty thousand times pessimistic at a billion steps, which will either waste a great deal or, worse, make a design look impossible that is not.

Do not size one from the square root either, without saying that too. It is a measurement on unbiased arithmetic with uncorrelated errors, and any of those assumptions can fail — a stream with a trend, a fused multiply-add pattern that correlates the roundings, a rounding mode chosen for reproducibility rather than for accuracy.

And prefer the repair to either. All three of the accumulations in this essay have one, all three repairs are the same shape, and each costs a small bounded fraction of the work: recompute from the data at some period, and the error stops growing with the run length at all. Compensated summation for the sum. Refactorisation for the window. Residual replacement for the recurrence. What each buys is that the answer’s accuracy stops being a function of how long the program has been running, which is a much better property than a smaller exponent.

How far |r_nn| sits above σ_min on Kahan's matrix, against the size and the parameter3 curves of |r_nn| ÷ σ_min against n, one per Kahan parameter. Every curve rises without turning over, reaching 7·10⁴ at n = 30, c = 0.5. Column pivoting makes no interchange at any point on any of them, so the failure is not a poor choice — there is nothing to choose.813182328110¹10²10³10⁴10⁵10⁶size of the matrix|r_nn| ÷ σ_minthe two agreec = 0.2c = 0.35c = 0.5no ceilingratio at n = 1021ratio at n = 307·10⁴interchanges, anywhere0the greedy rule never had a choiceand the gap grows with every row
Fig. 16 The repair for the first of the three, from the field that measured it: compensated summation, whose error does not grow with n at all.
How far a carried triangular factor drifts from the data, over 2976 steps of a sliding windowA window of 24 rows on 6 columns, moved one row at a time: each step folds a row in with Givens rotations and removes one with hyperbolic rotations, and the factor is never rebuilt from the rows except every 25 steps. The rows are integers times powers of two, so AᵀA is exact in a double and the vertical axis is a distance from the answer. No single step amplifies by more than 2.72, no downdate fails, and after 2976 steps the factor is 8.72·10⁻¹⁹ from the matrix it is supposed to factor, against 3.87·10⁻¹⁴ with no refresh at all.10²10³10⁴10⁻²²10⁻²⁰10⁻¹⁸10⁻¹⁶10⁻¹⁴10⁻¹²steps taken‖RᵀR − AᵀA‖ ⁄ ‖AᵀA‖the bound, linear in the steps√k · uevery step safe, the chain notdrift after the run8.7·10⁻¹⁹the bound there3.3·10⁻¹³√k · u there6.1·10⁻¹⁵worst single amplification2.7worst leverage met0.69refactorisations120backward stable onceand three thousand times is a different claim
Fig. 17 For the second: refactorisation from the rows, which turns the climb into a sawtooth.
What residual replacement costs and what it buys, at three periodsEach row is the same conjugate gradient run with the recomputed residual assigned back into the recurrence every k steps. Without it, the reported residual reaches 6.92·10⁻²¹ and the answer's stalls at 5.07·10⁻¹⁰. Replacing every 5 steps costs 30 extra matrix–vector products on top of 150 — 20 per cent — and brings the answer's residual to 8.31·10⁻¹⁷, with the two residuals then agreeing to a factor of 2.8.never replace5.07·10⁻¹⁰replace every 251.5·10⁻¹⁶replace every 101.34·10⁻¹⁶replace every 58.31·10⁻¹⁷reported 6.92·10⁻²¹ · 0 extra productsreported 5.3·10⁻¹⁷ · 6 extra productsreported 1.08·10⁻¹⁶ · 15 extra productsreported 2.95·10⁻¹⁷ · 30 extra productsthe residual of the answer the run returnsone line, at three pricesnever: the answer's residual5.1·10⁻¹⁰never: what it reported6.9·10⁻²¹every 5: the answer's8.3·10⁻¹⁷every 5: what it reported3·10⁻¹⁷extra products for that30ask the matrix againand the recurrence forgets what it did
Fig. 18 And for the third: one extra product every few steps, which closes the gap entirely.

What the exponent is not

Two readings are available from a figure of three lines at a half, and both would be wrong.

It is not a claim that errors are small. A walk of a million steps is a thousand roundings deep, and on an ill-conditioned problem that is amplified again by the condition number before anybody sees it. The exponent says how the error grows with the length of the run; it says nothing about how large it is, and the two questions have different answers on every problem in this collection.

And it is not a licence to ignore the bound. A bound is a guarantee and a fitted exponent is a description of some runs. A computation that has to be certified — the interval arithmetic in this site’s own proved-bound essays, say — cannot use a measured exponent for anything, because the whole value of a certificate is that it covers the case that did not happen. The exponent is for sizing and for reasoning about how a run scales; the bound is for promising.

Keeping those apart is the reason this essay reports both numbers for all three mechanisms rather than declaring the bounds pessimistic and moving on.

Why three and not thirty

A reader entitled to be sceptical will ask why three measurements are enough to call something a mechanism, and the answer is that the number that matters is not three but the spread.

If the three had come out at 0.41, 0.55 and 0.68 they would be three unrelated numbers near a half and the honest report would be that each accumulation does its own thing. They came out at 0.486, 0.554 and 0.507, which is a spread of 0.068 — smaller than the width of any one of the three fits, and an order of magnitude smaller than the distance from any of them to the bound’s 1. Three quantities agreeing that closely, on axes that share no units and mechanisms that share no arithmetic, is not three data points; it is one prediction confirmed three times.

The prediction is also not this collection’s. It is the central limit theorem, applied to a sequence of independent roundings of comparable size, and it says a half exactly. What the measurements add is that the assumptions behind it — independence, comparable size, no bias — hold well enough in three real algorithms to produce the exponent to within seven per cent, which is a claim about numerical software rather than about probability.

Where those assumptions fail, the exponent goes with them, and the collection has that case too: a biased rounding mode makes the errors agree in sign and the walk becomes a sum. That is the fourth measurement and it is the one that makes the other three mean something.

What is asserted

That each of the three fits a half, to within 0.12, on its own axes and against its own bound.

That the three agree with each other more closely than any of them agrees with its bound — a spread of 0.068 between them, against a distance of at least 0.45 from any of them to 1.

That every bound is linear in the quantity its measurement is fitted against, which is stated rather than fitted, because it is a property of how a bound is derived and not of any run.

And the refusal: each of the three assertions is fed the claim that its slope is 1, and each one fails. That is what makes the figure a comparison rather than an illustration.

Three accumulations, each against its own quantity, each divided by its own first pointA left-to-right sum against the number of terms, at a fitted slope of 0.486; a chain of rotations against the number of steps, at 0.554; and a conjugate gradient residual recurrence against the largest iterate, at 0.507. The three share no arithmetic and no vocabulary. Each has a standard bound that is linear in whatever it accumulates against, drawn here as the upper line, and each comes out at half of it. Nothing is rescaled except the division by each series' own first point, which is what makes three quantities of different sizes comparable in slope and in nothing else.110¹10²10³10⁴110¹10²10³10⁴the accumulating quantity, relative to its first valuethe error, relative to its first valuethe bounds: slope 1what all three do: slope ½three mechanisms, one exponenta left-to-right sum0.49a chain of rotations0.55a residual recurrence0.51every bound's slope1spread of the three0.067a bound is a sum of the roundingsand the roundings have signs
Fig. 19 The comparison once more, over four decades. Every number in this essay is a reading of this figure.
The exact solution of a 13×13 Hilbert system beside the computed oneTwo columns of numbers: the exact answer, which is the integers one to thirteen, and the answer double-precision elimination returns, with the number of correct digits beside each.H13 x = b, b formed exactly so that x = (1, 2, …, 13)12345678910111213exact1.00002.00003.00133.97865.18864.993010.46720.048921.2657-2.575319.21478.906013.5113computed6.6 correct digits4.8 correct digits3.4 correct digits2.3 correct digits1.4 correct digit0.8 correct digitno correct digitsno correct digitsno correct digitsno correct digitsno correct digits0.6 correct digit1.4 correct digitbackward error2.2·10⁻¹⁷κ = 1.7·10¹⁸The algorithm solved a neighbouring problem perfectly. That problem's answer is this one.right-hand side built in BigInt rationalsthe truth is known
Fig. 20 And the habit all three measurements rest on: a reference that is exact, so that each vertical axis is a distance from an answer rather than a difference between two computations.
The spacing between consecutive numbers at 8-bit precisionA log–log staircase of the gap between neighbouring representable numbers against magnitude. The gap doubles at every power of two and reaches one whole unit partway along.110³10⁶10⁹10¹²10¹⁵10¹⁸10⁻¹⁸10⁻¹⁵10⁻¹²10⁻⁹10⁻⁶10⁻³110³magnitude of the numbergap to the next representable numberat 1: 0.0078at a million: 4096gap reaches 1: 18-bit significandthe gap follows the magnitude
Fig. 21 Where a rounding comes from in the first place, from the field this essay sits in.
Relative error of two algebraically identical expressions for (1 − cos x)/x², in binary32A log–log plot of relative error against x. The expression written as it reads loses accuracy as x falls and is eventually wrong in every digit; the rearranged form stays at rounding level.10⁻⁸10⁻⁶10⁻⁴10⁻²110⁻⁹10⁻⁶10⁻³1xrelative error of the computed value(1 − cos x)/x², as written2 sin²(x/2)/x²no digits left at allbinary32 throughoutone function, two spellings · zero below 3.5·10⁻⁴
Fig. 22 And the other thing a sum can do to an answer, which is not a walk and is not gradual — worth keeping separate from everything above.
The spacing of the numbers below the smallest normal, at 11 significand bitsA staircase of spacing against magnitude on logarithmic axes. It descends in steps from the right and then flattens to a horizontal line at the left. A dashed line drops away instead.10⁻⁷10⁻⁵10⁻³10⁻¹⁰10⁻⁸10⁻⁶magnitudespacing to the next numberthe smallest normalgradualflush to zerosmallest normal6.1·10⁻⁵smallest subnormal6·10⁻⁸octaves of subnormals10pairs that lie under FTZ10the spacing stops halving and stays putwhich is what makes x − y = 0 mean x = y
Fig. 23 Where the arithmetic stops being uniform, from this field’s foundation. Every claim above assumes the roundings are drawn from the same distribution, which stops being true down here.
‖Aᵏ/k!‖ against ‖e^A‖ for Moler and Van Loan's 2×2, scaled by 1The terms of the Taylor series rise to 1.4·10⁷ at k = 16 and fall back; the sum they produce has norm 2.58, drawn as the flat line. The ratio is 5.42·10⁶, so that many digits are cancelled away before truncation is a question, and the computed exponential has a relative error of 5.2·10⁻⁹ after 77 terms. Scaling and squaring on the same matrix returns 8.5·10⁻¹⁴.01020304050607010⁻⁶10⁻³110³10⁶10⁹k‖Aᵏ/k!‖‖e^A‖ = 2.6largest term 1.4·10⁷what the series throws awaylargest term1.4·10⁷‖e^A‖2.6digits cancelled away5.4·10⁶error after the sum5.2·10⁻⁹every term is computed correctlyand the sum has lost seven digits
Fig. 24 And a sum whose error is not a walk at all, because the terms cancel — the case the essay’s claim explicitly excludes.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A flat tag is an object no other essay names yet.

Backward errorCompensated summationConjugate gradientsExact ground truthLow-rank updateRandom walkRoundingSummationUnit roundoff