Generator

The 16 real eigenvalues of an overdamped chain, in two groups of 8, with the certificate between them

One function in the hyperbolic library, called 12 times across 2 essays. Below: what it draws at its defaults, what it draws at every value an essay asks for, the 19 claims it put to the test while drawing them, and where it stands against the rule this site is named for.

At its defaults it draws the 16 real eigenvalues of an overdamped chain, in two groups of 8, with the certificate between them. A chain of 8 masses with C = 8K, which is above the critical damping 5.75877 = 1/sin(π/2(n+1)), so the quadratic is hyperbolic and every one of its 16 eigenvalues is real. The vertical line is the μ at which Q(μ) is negative definite — a Cholesky that completes, and the whole proof that the spectrum is real. It also lies in the gap: exactly 8 eigenvalues above it and 8 below, with a gap of 0.6698 between the two groups. One factorisation answers both questions, which is the second thing a boolean would not have carried.

overdamped-gap is one function in lib/figures/hyperbolic.js — real by class — a cholesky that certifies a spectrum, and a double root that costs half the digits. 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 16 real eigenvalues of an overdamped chain, in two groups of 8, with the certificate between themA chain of 8 masses with C = 8K, which is above the critical damping 5.75877 = 1/sin(π/2(n+1)), so the quadratic is hyperbolic and every one of its 16 eigenvalues is real. The vertical line is the μ at which Q(μ) is negative definite — a Cholesky that completes, and the whole proof that the spectrum is real. It also lies in the gap: exactly 8 eigenvalues above it and 8 below, with a gap of 0.6698 between the two groups. One factorisation answers both questions, which is the second thing a boolean would not have carried.-33-28.2505-23.5009-18.7514-14.0018-9.25229-4.502750eigenvalueQ(μ) ≺ 0one Cholesky, two answersabove the certificate8below it8the gap0.67critical β for this n5.8the spectrum is real by classnot by outcome

A chain of 8 masses with C = 8K, which is above the critical damping 5.75877 = 1/sin(π/2(n+1)), so the quadratic is hyperbolic and every one of its 16 eigenvalues is real. The vertical line is the μ at which Q(μ) is negative definite — a Cholesky that completes, and the whole proof that the spectrum is real. It also lies in the gap: exactly 8 eigenvalues above it and 8 below, with a gap of 0.6698 between the two groups. One factorisation answers both questions, which is the second thing a boolean would not have carried.

show: "definite-errors", n: 8

The arguments are the ones A guarantee paid for in digits passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.

A damped chain of 8 masses at damping β*(1 + ε): the worst relative error of its computed spectrum against ε, through the companion linearisation and through a definite linearisationReference: the closed-form spectrum. The companion route inverts the leading coefficient and takes a real Schur form; the definite route takes a Cholesky of the best positive definite combination of a symmetric linearisation and a Jacobi eigensolver. ε 10⁻²: companion 8.88·10⁻¹⁵, definite 2.35·10⁻¹⁴; ε 10⁻⁴: companion 4.15·10⁻¹⁴, definite 3.95·10⁻¹²; ε 10⁻⁶: companion 5.3·10⁻¹³, definite 1.46·10⁻¹⁰; ε 10⁻⁸: companion 1.13·10⁻¹², definite 5.92·10⁻⁸; ε 10⁻¹⁰: companion 1.07·10⁻¹⁰, definite 9.8·10⁻⁶; ε 10⁻¹²: companion 2.69·10⁻⁹, definite 0.002. The definite route's spectrum is real by construction; the companion route returned no complex value at any of these margins.8 massescompanion, ε = 10⁻¹²2.7·10⁻⁹definite, ε = 10⁻¹²0.00210⁻¹²10⁻¹⁰10⁻⁸10⁻⁶10⁻⁴10⁻²10⁻¹⁶10⁻¹⁴10⁻¹²10⁻¹⁰10⁻⁸10⁻⁶10⁻⁴10⁻²ε, the margin above critical dampingworst relative error of the spectrumcompaniondefinite pencilthe margin shrinks to the leftthe guarantee costs the digits

