Elimination, and the swap

A margin the factorisation records

Partial pivoting finds the second-largest candidate in every column it scans, and throws it away. Keep it, divide the gap by the growth reached at that step, and take the smallest over the steps before half the final growth has arrived. That one number, recorded by the factorisation that is already running, predicts the dense noise that halves the growth to within a factor of 0.92 to 2.4 on shooting matrices whose growth runs from 75 to 1.3·10⁵ and whose fragility spans three and a half decades — and on Wilkinson's matrix it is exactly zero.

Worth reading first: The bound that is never attained · The swap that is not optional.

A worst case is as fragile as its margin ended by proposing a check a code could run on every factorisation. Partial pivoting finds the largest candidate in each column, and in doing so it has found the second largest; their relative gap is that step’s margin, and a factorisation that kept the smallest margin beside the growth factor would know whether its growth rested on near-ties. It asked for the pair of numbers to be measured over random, constructed and practical matrices, to see whether it separates a growth that noise removes from one it does not.

Noise the growth amplifies then changed what that check has to look at. The noise that removes the shooting matrix’s growth is not the noise itself but the noise multiplied by the growth already accumulated: a comparison flips when σ times the growth reached there is a fixed fraction — 0.2 to 0.43 at the steps measured — of its margin. So the margin alone is not the quantity. The margin at a step, divided by the growth at that step, is.

This essay records that ratio during the factorisation and asks whether it predicts what noise does.

The noise that halves partial pivoting's growth, against the margin the factorisation recordedFor multiple-shooting matrices over intervals of 6, 9, 12 and 15 at steps from 0.15 to 0.3, the recorded quantity r½ — the smallest pivot margin divided by the growth reached so far, over the steps before half the final growth had arrived — against the smallest Gaussian noise, on a half-decade grid, at which the median growth over fifteen draws is at most half the noise-free growth, on logarithmic axes. The diagonal is equality and the band a factor of three either way. shooting, T = 6, h = 0.3: growth 75.2, r½ 1.61·10⁻⁴, measured 3.2·10⁻⁴; shooting, T = 9, h = 0.3: growth 905, r½ 1.32·10⁻⁵, measured 3.2·10⁻⁵; shooting, T = 12, h = 0.3: growth 11000, r½ 1.08·10⁻⁶, measured 10⁻⁶; shooting, T = 15, h = 0.3: growth 1.3·10⁵, r½ 8.9·10⁻⁸, measured 10⁻⁷; shooting, T = 12, h = 0.25: growth 11000, r½ 2.23·10⁻⁶, measured 3.2·10⁻⁶; shooting, T = 12, h = 0.2: growth 11000, r½ 2.79·10⁻⁶, measured 3.2·10⁻⁶; shooting, T = 9, h = 0.15: growth 905, r½ 3.21·10⁻⁵, measured 3.2·10⁻⁵. Wilkinson's matrices record r½ = 0 and lose half their growth at noise of 10⁻¹⁶, off this chart.10⁻⁸10⁻⁷10⁻⁶10⁻⁵10⁻⁴10⁻³10⁻⁸10⁻⁷10⁻⁶10⁻⁵10⁻⁴10⁻³r½ recorded during one factorisationnoise that halves the growthT 6, h 0.3: 75T 9, h 0.3: 910T 12, h 0.3: 11000T 15, h 0.3: 1.3·10⁵T 12, h 0.25: 11000T 12, h 0.2: 11000T 9, h 0.15: 910measured ÷ predicted, shooting matricessmallest ratio0.92largest ratio2.4Wilkinson: recorded r½0Wilkinson: noise that halves it10⁻¹⁶one factorisation, one extra comparison a stepdashed: a factor of three either way
Fig. 1 Seven shooting matrices, each factorised once with its margins recorded, placed at the recorded prediction r½ and at the noise that, measured over fifteen draws, halves its growth. The diagonal is agreement; the dashed lines are a factor of three either way.

What is recorded

At step k partial pivoting scans the candidates in column k. The scan keeps the largest in absolute value, and one more comparison per candidate keeps the second largest. The step’s margin is the gap between the two divided by the largest — the smallest relative change in the candidates that could reverse the choice. The factorisation already tracks the largest entry it has produced, so the growth so far, GkG_k, is free too.

