arrowhead-projection
At its defaults it draws the projected matrix after 3 cycles, keeping 4 vectors. A 8×8 matrix drawn as a grid. The first 4 diagonal entries are the retained Ritz values; the row and column at index 4 are their couplings to the residual vector; the remaining 4×4 block is an ordinary Lanczos tridiagonal. 22 entries are above rounding out of 64.
arrowhead-projection is one function in lib/figures/thick.js —
keeping the vectors — a third of the products, and the bound that stops bounding. 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.
A 8×8 matrix drawn as a grid. The first 4 diagonal entries are the retained Ritz values; the row and column at index 4 are their couplings to the residual vector; the remaining 4×4 block is an ordinary Lanczos tridiagonal. 22 entries are above rounding out of 64.
k: 3
The arguments are the ones Elimination is a sequence of choices 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.
A 7×7 matrix drawn as a grid. The first 3 diagonal entries are the retained Ritz values; the row and column at index 3 are their couplings to the residual vector; the remaining 4×4 block is an ordinary Lanczos tridiagonal. 19 entries are above rounding out of 49.
k: 4
The arguments are the ones Keeping the vectors, and losing the bound 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.
A 8×8 matrix drawn as a grid. The first 4 diagonal entries are the retained Ritz values; the row and column at index 4 are their couplings to the residual vector; the remaining 4×4 block is an ordinary Lanczos tridiagonal. 22 entries are above rounding out of 64.
k: 2
The arguments are the ones Restarting is a filter 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.
A 6×6 matrix drawn as a grid. The first 2 diagonal entries are the retained Ritz values; the row and column at index 2 are their couplings to the residual vector; the remaining 4×4 block is an ordinary Lanczos tridiagonal. 16 entries are above rounding out of 36.
k: 5
The arguments are the ones The factor is not sparse 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.
A 9×9 matrix drawn as a grid. The first 5 diagonal entries are the retained Ritz values; the row and column at index 5 are their couplings to the residual vector; the remaining 4×4 block is an ordinary Lanczos tridiagonal. 25 entries are above rounding out of 81.
k: 6
The arguments are the ones The form that makes it affordable 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.
A 10×10 matrix drawn as a grid. The first 6 diagonal entries are the retained Ritz values; the row and column at index 6 are their couplings to the residual vector; the remaining 4×4 block is an ordinary Lanczos tridiagonal. 28 entries are above rounding out of 100.
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 6 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.
nothing outside the diagonal and the border in row 0 — asserted 6 times
a cycle at which something has been retained
a number of retained vectors the picture has room for
a projected matrix small enough to read
enough new steps a cycle for a tail to exist
Jacobi needs a symmetric matrix
matmul shapes agree
the projected matrix is an arrowhead with a tridiagonal tail
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 70
of 151 generators —
55 print a residual and
15 are exempt with a published reason;
81 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.
Elimination 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.
Eigenvalues, singular values, rankKeeping the vectors, and losing the bound
Thick restarting keeps the Ritz vectors instead of filtering the starting vector — the same eigenvalues for a third of the products with A. Its residual bound reaches 9.4·10⁻⁴¹ while the residual it bounds sits at 5.7·10⁻⁵, and the eigenvalues are correct to 4.3·10⁻¹⁴ the whole time, so nothing reports it.
Eigenvalues, singular values, rankRestarting is a filter
A restart throws away the Ritz values it does not want and begins again from a new starting vector. Written in the eigenbasis, that vector's components have been multiplied by a polynomial with its roots at the discarded values — measured component by component, and agreeing with the polynomial to rounding.
Sparsity, and what elimination costsStructure and stability stop being separable
The sparsest variable to eliminate on this matrix has a diagonal entry of 10⁻¹². Eliminating it produces the smaller factor, reproduces the matrix to 3.8·10⁻¹⁷ — better than pivoting does — and returns an answer wrong in the fifth digit.
Sparsity, and what elimination costsThe factor is not sparse
A sparse matrix has a factor that is not sparse, and the gap between them is the entire reason iterative methods exist. The entries elimination creates can be counted before any arithmetic runs, from the graph alone.
Eigenvalues, singular values, rankThe form that makes it affordable
One Householder reduction, done once, turns every subsequent iteration of the eigenvalue algorithm from cubic to quadratic cost. It changes no answer at all, which is why it is easy to describe as an optimisation and wrong to.
Sparsity, and what elimination costsThe order decides the memory
Four elimination orderings on one matrix give factors of 1,739, 1,354, 1,413 and 1,026 entries. All four factorisations are exact, all four return the same answer, and the one with the better asymptotics is not the one that wins.
Eigenvalues, singular values, rankThe plane survives what its vectors do not
At a gap of 10⁻⁹ a perturbation of 10⁻⁶ turns the two eigenvectors through half a radian and turns the plane they span through 7.6·10⁻⁸ — a ratio of six million. Ask for the subspace instead of the vectors and a hopeless computation becomes a well-conditioned one, with no change to the arithmetic.
Sparsity, and what elimination costsTwo ends of the same arrow
One matrix, one row moved from the front of the elimination order to the back, and the factor goes from completely dense to no fill at all. Both factorisations are exact to rounding, and nothing numerical chose between them.