Stems and cones

The second comb

The autocorrelation of a divergence sequence has peaks at the smaller parastichy number and at every multiple of it. It also has a second set of peaks, at the same spacing, offset by the difference of the pair — so a list of angles with no coordinate in it returns both numbers rather than one.

Worth reading first: The sequence has a memory · Counting the spirals · Counting up the stem.

The earlier work found that a list of divergence angles carries a spiral count. Take the angles off a stem in the order they were made, throw away every coordinate, autocorrelate what is left, and the correlation is periodic at the smaller of the two parastichy numbers: peaks at it, and at twice it, and at three times it.

It also stated the limit of that result plainly, twice, because the limit is half of what the result is worth. It returns one number, and everybody who counts a plant reports two. The larger family is somewhere in the spectrum — at a rise of 0.005 the correlation at lag 13 is 0.59, which is well clear of the band — and so is their sum, at lag 21, at 0.47. But a list of peak heights does not say which of those is a second family and which is an echo of the first. An instrument that supplements a photograph is a useful thing. An instrument that replaces one has to give the pair.

This essay gives the pair. Nothing new is measured: the same runs, the same autocorrelation, the same thirty lags. What changed is noticing that the significant lags are not a list. They are two arithmetic progressions.

Write the lags out

At a rise of 0.005, on a stem held at a fixed rise and disturbed a little, the lags whose correlation clears the sampling band are 8, 13, 16, 21, 24, 26 and 29, which looks like a scatter of numbers with 8 and its multiples in it. Sort them instead by their remainder on division by eight. The class of 0 mod 8 holds 8, 16 and 24; the class of 5 mod 8 holds 5, 13, 21 and 29.

Every one of the seven is in one of those two classes, and the residues are 0 and 5. That is the whole finding. The first class is the comb the earlier work read. The second is a comb at the same spacing, displaced by five — and the position counter run on the same stem says the parastichy pair is 8 and 13, whose difference is five.

Two combs, at a rise of 0.005. The autocorrelation of 760 divergence angles from one stem held at a rise of 0.005. The filled teeth are the lags at multiples of 8; the open teeth are the second comb, at the same spacing offset by 5. Reading the spacing off the first and the offset off the second gives the pair 8 and 13, which is what the position counter reports for the same stem — from angles alone, with no coordinate anywhere in the calculation.
Fig. 1 The autocorrelation of one stem’s divergence angles, out to thirty lags. The filled teeth are the lags at multiples of the spacing; the open teeth are the second comb, at the same spacing and displaced from the first. Reading the spacing off one and the displacement off the other gives both parastichy numbers, from a list of angles with no coordinate anywhere in it.

So the reading is two integers rather than one: m is the comb spacing, and n is m plus the offset of the second comb — and at this rise that is 8 and 8 + 5 = 13. The instrument that had been giving half the answer was giving all of it, in a place nobody had looked, for the same reason the peak at lag eight sat unnoticed for a round of work: the figure that would have shown it was drawn to six lags, because the argument at the time was about lag one.

Two combs, at a rise of 0.005. The autocorrelation of 760 divergence angles from one stem held at a rise of 0.005. The filled teeth are the lags at multiples of 8; the open teeth are the second comb, at the same spacing offset by 5. Reading the spacing off the first and the offset off the second gives the pair 8 and 13, which is what the position counter reports for the same stem — from angles alone, with no coordinate anywhere in the calculation.
Fig. 2 The same stem read at a larger scatter. Two residue classes rather than a list of lags is still what comes out, which is what makes the reading two integers rather than seven numbers.

What the second comb returns is n modulo m

The arithmetic is worth stating exactly, because the step from the offset to the larger number carries an assumption.

The second comb’s residue is n mod m — at 8/13 that is 5, and at 5/8 it is 3. Recovering n from it means choosing among n = residue, residue + m, residue + 2m, and so on, and the reading above takes the smallest of those above m.

That convention is right on both rungs here and it is right for a reason: consecutive terms of the ladder satisfy n < 2m, so residue + m is the only candidate in range. It would not be right on an arrangement whose two counted numbers are not adjacent on a ladder — a pair whose members share a factor, or a wrecked stem counted at 5 and 13, where the second number is two rungs up.

So the honest form of the reading is: the angles give m exactly and n modulo m, and the last step to n uses the assumption that the pair is adjacent. That assumption is safe on an undisturbed stem, it is exactly the assumption this collection is careful not to make elsewhere, and it belongs in the statement of the result rather than inside the arithmetic.