The amplification law says a reversal at step k needs noise of about mkm_k/Gₖ, times a constant. A reversal removes the growth that was still to come, not the growth already made, so a reversal that halves the final growth must happen at a step where no more than half of it has arrived. The recorded quantity is therefore

r1/2  =  mink:  GkG/2  mkGkr_{1/2} \;=\; \min\limits_{k:\; Gₖ \,\le\, G/2} \; \dfrac{mₖ}{Gₖ}

and the prediction is that dense Gaussian noise of standard deviation about r½ halves the growth. It costs one comparison per candidate per step — about n2n^2/2 comparisons in a factorisation of n3n^3/3 multiply-adds, a share of 3/(2n) of the work, which is 1.8 per cent at n = 82.

Measured on seven shooting matrices

The test matrices are multiple-shooting matrices for the same boundary-value problem over intervals of 6, 9, 12 and 15 at a step of 0.3, and over 12 at steps of 0.25 and 0.2 and over 9 at 0.15 — growth factors from 75 to 1.34·10⁵, sizes from 42 to 122. For each, r½ is read off one factorisation, and the noise that halves the growth is found by sweeping dense Gaussian noise upward from 10⁻¹⁶ in half decades until the median growth over fifteen draws is at most half the noise-free growth.

interval, step growth r½ recorded noise that halves it measured ÷ recorded
6 over steps of 0.3 75.2 1.61·10⁻⁴ 3.2·10⁻⁴ 1.96
9 over steps of 0.3 905 1.32·10⁻⁵ 3.2·10⁻⁵ 2.39
12 over steps of 0.3 1.10·10⁴ 1.08·10⁻⁶ 1.0·10⁻⁶ 0.92
15 over steps of 0.3 1.34·10⁵ 8.90·10⁻⁸ 1.0·10⁻⁷ 1.12
12 over steps of 0.25 1.10·10⁴ 2.23·10⁻⁶ 3.2·10⁻⁶ 1.42
12 over steps of 0.2 1.10·10⁴ 2.79·10⁻⁶ 3.2·10⁻⁶ 1.13
9 over steps of 0.15 905 3.21·10⁻⁵ 3.2·10⁻⁵ 0.99

The measured noise spans three and a half decades, from 10⁻⁷ to 3.2·10⁻⁴, and the ratio of measured to recorded stays between 0.92 and 2.39. The measured column is on a half-decade grid, so each entry could be up to a factor of 3.2 above the true halving point, and the agreement is within that resolution everywhere. A number read off one factorisation, with no noise drawn at all, places the fragility of each matrix to within a factor of two or so.

Why the minimum has to be restricted

The restriction to steps before half the growth is not a refinement; without it the prediction is wrong by two orders of magnitude.

Pivot margin, growth so far, and their ratio at every step of one partial-pivoting factorisation, shooting matrix T = 12, h = 0.3At each of the 82 elimination steps of the multiple-shooting matrix over an interval of 12 at a step of 0.3: the relative gap between the largest and second-largest candidate pivot, the growth factor reached so far, and the first divided by the second, on a logarithmic axis. The growth climbs to 1.1·10⁴. Half of it has arrived by step 77, drawn as the vertical line. Before that the smallest ratio is 1.08·10⁻⁶ at step 75; after it, the last comparisons have margins as small as 9.08·10⁻⁵ and a ratio of 8.24·10⁻⁹ at step 81, but a reversal there can no longer remove the growth already made.0102030405060708010⁻⁹10⁻⁷10⁻⁵10⁻³10⁻¹10¹10³elimination stepmargin, growth, and margin ÷ growthhalf the growthgrowth so farmarginmargin ÷ growthT = 12, h = 0.3, 82 unknownsgrowth factor1.1·10⁴r½, at step 751.1·10⁻⁶smallest m/G anywhere, step 818.2·10⁻⁹smallest margin anywhere9.1·10⁻⁵the dot is r½left of the line is where the growth can still be lost
Fig. 2 Every step of the factorisation of the shooting matrix over 12 at a step of 0.3: the margin, the growth so far, and their ratio. The margin is the same at almost every step; the ratio falls as the growth climbs; the dot is r½, just before half the growth has arrived.

The trace shows the structure the table rests on. The shooting matrix’s recorded margin is 5.64·10⁻³ at 80 of its 82 steps — the same comparison, E11E_{11} against −1, made at every continuity step — while the growth so far doubles about every six steps, from 1 to 1.1·10⁴. The ratio of the two falls steadily. Half the growth has arrived by step 77, and the last step before it at which the ratio is smallest is step 75, where the growth is 5,200 and the ratio 1.08·10⁻⁶. That is r½.

