A geometry setting that is a second accuracy
Worth reading first: The offset that moved the slope · Which pairs are allowed to be small.
Two settings of a hierarchical representation have been swept and each turned out to act on one factor of the same product. The partition that does not move found the tolerance raising every block’s rank by one per two decades of accuracy and leaving the partition identical — 250 blocks at every tolerance from two digits to twelve. Two knobs on one number found the leaf size doing the exact opposite: it changes how many blocks there are and does not move a single rank.
That decomposition is what makes the pair tunable in order. Choose the tolerance from what the application needs, then choose the leaf, and the first choice cannot be invalidated by the second because the influence runs one way.
There is a third setting, and it was named at the time as the one that could break this. The constant in the admissibility test decides how far apart two clusters have to be, relative to their own size, before the block between them may be compressed at all. Loosening it admits blocks that were previously subdivided — so it changes the block count — and the blocks it admits are the ones whose clusters are nearest, whose singular values fall slowest, and whose ranks are therefore highest. It changes both factors.
Swept, it does, and the consequence is not a third dimension to tune. It is that the setting is not a knob on the storage at all.
Both factors move, and they move the same way
At n = 512 with a leaf of 16 and eight digits, loosening the constant from 0.2 to 1.4 takes the block count from 592 to 94 and the mean rank of the compressed blocks from 3.25 to 8.94.
That is the prediction confirmed, and the direction is the part that matters. If the two factors had moved in opposite directions — fewer blocks each holding less — the constant would be a knob with an optimum somewhere, and the sweep would be a search for it. They move in the same direction in cost terms: fewer blocks is cheaper and a higher rank is dearer, and the question is which wins.
Fewer blocks wins, at every step. The storage per unknown falls 225, 201, 170, 133, 133, 120 across the six settings and never rises. There is no interior least, so there is nothing to search for and nothing to trade.
The reason is arithmetic about which blocks get admitted. A block admitted by loosening the constant is one whose clusters nearly touch, and it replaces a subtree of four or more smaller blocks. Storing it as two thin factors of rank r costs r times the sum of its sides; storing its subtree costs the sum of what those pieces cost, and the pieces include dense diagonal blocks which are squares. The square is what loses. So a looser constant always consolidates, and consolidation is always cheaper in numbers even when the consolidated block needs a higher rank than any of its parts. A block nobody can call sparse is the single block that accounting is about, and the kernel with nothing to compress is the case in which none of it applies.
Which pairs are allowed to be small is where the test itself is drawn, with the four numbers per pair it reads before any entry of the matrix is looked at. What that essay does not ask, and this one does, is what the constant in it is for.
What it is really moving is the accuracy
The storage falling at every step is only half of what the sweep reports. The other half is the column nobody asks a geometry setting for.
The error against the dense matrix, at a tolerance that never changes, goes 3.28·10⁻¹⁰, 3.19·10⁻¹⁰, 3.40·10⁻¹⁰, 3.83·10⁻¹⁰, 4.20·10⁻¹⁰ and 1.13·10⁻⁹. Across the range it rises by a factor of 3.5, and it rises with the loosening.
That is the finding, and it is worth being careful about what it is not. The tolerance is applied per block and is honoured per block: every compressed block, at every setting of the constant, is within the tolerance of the block it approximates. Nothing is violated. What changes is which blocks there are, and a partition of nearly touching blocks assembles a worse global approximation out of individually honest local ones, because the errors are larger in absolute terms on the blocks with the largest entries. That gap between a tolerance asked for per block and an accuracy obtained overall is the one a knob calibrated in residuals measures in the recompression this representation needs when it is used rather than merely stored.
So the constant is a second accuracy setting. It does not look like one — it is applied before any singular value is read, it is stated as a fact about geometry, and it appears in the literature as a property of the partition rather than of the approximation. But a setting a caller changes, holding the tolerance fixed, that moves the achieved accuracy by a factor of three and a half, is an accuracy setting whatever it is called — and a rank that is a number of digits is the argument that a rank and a number of digits are one quantity read two ways.
And that is exactly the break the decomposition was vulnerable to. The two-knob reading said: the tolerance owns the accuracy, the leaf owns the count, choose in that order. A third setting that owns part of the accuracy means the first choice does not fully determine what the caller asked for, and the order of tuning is no longer safe.
The step that buys nothing at all
One step of the sweep is worth isolating, because it is the whole argument in miniature and because the numbers are exact rather than close.
Between 0.9 and 0.95 the partition admits 62 blocks it had been keeping dense. The block count does not change at all — those blocks are at the bottom of the tree and have no children to subdivide into — so all that happens is that 62 dense blocks become compressed ones.
The storage before the step is 67,968 numbers. After it, 67,968.
Not nearly the same: the same integer. The blocks in question are 16 by 16, and a dense block of side s stores while a compressed one of rank r stores 2rs, so the two are equal when r is exactly half of s. Those 62 blocks come back at rank exactly 8, every one of them, which is exactly half of 16 — and the largest rank anywhere in the partition at that setting is 8, which is how one can tell it is all of them rather than an average.
The error, meanwhile, goes from 3.83·10⁻¹⁰ to 4.20·10⁻¹⁰.
So that step of the constant compresses 62 blocks, stores not one number fewer for doing it, and makes the answer worse. It is a setting change that is pure loss, and nothing in the representation reports it — the tolerance was honoured on every one of those 62 blocks, the partition is legal, the storage is unchanged, and only a comparison against the dense matrix says anything happened.
The coincidence is not one. The break-even rank of a block is half its side, the truncation is choosing the rank that meets the tolerance, and at this tolerance and this geometry those two numbers coincide for the blocks being admitted. A slightly looser tolerance would admit them at a lower rank and the step would be a small saving; a slightly tighter one would admit them at a higher rank and the step would cost storage as well as accuracy. The exact tie is a property of this pairing, and the sign of what it buys is not: at no tolerance does this step buy enough to pay for what it costs in error, because at no tolerance does it change the block count.
A knob whose range is half one setting
The last thing the sweep says is about the shape of the control rather than about what it controls, and it is the part that would change how anybody runs this experiment.
The separation ratio of two clusters is a ratio of their radii to the distance between them, and on a balanced tree over evenly spaced points those take a discrete set of values. The constant does not tune anything continuously; it selects the subset of ratios below it. Over its whole legal range there are 58 genuinely different partitions.
They are not spread evenly. The widest runs from 0.9961 upward and holds 50 per cent of the range at 94 blocks. The next runs from 0.4961 to 0.9375 and holds 22 per cent at 250 blocks. Together they hold 72 per cent, and the other 56 partitions are crammed into the remaining quarter, nearly all of it below the middle.
A uniform sweep over the range — which is the obvious experiment and the one this started as — therefore returns two answers three times in four and never sees most of the structure. The interesting region is the lower quarter, where the partitions change every few hundredths, and an experiment that samples evenly spends nearly all its budget above it.
The default the field ships, 0.8, sits in the middle of the second-widest tread. That is a comfortable place to be: it is far from both edges, so a small change in the point distribution or the tree shape will not move the partition at all — and the same matrix numbered twice is the reminder that the point distribution is the only thing any of this depends on, since the matrix itself carries no trace of it. It is also a place from which the constant looks inert, which is a fair description of how it is usually treated.
The staircase’s resolution belongs to the leaf
The treads are made of separation ratios, the ratios come from pairs of nodes, and the nodes come from the tree — so the one setting that decides how many levels the tree has ought to decide how finely the constant can be tuned.
Enumerated at four leaf sizes, the number of distinct partitions is 119, 58, 27 and 12. It halves as the leaf doubles, which is the level count doing exactly what it should: each level of the tree contributes its own family of ratios, a larger leaf removes a level from the bottom, and the ratios that level would have contributed are the finest ones.
The coarse structure does not move at all. The widest tread begins at 0.9961 and holds 50.2 per cent of the range at every one of the four leaves, to a tenth of a per cent. What changes is only how many narrow treads are packed below it — enough that the two widest hold 69 per cent at a leaf of 8 and 75 per cent at a leaf of 64.
So the two settings interact, and they interact in a way that is harmless. The leaf does not move where the constant’s thresholds are; it decides how many of them exist. A caller choosing a coarse leaf for the reasons two knobs on one number gives is also choosing a constant with fewer usable settings, and since the constant has no optimum to hit, having fewer of them costs nothing.
That is the one piece of good news in the sweep. The decomposition the earlier essays established is broken by this setting on the accuracy side and not on the geometry side: the constant leaks into what the tolerance was supposed to own, and it does not leak into what the leaf owns.
The free step was a property of one leaf
The exact tie is worth re-examining at other leaves, because an equality that holds at one setting and is explained by a rule should hold wherever the rule applies.
At a leaf of 8 the same interval of the constant does something else entirely. It consolidates rather than admits: 186 fewer compressed blocks, storage falling from 73,984 to 70,016, and the error improving from 1.31·10⁻⁹ to 9.81·10⁻¹⁰. At a leaf of 32 the interval contains no threshold at all and nothing happens.
The half-the-leaf arithmetic survives in the one form it can. The blocks that leave the partition at leaf 8 carry exactly 4 in rank apiece, which is half of 8, just as the blocks that arrive at leaf 16 carried exactly 8. The equality is about what a block at the bottom level of a tree costs, and it holds either way round.
What does not survive is the reading that the step is pure loss. That was true at leaf 16 and is false at leaf 8, where the same loosening is a genuine saving and improves the answer. So the pure-loss step is a property of a particular leaf and tolerance rather than of the constant, and the general statement is weaker and still worth having: the constant’s steps are not all in the same direction in accuracy, and the only direction that is reliable across the range is the one the whole sweep shows.
What a caller should do with a setting that does not trade
The tuning order the two-knob reading gave has to be amended, and the amendment is short because the finding is one-sided.
A setting with no interior optimum is not tuned, it is set once. Loosening it always saves storage and always costs accuracy, so the only question is how much accuracy the caller is willing to lose in exchange, and that is the same question the tolerance answers. Two settings answering one question is one too many, and the resolution is to pick the constant from the geometry — tight enough that the expansion the compression relies on converges on every admitted pair — and then do all the accuracy tuning with the tolerance, which is the setting that is honest about what it is. The offset that moved the slope is what that tuning costs in storage, stated as a growth rate rather than as a level.
That is what the field’s default does. The interesting part is that it does it for a reason nobody states: 0.8 is not a compromise between storage and accuracy, it is a point far from every threshold, and its virtue is stability rather than optimality.
What must not be done is the thing the two-knob decomposition would have licensed: sweeping the constant for storage while holding the tolerance fixed and reporting the result as free. It is never free, the cost is not in the column being watched, and the error at the loosest setting is three and a half times the error at the tightest with the tolerance in both cases unchanged.
What must fail for any of this to be wrong
Five claims and a refusal. That the mean rank rises at every step of the sweep. That the block count never rises. That the storage never rises, so the loosest setting is the cheapest and there is nothing interior to find. That the two move together — fewer blocks at higher rank — which is what neither of the other two settings does. And that the error at a fixed tolerance rises by more than a factor of two across the range.
The refusal is fed the claim that some interior setting stores less than the loosest, and required to fail.
The free step is required separately and more strictly, because it is an equality: the storage before and after is required to be the same integer, and the rank of the admitted blocks is required to be exactly half the leaf rather than close to it. A tolerance on it would have let a near-coincidence through, and a near coincidence here would be a different fact.
What this does not settle
One point distribution. Evenly spaced points on an interval are what make the separation ratios discrete, and a clustered or random distribution would have more of them and narrower treads — possibly enough that the constant behaves like a dial. Whether the staircase is a property of the test or of the geometry it is applied to is not answerable from one arrangement of points.
One partition rule. Everything here is the strong rule; the weak rule has no admissibility test to put a constant in, which is why it does not appear. Whether a rule between the two — one that applies the test at some levels and not others — has a constant that trades is unmeasured, and the test that costs what it saves is where the price of applying the test at all is measured.
And the accuracy finding is an observation about the assembled error rather than a bound. The per-block tolerance is honoured everywhere, the global error is worse anyway, and how much worse is a function of the partition that nothing here predicts in advance. A bound on the assembled error in terms of the constant would turn this from a measurement into a rule, and the measurement does not supply one.
Still open: a constant per level, and the ratio the treads are made of
The threshold as a function of the level. The constant is one number applied at every level of the tree, and the blocks it admits at the top are enormous while the ones at the bottom are the size of the leaf. Since the cost of being wrong about a block scales with the block and the saving does too, there is no reason the same threshold should be right at both ends — and a constant that tightens with depth, or loosens with it, is a one-parameter family this sweep has no point in. Which direction helps is the measurement, and its sign is not obvious from anything here.
Whether the treads are the same treads on clustered points. The 58 partitions and their widths are read off one arrangement of points, and the whole claim that the setting is a selector rather than a dial rests on the ratios being discrete. Repeating the enumeration on points drawn from a non-uniform distribution would say whether the treads merely get narrower or whether they disappear, and the first would leave the practical advice intact while the second would overturn it.
The error as a function of the constant, predicted rather than measured. The assembled error rises by three and a half over the range and the mechanism proposed above — that the admitted blocks carry the largest entries, so an honest relative error on them is a larger absolute one — is stated and not tested. Weighting each block’s error by its own norm and summing would say whether that accounts for the rise or whether something else does, and it is one pass over a partition that is already built.
Which steps improve the answer and which do not. The sweep shows the error rising across the whole range and the leaf comparison shows one step of it falling. Every threshold is a step and each one could go either way, so the aggregate rise is a sum of signed contributions that has never been taken apart. Recording the error either side of all 58 thresholds would say what fraction of them are losses, whether the losses cluster at the loose end where the consolidations are largest, and whether a rule could stop at the last threshold that helps. That is one pass over a partition that is already built, and it would turn a one-sided piece of advice into a procedure.
And whether the rank at the bottom level is always half the leaf. Both leaves measured put the blocks entering or leaving the partition at exactly half the leaf in rank, which is the break-even and is therefore suspicious: it is the rank at which the accounting is indifferent, not one the truncation was aiming at. Whether the tolerance happens to select it on this kernel at these two leaves, or whether something forces it, is the difference between a coincidence twice and a rule — and it is the invariance the size the rank does not notice measures, asked at the bottom of the tree where that essay did not look.
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.
- A second objective that is the first one doubled — both name cluster tree, hierarchical matrix, low-rank approximation, numerical rank, storage, tolerance
- A good curve and a bad verdict — both name low-rank approximation, numerical rank, tolerance, truncation
- The digit that costs more than the tensor — both name low-rank approximation, numerical rank, tolerance, truncation
- An accuracy that is a backward error — both name admissibility, hierarchical matrix, tolerance
- The count that is not the budget — both name admissibility, hierarchical matrix, low-rank approximation
- The knob that moved two things — both name admissibility, hierarchical matrix, tolerance
Named objects
A flat tag is an object no other essay names yet.
AdmissibilityCluster treeHierarchical matrixLow-rank approximationNumerical rankSeparation ratioStorageToleranceTruncationWeak admissibility