The same reading, one rung coarser

The claim is not about the number eight. Drop to a rise of 0.013, where the position counter reports 5 and 8, the significant lags are 5, 8, 10, 13, 15, 18, 20, 23 and 28, and they sort into 0 mod 5 — 5, 10, 15, 20 — and 3 mod 5 — 3, 8, 13, 18, 23, 28. Spacing five, offset three, pair five and eight.

Two combs, at a rise of 0.013. The autocorrelation of 760 divergence angles from one stem held at a rise of 0.013. The filled teeth are the lags at multiples of 5; the open teeth are the second comb, at the same spacing offset by 3. Reading the spacing off the first and the offset off the second gives the pair 5 and 8, which is what the position counter reports for the same stem — from angles alone, with no coordinate anywhere in the calculation.
Fig. 3 The same readout one rung coarser. The spacing is smaller and the second comb is displaced by less, and the arithmetic that turns the two into a pair is the arithmetic above with different numbers in it. The position counter, given the coordinates of the same stem and nothing else, returns the same two.

Two rungs is not many, and there is a reason there are only two: at the coarse end the second comb is not there at all, and at the fine end a stem of this length does not hold enough internodes to resolve it. Both of those are measured below rather than asserted. What matters here is that the reading does not change between the rungs — the same two integers come out of the same two classes — and that the numbers it returns are not the numbers it was given. The run was seeded at 137.3° and settles where the rule takes it; the readout is handed a list of angles and is told nothing about the rise, the model, the divergence or which integers it is supposed to like.

Two combs, at a rise of 0.005. The autocorrelation of 760 divergence angles from one stem held at a rise of 0.005. The filled teeth are the lags at multiples of 8; the open teeth are the second comb, at the same spacing offset by 5. Reading the spacing off the first and the offset off the second gives the pair 8 and 13, which is what the position counter reports for the same stem — from angles alone, with no coordinate anywhere in the calculation.
Fig. 4 A second stem at the same rise, differing only in the seed of its disturbance. The two residue classes come out the same, which is the first thing to check before believing either of them.

Why the second comb sits at the difference

A cylindrical lattice is an arrangement in which node i’s near neighbours are i ± m and i ± n. That is what a parastichy number is — the offset in placement order that lands on a neighbour — and it is the fact the whole thread rests on.

The placement rule is a sum over neighbours. A node placed a little to one side of where the equilibrium would put it changes the profile the next few nodes compute against, but it changes it most for the nodes that have it as a near neighbour, which are m and n places later rather than one place later. So the divergence sequence is a feedback loop with two delays, and a loop with a delay of m rings at m.

Which offsets give short hops, at a rise of 0.005The two lowest points are at 8 and 13, and those are the parastichy numbers. Offset 1 is high because a hop of one node is at least the rise, which is what makes a stem easier to count than a disc.0123102030index offsetmedian hop between node i and node i+m23300 nodes, 34 offsets triedshortest at 2 and 3
Fig. 5 The surface length of each index offset on a stem at this rise. Two offsets are far shorter than the rest and they are the parastichy pair; the third shortest is a fifth longer again. The lags that carry correlation in the figure above are these offsets and the short sums and differences of them.

Correlation travels between neighbours, so the lags that carry it are the offsets a short chain of neighbour steps reaches: ±m and ±n on their own, then m + m, m + n, n − m, and so on. Every one of those is a·m + b·n for small whole numbers a and b, and therefore congruent to b·n modulo m. A chain of one or two steps has b equal to 0 or ±1. Two residue classes: zero, and n mod m.

For a phyllotactic pair, n mod m is n − m, because m < n < 2m. That inequality is the reading’s one structural assumption and it is not a convenience — it is a property of the ladder. Every pair the forks produce above the base rung has a ratio between one and two: 3/5, 5/8, 8/13 on the Fibonacci branch, 4/7 and 7/11 on the Lucas one, all of them approaching φ, which is less than two. It is asserted against the counted pair on every run rather than assumed, and where it fails — at the base rung, where the pair is 1 and 3 — the readout refuses for a different reason anyway.

Two combs, at a rise of 0.013. The autocorrelation of 760 divergence angles from one stem held at a rise of 0.013. The filled teeth are the lags at multiples of 5; the open teeth are the second comb, at the same spacing offset by 3. Reading the spacing off the first and the offset off the second gives the pair 5 and 8, which is what the position counter reports for the same stem — from angles alone, with no coordinate anywhere in the calculation.
Fig. 6 The coarse rung noisier. The residue the second comb returns is a fact about the pair’s arithmetic, so it does not move when the scatter does.