The last two steps are different. Step 81 is one of the final comparisons, after the chain has ended, its two candidates are within 9.08·10⁻⁵ of each other, and the growth there is already the full 1.1·10⁴: the ratio is 8.2·10⁻⁹, the smallest anywhere. Read as a prediction it says noise of 10⁻⁸ halves the growth, and noise of 10⁻⁸ does nothing measurable to it. A reversal at step 81 changes how the last pivot is chosen after all the growth has been made, and the growth factor is the largest entry produced at any step, which that choice cannot reach back and remove.

So a naive recording — the smallest margin, or the smallest margin over growth, over the whole factorisation — is set by whatever comparisons happen at the end, where margins are often small for reasons that have nothing to do with the growth. On this matrix it under-predicts the noise by a factor of 120.

Pivot margin, growth so far, and their ratio at every step of one partial-pivoting factorisation, shooting matrix T = 15, h = 0.3At each of the 102 elimination steps of the multiple-shooting matrix over an interval of 15 at a step of 0.3: the relative gap between the largest and second-largest candidate pivot, the growth factor reached so far, and the first divided by the second, on a logarithmic axis. The growth climbs to 1.34·10⁵. Half of it has arrived by step 97, drawn as the vertical line. Before that the smallest ratio is 8.9·10⁻⁸ at step 95; after it, the last comparisons have margins as small as 7.45·10⁻⁶ and a ratio of 5.56·10⁻¹¹ at step 101, but a reversal there can no longer remove the growth already made.010203040506070809010010⁻¹¹10⁻⁹10⁻⁷10⁻⁵10⁻³10⁻¹10¹10³10⁵elimination stepmargin, growth, and margin ÷ growthhalf the growthgrowth so farmarginmargin ÷ growthT = 15, h = 0.3, 102 unknownsgrowth factor1.3·10⁵r½, at step 958.9·10⁻⁸smallest m/G anywhere, step 1015.6·10⁻¹¹smallest margin anywhere7.5·10⁻⁶the dot is r½left of the line is where the growth can still be lost
Fig. 3 The same trace over an interval of 15: 102 steps, growth to 1.34·10⁵, and r½ = 8.9·10⁻⁸ at step 95. The last comparisons’ margin is 7.5·10⁻⁶, and the unrestricted minimum is 5.6·10⁻¹¹.

Over an interval of 15 the pattern repeats a decade further out. The growth reaches 1.34·10⁵; half of it has arrived by step 97; r½ is 8.9·10⁻⁸ at step 95, and noise of 10⁻⁷ halves the growth. The corner’s margin is smaller still, 7.45·10⁻⁶, and the unrestricted ratio is 5.6·10⁻¹¹ — eighteen hundred times below the measured noise.

The same record, read for noise that keeps the zeros

The amplification that makes r½ the right quantity for dense noise is absent for noise that stays out of the zeros, and noise the growth amplifies found that such noise leaves the shooting matrix’s growth untouched until it is comparable with the margin itself. So the same recording supports a second prediction with the division by the growth taken out: noise on the nonzero entries halves the growth at a fixed share of m½, the smallest margin recorded before half the growth arrived.

The noise on the nonzero entries that halves partial pivoting's growth, as a share of the recorded margin, against the growthFor the same seven shooting matrices, Gaussian noise added only to the nonzero entries, swept on a quarter-decade grid from 10⁻⁸, and the smallest level at which the median growth over fifteen draws is at most half the noise-free growth, divided by the smallest pivot margin recorded before half the growth had arrived, against the growth factor on a logarithmic axis. shooting, T = 6, h = 0.3: growth 75.2, margin 0.00564, halving noise 0.00316, share 0.56; shooting, T = 9, h = 0.3: growth 905, margin 0.00564, halving noise 0.00316, share 0.56; shooting, T = 12, h = 0.3: growth 11000, margin 0.00564, halving noise 0.00178, share 0.32; shooting, T = 15, h = 0.3: growth 1.3·10⁵, margin 0.00564, halving noise 0.00316, share 0.56; shooting, T = 12, h = 0.25: growth 11000, margin 0.0107, halving noise 0.00562, share 0.53; shooting, T = 12, h = 0.2: growth 11000, margin 0.0134, halving noise 0.00562, share 0.42; shooting, T = 9, h = 0.15: growth 905, margin 0.0137, halving noise 0.00562, share 0.41. The share stays between 0.32 and 0.56 while the growth changes by a factor of 1784.10²10³10⁴10⁵00.20.40.60.81growth factorhalving noise ÷ recorded marginT 6, h 0.3T 9, h 0.3T 12, h 0.3T 15, h 0.3T 12, h 0.25T 12, h 0.2T 9, h 0.15zero-keeping noise that halves the growth ÷ marginsmallest share0.32largest share0.56largest growth ÷ smallest1784no division by the growththe dashed line is half the margin
Fig. 4 For the same seven matrices, the noise on the nonzero entries that halves the growth, swept in quarter decades, divided by the margin recorded before half the growth, against the growth itself. The share does not move with the growth.

