Repository navigation
W966: same grid, two per cent dearer — and the extra values in #672 were subnormals - #673
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#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:(4,11)fp19 e7m11FTZfp19 e6m12FTZ(3,4)fp10 e5m4FTZThe 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.
208 derived checks, all passing. Related: #644, #664, #668, #670, #671, #672.
🤖 Generated with Claude Code