Reference: the closed-form spectrum. The companion route inverts the leading coefficient and takes a real Schur form; the definite route takes a Cholesky of the best positive definite combination of a symmetric linearisation and a Jacobi eigensolver. ε 10⁻²: companion 8.88·10⁻¹⁵, definite 2.35·10⁻¹⁴; ε 10⁻⁴: companion 4.15·10⁻¹⁴, definite 3.95·10⁻¹²; ε 10⁻⁶: companion 5.3·10⁻¹³, definite 1.46·10⁻¹⁰; ε 10⁻⁸: companion 1.13·10⁻¹², definite 5.92·10⁻⁸; ε 10⁻¹⁰: companion 1.07·10⁻¹⁰, definite 9.8·10⁻⁶; ε 10⁻¹²: companion 2.69·10⁻⁹, definite 0.002. The definite route's spectrum is real by construction; the companion route returned no complex value at any of these margins.

show: "definite-denominators"

The arguments are the ones A guarantee paid for in digits passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.

For the damped chain of eight masses at β*(1 + ε): the Crawford number of the definite linearisation and the separation of the colliding eigenvalue pair, against εε 10⁻²: Crawford number 0.002288, 0.2288 ε; separation 0.09848, 0.9848 times the square root of ε; ε 10⁻⁴: Crawford number 2.279·10⁻⁵, 0.2279 ε; separation 0.009823, 0.9823 times the square root of ε; ε 10⁻⁶: Crawford number 2.279·10⁻⁷, 0.2279 ε; separation 9.823·10⁻⁴, 0.9823 times the square root of ε; ε 10⁻⁸: Crawford number 2.279·10⁻⁹, 0.2279 ε; separation 9.823·10⁻⁵, 0.9823 times the square root of ε; ε 10⁻¹⁰: Crawford number 2.279·10⁻¹¹, 0.2279 ε; separation 9.823·10⁻⁶, 0.9823 times the square root of ε; ε 10⁻¹²: Crawford number 2.284·10⁻¹³, 0.2284 ε; separation 9.822·10⁻⁷, 0.9822 times the square root of ε.eight massesCrawford number ÷ ε0.23separation ÷ √ε0.9810⁻¹²10⁻¹⁰10⁻⁸10⁻⁶10⁻⁴10⁻²10⁻¹³10⁻¹¹10⁻⁹10⁻⁷10⁻⁵10⁻³10⁻¹ε, the margin above critical dampingthe quantity each route divides bypair separationCrawford numberslopes one half and onethe guarantee's denominator falls faster

ε 10⁻²: Crawford number 0.002288, 0.2288 ε; separation 0.09848, 0.9848 times the square root of ε; ε 10⁻⁴: Crawford number 2.279·10⁻⁵, 0.2279 ε; separation 0.009823, 0.9823 times the square root of ε; ε 10⁻⁶: Crawford number 2.279·10⁻⁷, 0.2279 ε; separation 9.823·10⁻⁴, 0.9823 times the square root of ε; ε 10⁻⁸: Crawford number 2.279·10⁻⁹, 0.2279 ε; separation 9.823·10⁻⁵, 0.9823 times the square root of ε; ε 10⁻¹⁰: Crawford number 2.279·10⁻¹¹, 0.2279 ε; separation 9.823·10⁻⁶, 0.9823 times the square root of ε; ε 10⁻¹²: Crawford number 2.284·10⁻¹³, 0.2284 ε; separation 9.822·10⁻⁷, 0.9822 times the square root of ε.

show: "definite-angle"

The arguments are the ones A guarantee paid for in digits passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.

For the chain of eight masses at three margins above critical damping: the least eigenvalue of each combination cos t·X + sin t·Y of the definite linearisation, divided by the margin ε, against the angle tWhere the curve is above zero the combination is positive definite. ε 10⁻²: peak 0.2288 ε at t = 0.337; at t = 0, 0.2158 ε; at t = 1.5, 0.0901 ε; ε 10⁻⁴: peak 0.2279 ε at t = 0.334; at t = 0, 0.2153 ε; at t = 1.5, 0.0901 ε; ε 10⁻⁶: peak 0.2279 ε at t = 0.334; at t = 0, 0.2153 ε; at t = 1.5, 0.0901 ε. Divided by ε, the three profiles coincide.the Crawford numberε 10⁻²: peak ÷ ε0.23ε 10⁻⁴: peak ÷ ε0.23ε 10⁻⁶: peak ÷ ε0.2300.40.81.21.600.050.10.150.20.25angle t of the combinationleast eigenvalue ÷ εε = 10⁻²ε = 10⁻⁴ε = 10⁻⁶three margins, one curveno angle escapes the margin

