Skip to content

Commit 9b3dd5b

Browse files
committed
blackboard (18): the headline dropped its condition, and a share is not a win
Two codex findings on #316, both correct, both against this entry. (a) The headline read "inert on every power-of-two population". False below 512 rows: 64/128/256 rows are 1/2/4 words, so words % 8 != 0 and the tail is the WHOLE op. The derivation immediately above the table says k >= 9 and the prose below said "at or above 512 rows" — the TITLE is what lost it. That is the fourth level of this session's one defect class: after a label outrunning its accumulator, a claim outrunning its evidence, and a measurement outrunning its regime, a headline outrunning the derivation directly beneath it. (b) A SHARE is not a WIN. The 16 ns is the padded tail's share of the current op; the rewrite does not remove it, it replaces it with #315's measured fixed-step tail of 5.33 ns. Every share figure therefore overstated the win by exactly 16 / 10.67 = 1.5x. At a million rows: current 1953 x 0.31 + 16 = 621 ns, win 10.67 ns = 1.7%, not 2.6%. Both tables now carry share AND win columns, and the crossovers move in: the win falls under 5% above ~325k rows and under 1% above ~1.74M, where the share put those at ~502k and ~2.6M. The verdict is unchanged and strengthened — the band where the work pays is narrower than the entry first claimed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCfrD5y19cvFc4AoyydXYv
1 parent 483b7c1 commit 9b3dd5b

1 file changed

Lines changed: 49 additions & 23 deletions

File tree

.claude/blackboard.md

Lines changed: 49 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## 2026-09-16 (18) — the tail OPTIMISATION IS INERT ON EVERY POWER-OF-TWO POPULATION, including the 4096-row tile
1+
## 2026-09-16 (18) — the tail OPTIMISATION IS INERT ON EVERY POWER-OF-TWO POPULATION >= 512 ROWS, including the 4096-row tile
22

33
Established before writing the rewrite (15)-(17) argued for, and it changes
44
whether that rewrite is worth doing at all. No code; this entry is the gate.
@@ -10,16 +10,35 @@ this file's own `mask_words_for`). The facade's algebra ops walk `U64x8`, so a
1010
TAIL exists only when `words % 8 != 0`. For a power of two, `words = 2^(k-6)`,
1111
and `2^(k-6) % 8 == 0` for every `k >= 9`. So:
1212

13-
| rows | words | tail | tail share of the whole op |
14-
|---:|---:|---:|---:|
15-
| 512 | 8 | 0 | **none** |
16-
| **4096** | **64** | **0** | **none** |
17-
| 10 000 | 157 | 5 | 73 % |
18-
| 65 536 | 1024 | 0 | **none** |
19-
| 1 000 000 | 15 625 | 1 | 2.6 % |
20-
| 16 777 216 | 262 144 | 0 | **none** |
21-
22-
(share computed as 16 ns padded tail against a body of `groups × 0.31 ns`.)
13+
| rows | words | tail | tail SHARE of the op | what the REWRITE would WIN |
14+
|---:|---:|---:|---:|---:|
15+
| 64 | 1 | 1 | 100 % | 67 % |
16+
| 128 | 2 | 2 | 100 % | 67 % |
17+
| 256 | 4 | 4 | 100 % | 67 % |
18+
| **512** | **8** | **0** | **none** | **none** |
19+
| **4096** | **64** | **0** | **none** | **none** |
20+
| 10 000 | 157 | 5 | 73 % | 49 % |
21+
| 65 536 | 1024 | 0 | **none** | **none** |
22+
| 1 000 000 | 15 625 | 1 | 2.6 % | **1.7 %** |
23+
| 16 777 216 | 262 144 | 0 | **none** | **none** |
24+
25+
**Two corrections, both codex on #316, both to this table and its headline.**
26+
27+
**(a) The headline dropped its own condition.** It read "inert on every
28+
power-of-two population". False below 512 rows: 64/128/256 rows are 1/2/4
29+
words, so `words % 8 != 0` and the tail is the WHOLE op. The derivation right
30+
above the table says `k >= 9` and the prose below said "at or above 512 rows" —
31+
the TITLE is what lost it, which is the fourth level of this session's one
32+
defect class: after a label outrunning its accumulator, a claim outrunning its
33+
evidence and a measurement outrunning its regime, **a headline outrunning the
34+
derivation directly beneath it.**
35+
36+
**(b) A SHARE is not a WIN, and this entry conflated them.** The 16 ns is the
37+
padded tail's share of the current op; the rewrite does not remove it, it
38+
replaces it with #315's measured fixed-step tail of **5.33 ns**. So the win is
39+
`(16 − 5.33) / current`, and every share figure overstated it by exactly
40+
`16 / 10.67 = 1.5×`. At a million rows: current `1953 × 0.31 + 16 ≈ 621 ns`,
41+
win `10.67 ns ≈ 1.7 %` — not 2.6 %.
2342

2443
**Every power-of-two population at or above 512 rows has NO TAIL AT ALL**, and
2544
this workspace's shapes are overwhelmingly powers of two — the 4096-row tile,
@@ -100,22 +119,29 @@ committed test or bench in the consumer can ever exercise the regime the
100119
optimisation targets — which is exactly why #315's probe had to choose
101120
`base = 8` and `64` words to see it at all.
102121

103-
**3. Where it does bite, as a share of the op** (16 ns tail, 0.31 ns/group):
104-
105-
| population | tail share |
106-
|---:|---:|
107-
| 5 000 rows | 85 % |
108-
| 50 000 | 35 % |
109-
| 100 000 | 21 % |
110-
| **~502 000** | **5 %** |
111-
| 1 000 000 | 2.6 % |
112-
| ~2 616 000 | 1 % |
113-
| any power of two ≥ 512 | **0 %** |
122+
**3. Where it does bite** — reported as the WIN the rewrite would deliver, not
123+
the tail's share, per the correction above (padded 16 ns replaced by #315's
124+
measured fixed-step 5.33 ns, against a body of `groups × 0.31 ns`):
125+
126+
| population | tail share | REWRITE WIN |
127+
|---:|---:|---:|
128+
| 5 000 rows | 85 % | 57 % |
129+
| 50 000 | 35 % | 23 % |
130+
| 100 000 | 21 % | 14 % |
131+
| ~325 000 | 7.5 % | **5 %** |
132+
| ~502 000 | 5 % | 3.4 % |
133+
| 1 000 000 | 2.6 % | **1.7 %** |
134+
| ~1 735 000 | 1.5 % | **1 %** |
135+
| any power of two ≥ 512 | 0 % | **0 %** |
136+
137+
So the crossovers move in with the correction: the win falls under **5 %** above
138+
~325 k rows and under **1 %** above ~1.74 M, where the share figures put those
139+
thresholds at ~502 k and ~2.6 M.
114140

115141
### Verdict on step (b): DO NOT BUILD IT
116142

117143
The optimisation is worth something only for arbitrary populations in roughly
118-
the **5 k – 500 k row** band. Outside it: under 512 rows the op is all tail and
144+
the **5 k – 325 k row** band (where the WIN, not the share, clears 5 %). Outside it: under 512 rows the op is all tail and
119145
untimed, above ~2.6 M rows it is under 1 %, and on every power of two it is
120146
exactly zero. Against that it would touch a hot facade at 11 sites across six
121147
realizations, and make `mask_ternlog` WORSE (its padded form is one full-width

0 commit comments

Comments
 (0)