A ceiling with a knob on it
Worth reading first: A problem with infinitely many eigenvalues · Rank is a decision · A block nobody can call sparse.
A problem with infinitely many eigenvalues established three ceilings on Beyn’s contour method and lifted none of them. A probe block of ℓ columns returns at most ℓ eigenvalues; a problem of size n returns at most n; and the object that comes back distinguishes none of the three from having found everything. A caller who asks for two gets two, both genuine, with nothing to say there were twelve.
That last clause is what makes the ceilings dangerous rather than merely limiting. The repair is one line of the derivation, and it is worth stating exactly because it is the difference between a method with a ceiling and a method with a knob.
The line
The first moment
A₀ = (1/2πi) ∮ T(z)⁻¹V dz
is n × ℓ for a probe block V of ℓ columns, so its rank is at most min(n, ℓ) however many eigenvalues are inside the contour. That is the ceiling, and it is a property of the shape of A₀ rather than of anything about the problem.
The higher moments
Aₚ = (1/2πi) ∮ zᵖ T(z)⁻¹V dz
cost one more complex multiplication each. The solves are the expense, there are points × probes of
them, and they are already done at every quadrature point — so the higher moments are free in the
only currency that matters.
Stack them into a block Hankel matrix of K blocks:
H₀ = [ A₀ A₁ … A_{K−1} ; A₁ A₂ … ; … ],
which is nK × ℓK. Its rank is the number of eigenvalues inside, up to K·min(n, ℓ). K moments multiply both ceilings by K, for no extra solves.
The measurement, and both halves matter
On a delay problem of size four with a probe block of two columns and a circle of radius six holding twelve eigenvalues:
| moments K | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| ceiling K·ℓ | 2 | 4 | 6 | 8 |
| rank returned | 2 | 4 | 6 | 8 |
The rank sits exactly on the ceiling at every K, which says the ceiling is binding — there is more inside the contour than the method can see, at every one of those settings.
Now three probes and a radius of five, holding twelve:
| moments K | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| rank returned | 3 | 6 | 9 | 12 | 12 |
It rises with K and then stops at twelve, which is the number genuinely inside.
Both halves are the finding. That it rises says the ceiling was binding rather than the count being right. That it stops says the count is real rather than the ceiling still binding. A rank that keeps rising with K is a rank that has not found everything yet — which is the diagnostic the original construction could not offer, and it is available for the cost of computing the rank at two values of K. It is the same diagnostic keeping the vectors, and losing the bound asks for in the Lanczos field: a quantity that keeps moving when it should have settled is the signal that a method has not finished rather than that it has.
What comes back, and against what
The eigenvalues themselves come from the two block Hankels: H₀ = V̂ΣŴ*, then B = V̂*H₁ŴΣ⁻¹, and the eigenvalues of B are the eigenvalues inside the contour.
B is complex. Its spectrum is read through the real embedding [[X, −Y], [Y, X]], whose eigenvalues are
those of B together with their conjugates — the same device pseudo.js uses for σ_min and the same
one this field uses to solve complex systems, which keeps a complex eigensolver out of the site
entirely — the same economy
the message and the word argues for in a different currency: one
implementation used three times is one thing that can be wrong.
Checked against the Lambert-W closed form λ = μ + W_k(γe^{−μ}), one per eigenvalue of A per branch: 2.2·10⁻¹² worst — measured against a formula rather than against a better computation, which is the standing an answer that is known established and which a method with this many stages needs — for four eigenvalues inside a circle of radius four found with two probes and two moments. The whole apparatus — quadrature, moments, a block Hankel, a truncated SVD, a small complex eigenproblem read through a real embedding — measured against a formula and against nothing else.
The two knobs, and why they are not interchangeable
The ceiling is K·ℓ, so K = 6 with one probe reaches the same ceiling as K = 2 with three. The costs are completely different.
A probe is a whole extra set of solves round the contour: 256 or 512 complex linear systems. A moment is one complex multiplication per quadrature point per probe, which is a few thousand flops.
So the picture is an argument for spending the budget on moments. What stops that from being the whole answer is the conditioning, which is the conditioning that rises with the ceiling and is the reason this essay stops at four rather than at forty.
There is also a genuine role for probes that moments cannot fill. The probe block has to have a component along every eigenvector inside the contour, and a random block of ℓ columns has one with probability one — but the size of that component decides how visible the corresponding singular value is. A single probe unlucky enough to be nearly orthogonal to one eigenvector makes that eigenvalue’s direction small in every moment, and adding moments does not help, because they all inherit the same V. Two probes make the bad case require two coincidences.
That is worth stating because it is the kind of thing a purely arithmetic comparison misses. The right answer is a small ℓ — two or three — and as many moments as the conditioning allows.
An empty contour, and a rank decision on rounding
Building this produced one defect worth recording, because it is the failure rank is a decision is about, arriving in a routine whose right answer is zero.
A contour with nothing inside it produces a moment matrix that is entirely rounding: its singular values here are 6.6·10⁻³⁴, against integrand values of 10⁻¹⁸. A rank test relative to the matrix’s own largest singular value looks at that and sees a perfectly good gap — the values are all of the same size and there is nothing to cut — so it returns full rank, confidently, on numbers that are the arithmetic error of an integral of nothing.
The fix is a scale that comes from outside the matrix. The routine tracks the size of what it integrated as it goes and cuts relative to the larger of that and the leading singular value. Then the empty contour returns zero, and the reason is stated rather than thresholded: ‖A₀‖ is 10⁻¹⁶ of the integrand’s size, which is the unit roundoff and not a rank.
The general lesson is the one that essay states and this is a clean instance of: a relative rank test has nothing to be relative to when the matrix is entirely noise, and every rank decision needs a scale that did not come from the matrix being decided about.
Why a moment lifts anything at all
The line is short and the reason it works is worth a paragraph, because “add more moments” sounds like it should not buy independent information.
T(z)⁻¹ has a simple pole at each eigenvalue λⱼ inside the contour, with residue a rank-one object built from the left and right eigenvectors. So the contour integral picks out a sum over the eigenvalues inside, and A₀ is a sum of k rank-one terms, each of which is (right eigenvector) times (left eigenvector applied to V). That sum has rank at most k — and at most ℓ, because V has ℓ columns and every term factors through it.
The pth moment picks out the same sum with each term multiplied by λⱼᵖ. Same k directions, different weights. Stack K of them and the coefficient matrix relating the stacked moments to the k eigenvector directions is a Vandermonde matrix in the λⱼ — which has full rank whenever the eigenvalues are distinct.
That is where the extra rank comes from. The directions were always there in the residues; one moment collapses them through an ℓ-column filter, and K moments look at the same collapse through K different weightings whose combination is invertible. Nothing new is computed about the problem — what changes is how much of what was already integrated survives the projection.
The Vandermonde is also the reason for the price. A Vandermonde in points spread over a circle of radius ρ has entries growing like ρᵖ, so its conditioning degrades with K exactly as fast as the rank rises, which is the subject of the next essay and is not an accident of implementation.
What the count was for
It is worth connecting back, because this field already had a way of counting eigenvalues inside a contour and it did not need any of this.
Counting what is inside a circle computes (1/2πi)∮ tr(T(z)⁻¹T′(z)) dz, an integral that is an integer, converging exponentially and reaching 1.4·10⁻¹³ at 128 quadrature points. It answers how many and says nothing about which, and it has no ceiling of any kind.
So the two constructions divide the work. The trace integral gives the count for one pass round the contour and is the right thing to run first. The moments give the eigenvalues, need enough of them to clear the ceiling, and — now that the rank rises and stops — can be checked against the count the trace integral already produced.
That check is the thing the original method most lacked. A rank of six with a count of twelve says immediately that K is too small; a rank of twelve with a count of twelve says the region has been resolved. Two integrals round the same contour, one integrand each, and the pair answers a question neither answers alone.
What the method now needs from its caller
Three inputs, and the change of emphasis is worth setting out because the moments move where the difficulty lives.
A contour. Still the hardest input, and the one nothing in this essay helps with. It has to enclose the eigenvalues wanted and to stay away from the ones not wanted, and the convergence of the quadrature is governed by the distance from the contour to the nearest eigenvalue outside it — which a problem with infinitely many eigenvalues measures: a circle passing near an eigenvalue at 1.587 reaches only 7.6·10⁻⁴ at 128 points where one comfortably clear of everything reaches 1.4·10⁻¹³.
A number of quadrature points. Decided by the same distance, and checkable: run the count at two resolutions and see whether the integer moves.
A number of moments. New, and the easiest of the three, because the method now says when it is wrong. Raise K until the rank stops rising, and check the result against the count from the trace integral. Both of those are diagnostics the caller can act on rather than parameters they have to guess.
So the moments do not make the method easy. They move it from having three guesses, one of which is silent, to having two guesses and one measurement — and the silent one was the dangerous one, because a probe block too small returns a plausible short list rather than an obvious failure.
What is still not lifted
The honest accounting, since this essay is about lifting a ceiling and two of the three remain.
The distance from the contour to the nearest outside eigenvalue still sets the quadrature’s rate, and no number of moments changes it. A contour drawn close to something outside it converges slowly whatever else is done.
The rounding at the end still applies. Eight points on a circle of radius four returned a count of minus two in the original measurement — a negative number of eigenvalues from a routine that did not fail — and the moments do nothing about that, because it is a property of the quadrature rather than of the extraction. The repair there is more points, and the diagnostic is the distance from the computed value to the nearest integer.
The problem’s own size is lifted by K along with the probe count, but only to K·n. A contour holding more than K·n eigenvalues is still under-resolved, and on a small problem with a large region that is the binding constraint rather than the probe block. The measurement at four probes, where n = 4 and the ceiling stops rising at K·4, is that case arriving.
The shape of the repair
It is worth naming the shape, because it recurs and is easy to miss at close range.
The original method computed one integral and threw away everything about the integrand except its value. The repair computes the same integral against a different weight — several different weights — at no extra cost, because the expensive part is evaluating the integrand and that has already been done at every quadrature point.
That is the same move as computing several moments of a distribution from one pass over data, or
several inner products from one matrix–vector product, and it has the same economics: the access is
the cost and the arithmetic on what was accessed is free. This site’s cost field is built on that
observation in a different currency, where the access is a memory transfer rather than a linear
solve, and the same arithmetic at a different price
is the essay about it.
The prompt worth carrying: on meeting a method whose expensive step produces a quantity that is then reduced to a single number, ask what else could be extracted from the same step. Here the answer was a ceiling multiplied by an integer of the caller’s choosing.
At other settings
What links here
Computed from the collection, not written here: the essays that point at this one.
Reads more easily once this is understood
Essays that name this one as worth reading first.
Shares its objects with
Essays that name at least two of the same things, and that neither author linked.
- A model that is a rational function — both name exact ground truth, numerical rank, rank
- The last digit is the cheapest — both name contour integral, nonlinear eigenvalue problem, quadrature
- A matrix that depends on its own eigenvalue — both name exact ground truth, rank
- A rank that is not a property of the tensor — both name exact ground truth, numerical rank
- An eigenvalue count that cannot be slightly wrong — both name exact ground truth, numerical rank
- The number that decides nothing — both name exact ground truth, rank
Named objects
A flat tag is an object no other essay names yet.
Complex arithmeticContour eigensolverContour integralExact ground truthMomentNonlinear eigenvalue problemNumerical rankQuadratureRank