Skip to content

SW-bitexact: закрыть 22 structural-формата (55→77+) — числовые векторы #206

Description

@gHashTag

Часть эпика #199 (столбец SW-bitexact).

Проблема (WV-09): в t27/conformance/vectors/INDEX_all_formats.json — 55 bitexact + 6 self-consistent + 22 structural (только структура полей, нет числовых векторов). Строгий SW-bitexact = 55/83.

Чек-лист:

  • Приоритизировать по широте применения: minifloat, shared_exp, double_double, ibm_hfp*.
  • Добавить числовые векторы + внешний оракул для каждого.
  • t27 PR #1216 уже двигает gf10/gf256 (structural→selfconsistent) — продолжить.

Тег: [открытая задача]. Ведётся в репо t27.


📋 Точный список 22 structural-форматов (выгружено из INDEX_all_formats.json, 2026-06-28)

Все имеют n_vectors=0, source=generated by gen_all_formats.py. Сгруппированы по сложности генерации числовых векторов.

Группа 1 — простые, прямой IEEE/стандартный оракул (быстро)

  • minifloat — классический E4M3/E5M2-подобный, оракул тривиален
  • bcd — двоично-десятичный, детерминирован
  • q_format — fixed-point Qm.n, оракул = целочисленный сдвиг
  • block_fp — block floating-point (общая экспонента на блок)
  • shared_exp — shared exponent (близко к block_fp)
  • per_channel_scale — поканальное масштабирование (целочисленный масштаб)

Группа 2 — расширенная точность, оракул = fractions.Fraction / mpmath (средне)

  • double_double — два f64, оракул через точную арифметику
  • quad_double — четыре f64
  • decimal32 / decimal64 / decimal128 — IEEE 754 decimal (Python decimal модуль как оракул)

Группа 3 — GF-семейство, уже есть параметрический оракул gf_add_ref.py (быстро)

  • gf10 — оракул готов (E?,M?,B? — взять из catalog_matrix), exhaustive возможен
  • gf256⚠️ bias = [открытая гипотеза] (см. #/W-3), вектора можно дать БЕЗ canonical-bias claim

Примечание: PR #1216 (t27) заявлял перевод gf10/gf256 в selfconsistent, но на 2026-06-28 они всё ещё structural в INDEX → PR не влит либо INDEX не обновлён. Проверить.

Группа 4 — экзотические/posit-подобные, нужен сторонний эталон (медленно)

  • takum8 / takum16 / takum32 / takum64 — takum (Hedström), эталон = референс-реализация автора
  • afp — adaptive floating-point
  • tapered_fp — tapered precision (posit-родственник)
  • unum_i / unum_ii — Gustafson unum типы I/II (unum II = SORN, отдельная семантика)

Группа 5 — не «формат», а механизм → решить, нужны ли числовые вектора вообще

  • stochastic_rounding — это режим округления, не representation. Возможно, оставить structural навсегда с обоснованием (как FL-002).

Рекомендуемый порядок: Группа 3 → Группа 1 → Группа 2 → Группа 4 → решение по Группе 5.
Прогресс-математика: закрытие Групп 1–3 (≈14 форматов) поднимет строгий SW-bitexact 55 → ~69/83.

Self-consistent (6, более слабая галочка, требуют внешнего оракула): gf14, gf48, gf96, gf128, gf512, gf1024.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High priorityfpga-matrixСвязано с матрицей [83 формата × {SW/decode-HW/compute-HW}]

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions