Skip to content

conformance: promote 6 structural formats to bit-precise (55->61/83)#1221

Merged
gHashTag merged 1 commit into
masterfrom
feat/conformance-promote-6-structural-bitexact
Jun 28, 2026
Merged

conformance: promote 6 structural formats to bit-precise (55->61/83)#1221
gHashTag merged 1 commit into
masterfrom
feat/conformance-promote-6-structural-bitexact

Conversation

@gHashTag

@gHashTag gHashTag commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Что делает PR

Повышает 6 форматов из яруса structural в bit-precise (строгий SW-bitexact), добавляя для каждого независимый декодер с проверкой decode→f64 точно и abs_error = 0 на каждом векторе. Счётчик строгого SW-bitexact: 55 → 61 / 83.

Повышенные форматы (6)

Формат Закон декодирования Проверка
gf10 GoldenFloat S1E3M6, bias=3 — доказанный GF radix-2 закон (как gf6/gf8/gf12) 3.0 точно в коде 0x120; все 1024 кода конечны
decimal32 IEEE 754-2008 BID: значимое = двоичное целое, value = coeff·10^(exp−bias) verified vs fractions.Fraction-оракул (7-значн. коэфф.)
decimal64 BID (ncomb=13, t=50, bias=398, pmax=16) verified vs Fraction
decimal128 BID (ncomb=17, t=110, bias=6176, pmax=34) verified vs Fraction
double_double Bailey/Hida: value = ТОЧНАЯ сумма 2 лимбов binary64 (MS-first) exact Fraction limb-sum
quad_double Bailey/Hida: value = ТОЧНАЯ сумма 4 лимбов binary64 exact Fraction limb-sum

abs_error = 0 на каждом векторе всех 6 паков.

Изменения индекса/доков

  • INDEX_all_formats.json: bitexact_packs 55→61, structural_packs 22→16, selfconsistent_packs 6 (без изменений). Всего 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.
  • self-test gate → PASS (8/8 мутантов убиты).
  • README SHA-256 манифест (83 записи) сверен с фактическими файлами → 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

@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-06-28 09:08:53 UTC

Summary

Status Count
Total Open PRs 9
PRs with Failing Checks 6
PRs with All Checks Green 3
READY 3
FAILING 6
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=1953ec73601f != manifest seal=49e55df6d444.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

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
gHashTag force-pushed the feat/conformance-promote-6-structural-bitexact branch from 4e82991 to 4a39f75 Compare June 28, 2026 12:05
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-06-28 12:05:51 UTC

Summary

Status Count
Total Open PRs 10
PRs with Failing Checks 6
PRs with All Checks Green 4
READY 4
FAILING 6
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=1953ec73601f != manifest seal=49e55df6d444.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit ebfd31f into master Jun 28, 2026
19 of 20 checks passed
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
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.

conformance: promote 6 structural formats to bit-precise (55->61/83)

1 participant