The three tests it has to pass before it says anything

An argmax always returns an index. Given thirty numbers it will name the largest of them whether or not there is anything there, which is why that earlier work’s readout has a clearance test and why this one has three.

The main comb has to clear the band. The quantity tested is a mean over the comb’s members rather than a single correlation, so the threshold is three sampling bands divided by the square root of the number of members: a comb of five members averaging 0.16 is as improbable as one member at 0.36, and treating them alike would either refuse every true second comb or accept noise at the main one.

The second comb has to clear the same band, computed the same way. This is the test that fails at the coarse end.

And the winning spacing has to beat its best rival by a band. A rival is a spacing that is neither a multiple nor a divisor of the winner — a comb at 2m is a subset of the comb at m and scores nearly as well by construction, so counting it as a competitor would refuse every stem the instrument works on.

That third test was added because the readout was wrong without it, and the essay on what the pair costs is where that is measured. It is worth saying here what it changed: at one rise in the sweep the combs at spacing five and spacing eight sit within five hundredths of each other, the argmax takes eight on three runs in five, and the pair that follows is not the pair the positions give. With the margin required, those three runs refuse and the two that were already right still report.

The angles against the positions, rise by rise. five rises, five seeded stems each. A filled mark is a run whose angle readout returned the pair the position counter finds in the same stem; an open mark is a refusal. At 0.032 the counter says 3/5 and the angles agree on 0 of 5, refusing 5. At 0.013 the counter says 5/8 and the angles agree on 5 of 5. At 0.01 the counter says 5/8 and the angles agree on 5 of 5. At 0.005 the counter says 8/13 and the angles agree on 5 of 5. At 0.008 the counter says 5/8 and the angles agree on 2 of 5, refusing 3. The two instruments share no code path: one is given a list of angles, the other a list of coordinates.
Fig. 7 Five rises, five seeded stems each, read from the angles alone and checked against the position counter run on the same stem. A filled mark is an agreement and an open mark is a refusal. There is nowhere on this chart for a wrong answer to be quiet.

Against the counter that is shown the positions

The comparison is the point of the whole thread and it is worth being exact about what is being compared.

cylCount is the instrument three rounds of this site have used on a cylinder. It is handed an array of coordinates and nothing else — no divergence angle, no rise, no list of Fibonacci numbers — and it returns the pair of index offsets whose surface hops are shortest and are local minima of the hop curve. pairFromAngles is handed an array of numbers in an order. They share no code path. One of them could not be run on the other’s input.

At the rises where both work they return the same two integers, on every seeded stem. That is a round trip of the kind this site keeps finding worth building: two routes with unrelated failure modes arriving at one answer, so an agreement is evidence rather than a restatement.

What it does not do

It does not work at the coarse end. At a rise of 0.032 the pattern is an unarguable 3/5 lattice, the main comb is clean at spacing three — 0.36 against a band of 0.073 — and there is no second comb above the band at any residue. Five runs, five refusals, no number reported. That is the same end the single-number readout gives out at and for the same reason: a short period has few cycles inside the lag range and few members in the family carrying the correlation.

It does not work on a stem read whole. A shoot climbs the ladder, so its pair changes as it goes, and a sequence spanning several rungs has no single period in it. Read over the whole of a growing stem the readout returns nothing at any rate from forty to five hundred and twenty nodes per rung. What it needs is a window, and how long a window and how slow a shoot is the subject of its own essay.

And it does not work on a plant that has not been disturbed. This is the failure worth naming loudest, because unlike the other two it reports. At a very small disturbance the rule locks onto the grid of azimuths it is sampled on — every divergence comes out at 137.8125°, which is exactly 147 of 384 grid steps, on every seed — and what is left to autocorrelate is a short deterministic repeat rather than a sample. Its main comb is 0.98 and the pair it names is wrong. A cap on the correlation removes most of those, and the rest is a requirement on the specimen rather than something the angles can enforce.

The same arithmetic as the tissue

There is a result from the earlier work that this one turns out to be a second sighting of, and the two were arrived at from opposite directions.

