Skip to content

W966: same grid, two per cent dearer — and the extra values in #672 were subnormals - #673

Merged
gHashTag merged 4 commits into
mainfrom
same-grid-w966
Aug 21, 2026
Merged

gHashTag merged 4 commits into
mainfrom
same-grid-w966

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

#672 called rung sixteen strictly dominated: a range-matched float with the rung's (odd, shift) pair — hence the same lane cost — but more values and more range. The cost half was a prediction; the value counts were exact. Both are now corrected by measurement, and the result sharpens.

The discipline was not matched

TNF's own decoder maps offset 0 straight to zero — the format has no subnormals. The floats #672 compared against did. Subnormals are where the float's extra values came from, and they are not free: they need a leading-zero normaliser the rung never pays for.

So #672 priced a design choice as a property of the lattice.

Rebuilt in TNF's own discipline, priced structurally, every code verified

Offset 0 flushes to zero, offset all-ones is inf/NaN, otherwise 1.m · 2^(off−bias) — the same conventions the TNF decoder uses:

format bits distinct values binades decoder consumer
TNF16 v2-spec (4,11) 19 516 097 127.00 27.00 450.29
fp19 e7m11 FTZ 19 516 096 126.00 18.00 441.29
fp19 e6m12 FTZ 19 507 904 62.00 22.00 445.29
TNF8 (3,4) 10 961 30.95 18.00 230.57
fp10 e5m4 FTZ 10 960 29.95 13.00 225.57

The grids are the same grid — one value and one binade apart at nineteen bits, one value and one binade apart at ten.

What differs is cost: +2.0 % and +2.2 %, and it sits in the decoder — 27.00 cells against 18.00, and 18.00 against 13.00 — where TNF's offset-max sentinel and bias constant buy nothing the float lacks.

Why this negative result is stronger than the last one

"Dominated on three axes" invited the reply that the axes were unmatched — and they were. "Same grid, two per cent dearer to decode" does not, because the grids are now equal by construction and the cost is measured rather than predicted.

Cross-validation

TNF16's structural consumer cost reproduces the W942 record exactly — 450.29 against 450.286 — from an independently launched run over the same 524 288 verified codes.

Limit, stated

The FTZ float's Verilog is checked against a Python reference of the same semantics over every code, which validates the transliteration, not the definition. The definition is ours, chosen to match TNF's own zero and infinity handling. A reader who thinks subnormals belong in scope should read #672's table — and then also charge the float for the normaliser.

python3 research/arxiv_tnf/verify_numbers.py

208 derived checks, all passing. Related: #644, #664, #668, #670, #671, #672.

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant