P5: F5b — exp2 0x26b820 assets extracted bit-exact + numeric fallback exp2_dsp

Extracted the 8x16 irrational tables + lead-in -708.4xx series from soothe_mem.bin
into exp2_tables.{hpp,cpp} (P3 bit-exact inputs). exp2_dsp = numerically-correct
double exp2 matching std::exp2 (wiring fallback; NOT bit-exact yet — the plugin
body has special subnormal/overflow branches and a vfmadd213sd poly not yet 1:1).
exp2_check: 2e6-grid PASS (0 cells >1e-13).
This commit is contained in:
2026-08-20 21:07:30 +03:00
parent 4e9c1b1ed7
commit d802ee7aed
7 changed files with 201 additions and 0 deletions
+13
View File
@@ -1090,3 +1090,16 @@ window (step5), combine 0x5407c8 accumulator, internal 48000/4096 geometry. The
Remaining real paths to bytes: (F1) live capture of level-path object (A/B/gamma) OR
(F5) bit-exact exp2/FFT kernels — neither changes the mean but both are required for
byte parity. No code change; NOTE-only.
## ============ UPDATE 2026-08-20y: F5b — exp2 0x26b820 (assets + numeric fallback) ============
- 0x26b820 = SCALAR double exp2 (vmulsd/vaddsd family; vmovups wrapper 0x26c220 =
32-at-a-time bigkernel with MXCSR/fnstcw control). Table-driven fdlibm-style,
Cody-Waite hi/lo: 8x16 irr tables + 0x181f31940.. series (-708.449.. step, companion
-1.684e-9) + kExp2_f2f4e0.. (log2e~1.4428 head) + vfmadd213sd poly chain.
- EXTRACTED bit-exact P3 assets: dsp/exp2_tables.{hpp,cpp} (8x16 doubles straight from
soothe_mem.bin file=RVA; lead-in series kExp2_big). NOT yet wired 1:1 (algorithm body
has many special branches: subnormal/overflow/precision split).
- exp2_dsp() (dsp/exp2.cpp): numerically correct double exp2 (=std::exp2) for wiring;
RELIABLY NOT bit-exact to plugin (documented). exp2_check: 2e6 dense grid + edges,
PASS vs std::exp2 (0 cells >1e-13) -> ensures fallback correctness only.
Bit-exact exp2 transcription stays P3 (same bucket as DSP-FFT butterfly wiring).