Label every edge of a head’s contact graph with the difference between the two nodes’ placement indices and the histogram of those labels is the set of spiral families the arrangement has. A golden-angle head of nine hundred points has six above the noise floor — 8, 13, 21, 34, 55, 89 — where the counted pair is two of them. The arithmetic that rescued the two-number convention was that every family but the two smallest is the sum of two others, so the set is generated by two numbers and a third count is a prediction rather than a second measurement.

The lags in this essay’s spectrum are the same kind of set. The second comb contains 13 and 21 and 29 — the larger family, the sum, and the next sum — all on the same footing, which is exactly what “generated by two numbers” means when the generators are 8 and 13. A harmonic is a step taken twice; a family is a different step. The distinction the earlier work could not make from peak heights is not about heights at all. It is about which residue class a lag is in.

What is now recoverable from a list of angles

Set against what a botanist writes down — one number per internode, in the order they were made — the account is now:

  • the smaller parastichy number, from the spacing of the main comb;
  • the larger, from the offset of the second comb;
  • and therefore the branch of the ladder, since 8/13 is Fibonacci and 7/11 is not, which is the subject of the next essay;
  • with a refusal available at every stage, so a stem that cannot supply the answer says so rather than supplying a number.

What is not recoverable is the divergence angle to any better precision than the mean of the list gives, which is not this instrument’s business — and the rise, which needs a length as well as an angle and is what the cylindrical round trip was built for. Two counts and a hop length still pin the lattice exactly. This essay is about what the first half of that costs when the only thing measured is angles.

The honest size of the claim

A model was run and its own output was read back. That is what every measurement on this site is, and the discipline that makes it worth anything is that the reading instrument is blind to what produced the data.

The claim this essay licenses is: if a plant’s divergence sequence is produced by a rule with a delay in it, then the pair is in the angles. The premise is substantial and the essay after next is about testing it, because an arrangement with the same lattice and no rule behind it has no comb at all — which makes the comb evidence about the mechanism rather than about the shape. What this essay establishes is only the arithmetic that connects the two combs to the two numbers, and that the arithmetic survives being run on stems the instrument was not tuned on.

The price is the other half. Sixty internodes bought the single number; the pair costs more than four times that, and a protractor good to half a degree costs more again. Those are the numbers a survey has to be built around, and they are the next essay but one.

A later note on the lag window

The window this page reads over is thirty lags, and the work after it recorded that the choice puts a ceiling on which rungs the readout can reach — that at 13/21 there is no window satisfying both of the readout’s requirements.

Two combs, at a rise of 0.013. The autocorrelation of 760 divergence angles from one stem held at a rise of 0.013. The filled teeth are the lags at multiples of 5; the open teeth are the second comb, at the same spacing offset by 3. Reading the spacing off the first and the offset off the second gives the pair 5 and 8, which is what the position counter reports for the same stem — from angles alone, with no coordinate anywhere in the calculation.
Fig. 8 And a second stem at the coarse rung. The window has to reach far enough to hold both combs, and where the second one falls is decided by the pair rather than by the stem.

That is wrong, and the arithmetic is two lines. A comb needs three teeth at multiples of the smaller number, so the window must reach 3m; the larger number must not become a rival spacing, so it must stop short of 3n. The band is [3m, 3n) and it is never empty.

The window on this page is therefore right for this rung and should not be read as a constant of the instrument. What stopped the finer rung being read is in The rung was not the instrument, and it turned out to be a seed length and an azimuth sample count rather than anything about lags.

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 period that is not a count — both name counting blind, lattice, lattice offset, measurement, nearest neighbour, parastichy, parastichy pair, summary statistic
  • A survivor has to be a neighbour — both name counting blind, lattice, lattice offset, measurement, nearest neighbour, parastichy pair, the placement rule, rise
  • The organ that was taken away — both name counting blind, divergence angle, lattice, measurement, nearest neighbour, parastichy pair, the placement rule, rise
  • The slide a counter holds constant — both name counting blind, divergence angle, lattice, measurement, parastichy pair, the placement rule, rise, summary statistic
  • What a count cannot decide — both name counting blind, divergence angle, lattice, measurement, parastichy, parastichy pair, rise, summary statistic
  • Where a handover sits — both name counting blind, divergence angle, lattice, measurement, nearest neighbour, parastichy, parastichy pair, rise

Named objects

A flat tag is an object no other essay names yet.

AutocorrelationCounting blindConvergentsCylinderDivergence angleLatticeLattice offsetMeasurementNearest neighbourParastichyParastichy pairThe placement ruleRiseRound tripSummary statistic