API-COMPLETENESS-T27 · GF4/GF8/GF12/GF20/GF24 имеют только extract_*, нет from_f32/to_f32/arithmetic
File: ffi/src/lib.rs
Severity: P1 — partial paperware (formats declared but not usable)
Current API surface
| Format |
extract_sign |
extract_exp |
extract_mant |
from_f32 |
to_f32 |
arithmetic |
| GF4 |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| GF8 |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| GF12 |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| GF16 |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
| GF20 |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| GF24 |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
| GF32 |
✅ |
✅ |
✅ |
✅* |
✅* |
✅ |
* GF32 is IEEE-fp32 layout (see BUG-003-T27) — not whitepaper Lucas-18.
Whitepaper claim
whitepaper §1.2:
Golden Float family: GF4, GF8, GF12, GF16, GF20, GF24, GF32
But only GF16 + (broken) GF32 can encode/decode/compute. The other 5 formats are introspection-only.
Required for honest publication
Either:
- (a) Implement encode/decode/arithmetic for GF4/8/12/20/24 — full family
- (b) Retract from whitepaper as «GF16 + GF32 only; smaller/larger formats reserved for future»
Decomposition (if path a)
| Format |
Layout |
Effort |
| GF4 |
1:1:2 (sign+exp+mant) |
30 мин |
| GF8 |
1:3:4 (whitepaper) |
30 мин |
| GF12 |
1:4:7 |
30 мин |
| GF20 |
1:7:12 |
30 мин |
| GF24 |
1:9:14 |
30 мин |
Plus arithmetic (add/sub/mul/div) per format: × 5 formats × 4 ops = 20 functions.
Acceptance
For each missing format:
gfN_from_f32(x: f32) -> uN — encode via integer bit manipulation
gfN_to_f32(value: uN) -> f32 — decode
gfN_add/sub/mul/div(a, b) — arithmetic via integer ops
- Round-trip tests for
0, ±0, 1.0, π, NaN, Inf
- ULP @ |x|=1 verified against theoretical
2^-mant_bits
Cross-references
phi^2 + phi^-2 = 3 · TRINITY · NEVER STOP
API-COMPLETENESS-T27 · GF4/GF8/GF12/GF20/GF24 имеют только
extract_*, нетfrom_f32/to_f32/arithmeticFile:
ffi/src/lib.rsSeverity: P1 — partial paperware (formats declared but not usable)
Current API surface
* GF32 is IEEE-fp32 layout (see BUG-003-T27) — not whitepaper Lucas-18.
Whitepaper claim
whitepaper §1.2:
But only GF16 + (broken) GF32 can encode/decode/compute. The other 5 formats are introspection-only.
Required for honest publication
Either:
Decomposition (if path a)
Plus arithmetic (add/sub/mul/div) per format: × 5 formats × 4 ops = 20 functions.
Acceptance
For each missing format:
gfN_from_f32(x: f32) -> uN— encode via integer bit manipulationgfN_to_f32(value: uN) -> f32— decodegfN_add/sub/mul/div(a, b)— arithmetic via integer ops0, ±0, 1.0, π, NaN, Inf2^-mant_bitsCross-references
fp32, fp16, bf16, gf16, ternary— extending to GF4/8/12/20/24 requires this issue resolvedphi^2 + phi^-2 = 3· TRINITY · NEVER STOP