Swept in quarter decades, the zero-keeping noise that halves the growth is 3.2·10⁻³ over intervals of 6, 9 and 15 at a step of 0.3 and 1.8·10⁻³ over 12, against a recorded margin of 5.64·10⁻³ at all four — a share of 0.56, 0.56, 0.56 and 0.32. At steps of 0.25, 0.2 and 0.15, whose margins are 1.07·10⁻², 1.34·10⁻² and 1.37·10⁻², it is 5.6·10⁻³ each time, a share of 0.53, 0.42 and 0.41. The growth across those seven matrices changes by a factor of 1,784 and the share stays between 0.32 and 0.56.

So one factorisation’s record answers two different questions with two different readings. Divided by the growth, the margin says how much noise that the elimination will amplify it can take. Undivided, it says how much noise it can take that the elimination cannot amplify — rounding in the entries, an error in the coefficients, anything that leaves the matrix’s zeros where they were. For a shooting matrix over 15 those two numbers are 8.9·10⁻⁸ and 3.2·10⁻³, thirty-six thousand times apart, and a code that knows which kind of perturbation its data carries knows which one to read.

Pivot margin, growth so far, and their ratio at every step of one partial-pivoting factorisation, shooting matrix T = 6, h = 0.3At each of the 42 elimination steps of the multiple-shooting matrix over an interval of 6 at a step of 0.3: the relative gap between the largest and second-largest candidate pivot, the growth factor reached so far, and the first divided by the second, on a logarithmic axis. The growth climbs to 75.2. Half of it has arrived by step 37, drawn as the vertical line. Before that the smallest ratio is 1.61·10⁻⁴ at step 35; after it, the last comparisons have margins as small as 0.00564 and a ratio of 9.65·10⁻⁵ at step 40, but a reversal there can no longer remove the growth already made.01020304010⁻⁵10⁻⁴10⁻³10⁻²10⁻¹110¹10²elimination stepmargin, growth, and margin ÷ growthhalf the growthgrowth so farmarginmargin ÷ growthT = 6, h = 0.3, 42 unknownsgrowth factor75r½, at step 351.6·10⁻⁴smallest m/G anywhere, step 409.7·10⁻⁵smallest margin anywhere0.0056the dot is r½left of the line is where the growth can still be lost
Fig. 5 The shortest interval, 6: forty-two steps, a growth of 75, and half of it by step 37. r½ = 1.6·10⁻⁴ at step 35, the largest in the table and the closest to what random matrices record.

The shortest interval is the case where the two readings are nearest. Over 6, the growth is only 75, half of it has arrived by step 37 of 42, r½ is 1.6·10⁻⁴ and dense noise of 3.2·10⁻⁴ halves the growth; the recorded margin is the same 5.64·10⁻³ and zero-keeping noise of 3.2·10⁻³ halves it. A factor of ten separates the two readings here, where over 15 it is thirty-six thousand, because the division by the growth is a division by 75 instead of by 1.3·10⁵.

Wilkinson’s matrix records exactly zero

At Wilkinson’s matrix the recorded margin is 0 at the first step: every candidate in the column is exactly ±1, the largest and second largest are equal, and the gap is zero in floating point, not merely small. So r½ = 0, and the prediction is that noise of any size removes the growth.