Where the curve is above zero the combination is positive definite. ε 10⁻²: peak 0.2288 ε at t = 0.337; at t = 0, 0.2158 ε; at t = 1.5, 0.0901 ε; ε 10⁻⁴: peak 0.2279 ε at t = 0.334; at t = 0, 0.2153 ε; at t = 1.5, 0.0901 ε; ε 10⁻⁶: peak 0.2279 ε at t = 0.334; at t = 0, 0.2153 ε; at t = 1.5, 0.0901 ε. Divided by ε, the three profiles coincide.

show: "definite-pair"

The arguments are the ones A guarantee paid for in digits passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.

The two eigenvalues of the eight-mass chain that collide at critical damping, at ε = 10⁻¹², as the closed form gives them and as each route computes themclosed form: -0.347296846423 and -0.347295864245; companion: -0.347296845490 and -0.347295865178; definite pencil: -0.347296355138 and -0.346602323314. The axis is centred on -0.3472963553 and 0.00174 wide.closed formapart by 9.82·10⁻⁷companionapart by 9.8·10⁻⁷definite pencilapart by 6.94·10⁻⁴eigenvalue, an axis 0.00174 wide about -0.347296the closed-form pair is a micro-unit apartboth real, one far off

closed form: -0.347296846423 and -0.347295864245; companion: -0.347296845490 and -0.347295865178; definite pencil: -0.347296355138 and -0.346602323314. The axis is centred on -0.3472963553 and 0.00174 wide.

show: "definite-rotated"

The arguments are the ones A guarantee paid for in digits passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.

Twenty eight-mass chains rotated by random orthogonal congruences: on how many the companion route returns a complex eigenvalue pair, at four margins above critical dampingε 10⁻⁴: 0 of 20 reading every Schur block exactly, 0 at the default block tolerance; ε 10⁻⁸: 0 of 20 reading every Schur block exactly, 0 at the default block tolerance; ε 10⁻¹²: 0 of 20 reading every Schur block exactly, 0 at the default block tolerance; ε 0: 5 of 20 reading every Schur block exactly, 6 at the default block tolerance, largest imaginary part 5.3·10⁻⁸.ε = 10⁻⁴0 of 20ε = 10⁻⁸0 of 20ε = 10⁻¹²0 of 20ε = 05 of 20a complex pair only on the boundary itselfthe danger is a rounding wide

ε 10⁻⁴: 0 of 20 reading every Schur block exactly, 0 at the default block tolerance; ε 10⁻⁸: 0 of 20 reading every Schur block exactly, 0 at the default block tolerance; ε 10⁻¹²: 0 of 20 reading every Schur block exactly, 0 at the default block tolerance; ε 0: 5 of 20 reading every Schur block exactly, 6 at the default block tolerance, largest imaginary part 5.3·10⁻⁸.

What it checked while drawing

Every figure above checked its own claims on the way to being drawn, and a claim that failed would have stopped the picture rather than shipped a wrong one. Those checks 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.

19 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.

a chain length the sweep measures

a chain long enough to have a spectrum and short enough to draw

a Cholesky of the definite combination

a combination of the pencil that is positive definite

a hyperbolic quadratic to split

a linearisation has as many eigenvalues as it has rows

a positive mass

a quadratic the certificate says is hyperbolic

a reduction this file knows

a spectrum that fits along the axis

an entirely real spectrum

damping above the critical value, so the spectrum is real

damping that removes energy rather than adding it

every computed eigenvalue is matched to an unused exact one

Jacobi needs a symmetric matrix

LU is for square matrices

matmul shapes agree

n eigenvalues each side of the certificate

two spectra of the same size

Against the rule

It draws a decomposition and prints its residual. It calls splitAtCertificate, 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 217 of 397 generators — 199 print a residual and 18 are exempt with a published reason; 180 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.

The whole library · All essays · What must fail