conformance: promote 6 structural formats to bit-precise (55->61/83)#1221
Merged
Merged
Conversation
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
This was referenced Jun 28, 2026
Open
gHashTag
pushed a commit
that referenced
this pull request
Jun 28, 2026
… (61->62/83) Track A of the parallel wave-loop. Stacked on #1221 (6-format promotion). WHAT: - takum8: structural -> bit-precise. Dedicated logarithmic decoder (value = exp(ell/2), ell = (-1)^S*(c+m), base sqrt(e)) added to gen_all_formats.py as make_takum_decoder(n). Exhaustive over all 256 codes; correctly-rounded-nearest-even f64 (min gap to midpoint = 0.0135 x 0.5 ULP -> 200-bit mpmath sufficient). LUT cross-checked vs libtakum/src/codec.c (formulaic assert). [proven] - takum16/32/64: HONESTLY kept structural. Values transcendental; the exhaustive correctly-rounded gap is NOT verifiable without an external libtakum oracle (no independent second witness). Not promoted. CITATION FIX: - takum entries cited arXiv:2412.20273 (that is 'Integer Representations in IEEE 754, Posit, and Takum', a different/later paper). The format-DEFINING reference is arXiv:2404.18603 ('Beating Posits at Their Own Game: Takum Arithmetic', CoNGA 2024, logarithmic takum). Fixed in SSOT specs/numeric/formats_catalog.t27 and forward-facing docs (NUMERIC_FORMATS_SSOT, POSITIONING_CONFORMANCE_LAYER, RESEARCH_CLAIMS). gen/numeric polyglot bindings left untouched (managed by a separate 77->83 regeneration effort). NOW.md changelog history left intact. CAVEAT: takum standard guarantees apply for n>=12, so takum8 is below the nominal threshold; this is recorded in the pack notes, not a decoder error. COUNT: strict SW-bitexact 61 -> 62/83; structural 16 -> 15; selfconsistent 6. Conformance gate: CLEAN. Self-test gates: PASS. takum8 256/256 self-test PASS. decode-HW / compute-HW unaffected (stay 0/83 until real AX7203 run). Closes #1223
Add dedicated, independently-verified reference codecs to gen_all_formats.py
and regenerate packs + INDEX for:
- gf10 GoldenFloat phi-aligned radix-2 S1E3M6, bias 3
(rule e=round(9/phi^2)=3, bridge GF8-GF12); decode reuses
the proven GF radix-2 law; 3.0 exact at code 0x120.
- decimal32/64/128 IEEE 754-2008 BID (Binary Integer Decimal): significand
is a plain binary integer (combination-head implied bits +
trailing field), value = coeff * 10^(exp-bias). Cross-checked
vs an exact-rational (fractions.Fraction) oracle; 3.0 f64-exact.
- double_double / quad_double Bailey/Hida multi-double: value = exact sum of
2/4 IEEE-754 binary64 limbs (MS-first). Fixed 128/256-bit
layout, unambiguous decode law (analogous to the earlier
x87_fp80 explicit-integer-bit promotion).
Every promoted pack: explicit decoder + reference encoder, abs_error=0 for all
recorded vectors (decode side), anchor 3.0 ieee754_exact=true.
INDEX_all_formats.json: bitexact_packs 55->61, structural_packs 22->16,
selfconsistent_packs 6 (unchanged). README updated: 3-tier coverage table,
self-consistent index section split out, structural table reduced to the 16
genuinely-undefined-layout formats, SHA-256 manifest regenerated, changelog
entry 2026-06-28.
Remaining structural (16, honest): takum8/16/32/64 (tapered logarithmic,
needs dedicated decoder), afp + per_channel_scale (external scale tensor),
gf256 (open bias R&D parameter), and 9 zero-width parametric entries
(minifloat, q_format, bcd, block_fp, shared_exp, stochastic_rounding,
tapered_fp, unum_i, unum_ii).
Refs: gHashTag/trinity-fpga#206. Deterministic: re-running gen_all_formats.py
reproduces the exact 9-file delta.
Closes #1224
gHashTag
force-pushed
the
feat/conformance-promote-6-structural-bitexact
branch
from
June 28, 2026 12:05
4e82991 to
4a39f75
Compare
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-06-28 12:05:51 UTC
Summary
Seal Status
|
gHashTag
pushed a commit
that referenced
this pull request
Jun 28, 2026
… (61->62/83) Track A of the parallel wave-loop. Stacked on #1221 (6-format promotion). WHAT: - takum8: structural -> bit-precise. Dedicated logarithmic decoder (value = exp(ell/2), ell = (-1)^S*(c+m), base sqrt(e)) added to gen_all_formats.py as make_takum_decoder(n). Exhaustive over all 256 codes; correctly-rounded-nearest-even f64 (min gap to midpoint = 0.0135 x 0.5 ULP -> 200-bit mpmath sufficient). LUT cross-checked vs libtakum/src/codec.c (formulaic assert). [proven] - takum16/32/64: HONESTLY kept structural. Values transcendental; the exhaustive correctly-rounded gap is NOT verifiable without an external libtakum oracle (no independent second witness). Not promoted. CITATION FIX: - takum entries cited arXiv:2412.20273 (that is 'Integer Representations in IEEE 754, Posit, and Takum', a different/later paper). The format-DEFINING reference is arXiv:2404.18603 ('Beating Posits at Their Own Game: Takum Arithmetic', CoNGA 2024, logarithmic takum). Fixed in SSOT specs/numeric/formats_catalog.t27 and forward-facing docs (NUMERIC_FORMATS_SSOT, POSITIONING_CONFORMANCE_LAYER, RESEARCH_CLAIMS). gen/numeric polyglot bindings left untouched (managed by a separate 77->83 regeneration effort). NOW.md changelog history left intact. CAVEAT: takum standard guarantees apply for n>=12, so takum8 is below the nominal threshold; this is recorded in the pack notes, not a decoder error. COUNT: strict SW-bitexact 61 -> 62/83; structural 16 -> 15; selfconsistent 6. Conformance gate: CLEAN. Self-test gates: PASS. takum8 256/256 self-test PASS. decode-HW / compute-HW unaffected (stay 0/83 until real AX7203 run). Closes #1223
gHashTag
pushed a commit
that referenced
this pull request
Jun 28, 2026
… (61->62/83) Track A of the parallel wave-loop. Stacked on #1221 (6-format promotion). WHAT: - takum8: structural -> bit-precise. Dedicated logarithmic decoder (value = exp(ell/2), ell = (-1)^S*(c+m), base sqrt(e)) added to gen_all_formats.py as make_takum_decoder(n). Exhaustive over all 256 codes; correctly-rounded-nearest-even f64 (min gap to midpoint = 0.0135 x 0.5 ULP -> 200-bit mpmath sufficient). LUT cross-checked vs libtakum/src/codec.c (formulaic assert). [proven] - takum16/32/64: HONESTLY kept structural. Values transcendental; the exhaustive correctly-rounded gap is NOT verifiable without an external libtakum oracle (no independent second witness). Not promoted. CITATION FIX: - takum entries cited arXiv:2412.20273 (that is 'Integer Representations in IEEE 754, Posit, and Takum', a different/later paper). The format-DEFINING reference is arXiv:2404.18603 ('Beating Posits at Their Own Game: Takum Arithmetic', CoNGA 2024, logarithmic takum). Fixed in SSOT specs/numeric/formats_catalog.t27 and forward-facing docs (NUMERIC_FORMATS_SSOT, POSITIONING_CONFORMANCE_LAYER, RESEARCH_CLAIMS). gen/numeric polyglot bindings left untouched (managed by a separate 77->83 regeneration effort). NOW.md changelog history left intact. CAVEAT: takum standard guarantees apply for n>=12, so takum8 is below the nominal threshold; this is recorded in the pack notes, not a decoder error. COUNT: strict SW-bitexact 61 -> 62/83; structural 16 -> 15; selfconsistent 6. Conformance gate: CLEAN. Self-test gates: PASS. takum8 256/256 self-test PASS. decode-HW / compute-HW unaffected (stay 0/83 until real AX7203 run). Closes #1223
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.
Что делает PR
Повышает 6 форматов из яруса
structuralвbit-precise(строгий SW-bitexact), добавляя для каждого независимый декодер с проверкойdecode→f64точно иabs_error = 0на каждом векторе. Счётчик строгого SW-bitexact: 55 → 61 / 83.Повышенные форматы (6)
gf10decimal32fractions.Fraction-оракул (7-значн. коэфф.)decimal64decimal128double_doublequad_doubleabs_error = 0на каждом векторе всех 6 паков.Изменения индекса/доков
INDEX_all_formats.json:bitexact_packs55→61,structural_packs22→16,selfconsistent_packs6 (без изменений). Всего 83 пака.README.md: 3-ярусная таблица покрытия (61 bit-precise / 6 self-consistent / 16 structural), регенерирован SHA-256 манифест (0 расхождений), запись в changelog 2026-06-28.gen_all_formats.py: добавлены BID-декодер/энкодер, multi-double декодер/энкодер,gf10в whitelist ширин. Генератор детерминирован, воспроизводит байт-идентичные паки.Остаются structural (16, честно)
takum8/16/32/64(tapered-logarithmic, нужен аккуратный декодер; контрпример FL-002),afp+per_channel_scale(внешний тензор масштаба),gf256(bias — открытый R&D-параметр, см. статус Experimental), и 9 параметрических нулевой ширины:minifloat,q_format,bcd,block_fp,shared_exp,stochastic_rounding,tapered_fp,unum_i,unum_ii.Локальная проверка [смоделировано]
tools/wp18_conformance_gate.py→ verdict CLEAN, exit 0.Критерий bit-precise
Соответствует тому же бару, что и существующие 55 паков (прецедент changelog 2026-06-14): выделенный декодер + точный
decode→f64+abs_error=0на вектор. Это НЕ второй кремниевый witness (это требование относится только к compute/gf16). SW-bitexact ≠ compute-HW.Refs: gHashTag/trinity-fpga#206 (закрыть structural-паки).
Closes #1224