Median growth factor of Wilkinson's 40 × 40 matrix under Gaussian noise of every sizeThe median growth factor under partial pivoting over thirty draws of Gaussian noise of standard deviation σ added to every entry, against σ from 10⁻¹⁵ on logarithmic axes. Wilkinson's 40 × 40 matrix grows by 5.5·10¹¹ with no noise and by at most 16 under any noise drawn, its growth resting on exact ties. 10⁻¹⁵10⁻¹³10⁻¹¹10⁻⁹10⁻⁷10⁻⁵10⁻³10⁻¹1standard deviation of the noise σmedian growth factorWilkinsonwhat the growth rests onWilkinson, no noise5.5·10¹¹Wilkinson, σ = 10⁻¹⁴2thirty draws at every pointa tie breaks at any noise; a margin needs its own size
Fig. 6 Wilkinson’s 40 × 40 matrix under dense noise from 10⁻¹⁵ up. The median growth is 2 at every noise level drawn; the growth of 5.5·10¹¹ exists only at σ = 0.

The noise sweep confirms it at the resolution the sweep has: at both sizes, 24 and 40, the median growth is already at most half at the first noise level on the grid, 10⁻¹⁶. The recorded quantity has distinguished the two kinds of worst case without being told which is which — a tie records zero, a margin records a number, and the number is the noise it can absorb.

And what random matrices record

The check is only useful if a matrix nobody has looked at records something interpretable, and the matrices a code mostly sees are not shooting matrices or constructions.

Growth factor against the recorded margin r½, for random, shooting and Wilkinson matricesOne partial-pivoting factorisation each: 40 random Gaussian 40 × 40 matrices, seven multiple-shooting matrices, and Wilkinson's matrices of size 24 and 40, placed at their recorded r½ and their growth factor on logarithmic axes. The random matrices grow by 2.19 to 4.81 with r½ from 2.5·10⁻⁴ to 0.17. The shooting matrices grow by 75 to 1.34·10⁵ with r½ from 8.9·10⁻⁸ to 1.6·10⁻⁴. Wilkinson's matrices grow by 8.39·10⁶ and 5.5·10¹¹ and record r½ = 0, drawn at the left edge.10⁻¹⁷10⁻¹⁵10⁻¹³10⁻¹¹10⁻⁹10⁻⁷10⁻⁵10⁻³10⁻¹110²10⁴10⁶10⁸10¹⁰10¹²r½, the recorded margin over the growthgrowth factorrandom matricesshooting matricesWilkinson: r½ = 0recorded during one factorisation eachrandom 40 × 40: largest growth4.8random: smallest r½2.5·10⁻⁴shooting: largest r½1.6·10⁻⁴Wilkinson: r½0further left, less noise removes the growthr½ = 0: noise at rounding does
Fig. 7 Growth factor against r½ for forty random Gaussian 40 × 40 matrices, the seven shooting matrices and Wilkinson’s two, each from one factorisation.

Forty random Gaussian 40 × 40 matrices grow by 2.19 to 4.81 and record r½ between 2.5·10⁻⁴ and 0.17. The seven shooting matrices grow by 75 to 1.34·10⁵ and record 8.9·10⁻⁸ to 1.6·10⁻⁴. Wilkinson’s grow by 8.4·10⁶ and 5.5·10¹¹ and record zero.

r½ alone does not separate the random matrices from the shooting matrices. The shortest shooting interval records 1.6·10⁻⁴ and the most fragile of forty random matrices 2.5·10⁻⁴, and a code reading only r½ would not know which was which. The pair does: every shooting matrix grows by more than ten times every random one, so the plane of growth against r½ has the random matrices in its bottom right, the shooting matrices above and to their left, and the ties on the left edge.

What a random matrix’s r½ means is less clear, and this essay does not settle it. A growth of 3 can only be halved by noise that changes the matrix, not merely its pivot choices, so the noise-halving measurement has nothing to measure. The small r½ some random matrices record — a few steps where two candidates happen to be within a part in a few thousand — says their pivot sequence is not robust; it does not say their growth is at stake, because there is almost none.

Why a noise sweep is the wrong instrument for a code

Everything in the table’s last column came from a sweep: fifteen draws of noise at each of up to thirty levels, a factorisation per draw, and the median read off at each level. For the shooting matrix over 12 that is several hundred factorisations to find one number, and the number is a property of a distribution of perturbed matrices rather than of the matrix in hand. One draw in twenty is the standing reminder here of what a single draw of such a distribution does and does not say, and a code cannot afford the other nineteen.

The recording replaces the sweep with the quantity the sweep was estimating. It is read off the factorisation that was going to be computed anyway, it involves no randomness, and it gives the same answer every time the same matrix is factorised. What it gives up is the constant: the sweep measures the noise at which the median growth halves, and the recording predicts it to within a factor of two or three, with the direction of the error — the recording is below the measurement on five of the seven matrices — consistent with the amplification constant being below one.

That trade is the usual one between a measurement and a diagnostic, and the table says it is a good one here: the recorded numbers span the same three and a half decades the measured ones do, in the same order, with no matrix out of place. A code that wants to know whether a large growth factor is a tie, a margin, or nothing to worry about does not need the constant. It needs the order of magnitude and the distinction between zero and not zero, and both are in the record.

What a code could do with it

Recorded beside the growth factor, r½ turns one number into a reading of what kind of growth it is.

Small growth. Nothing to do, whatever r½ says.

Large growth, r½ zero or at rounding. The growth rests on exact ties. It is an accident of how ties are broken, a perturbation of the size of the rounding removes it, and a code could remove it on purpose with a random tie-break. Wilkinson’s construction, which the bound that is never attained measured, is the standard example, and the recording says so when it meets it.

Large growth, r½ well above rounding. The growth rests on a margin and survives every perturbation below r½ — and, as noise the growth amplifies found, every perturbation that keeps the matrix’s zeros, up to the margin itself. It is a property of the matrix. The repair is a pivot rule that does not make the comparison: a pivot that searches one row and one column keeps the shooting matrix’s growth below 2, and a code that switched to rook pivoting only on factorisations recording large growth and a nonzero r½ would pay for the extra search only where it buys something.

That last branch is the one that matters in practice, because it is the case the growth a boundary-value problem supplies found arising from a standard method, and the one a code has no other way to recognise. Its backward error, measured there, is what the growth costs; r½ is what says the cost is not going to go away if the data is slightly different.

What this rests on

Seven shooting matrices from one boundary-value problem and Wilkinson’s matrix at two sizes, with the halving noise measured on a half-decade grid over fifteen draws, and forty random Gaussian matrices at one size, recorded but not swept. The margin is the relative gap between the two largest candidates in absolute value; a candidate list with ties among the others, or with a second candidate of opposite sign and equal size, gives a margin of zero, which is what Wilkinson’s records.

The prediction’s constant is taken as one. The amplification measurement put the true constant between 0.2 and 0.43, which would move the predicted noise up by a factor of two to five; the half-decade grid and the factor-of-two agreement do not resolve that, and a finer sweep would.

The recording costs one comparison per candidate. It was checked to change nothing about the factorisation: the growth it reports agrees with the full elimination’s to twelve digits on the four shooting matrices it was compared on.

The claim that has to fail

The claim is the naive recording: the smallest margin over growth anywhere in the factorisation predicts the noise that removes the growth. On the shooting matrix over 12 at 0.3 that minimum is 8.2·10⁻⁹, at step 81, and dense noise of 10⁻⁶ halves the growth — a hundred and twenty times more. The refusal is fed the claim that the unrestricted minimum predicts within a factor of three and fails; r½, read from the same factorisation with the one restriction, predicts within a factor of 0.92.

Still open: several margins, a sparse factorisation, and the constant

Several growing modes. A transfer matrix with several diagonal entries near one gives several interleaved chains, each with its own margin, sharing columns. Whether r½ still picks out the comparison whose reversal halves the growth, or whether amplified noise from one chain reverses another’s comparison first, decides whether one recorded number is enough.

A sparse factorisation. A sparse code with threshold pivoting does not choose the largest candidate but any within a factor of it, and a threshold between fill and growth measured that trade. Its margin is not a gap between the two largest but the gap between the chosen candidate and the threshold, and whether the same ratio predicts what noise does to a threshold-pivoted growth is the version of this check a sparse solver could actually run.

The constant, measured. A full-resolution sweep of the halving noise on the same seven matrices would say whether the factor between r½ and the halving noise is the amplification constant, 0.2 to 0.43 with the step, or something else — and whether a recording that divides by that constant does better than one that does not.

What links here

Computed from the collection, not written here: the essays that point at this one.

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 errorGaussian eliminationGrowth factorPartial pivotingRook pivotingWorst-case analysis