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).
17 lines
718 B
C++
17 lines
718 B
C++
#pragma once
|
|
#include <cstdint>
|
|
|
|
// Scalar double exp2 — structural sketch of the dump function at 0x18026b820
|
|
// (element kernel wrapped by bigkernel 0x18026c220). NOTES_LEVEL:854-860.
|
|
//
|
|
// NUMERIC STATUS: exp2_dsp() is a numerically-correct double exp2 (agrees with
|
|
// std::exp2 within ~1e-13 rel) used for wiring/tests NOW. BIT-EXACT parity with
|
|
// the plugin's table-driven path (8x16 irr tables kExp2_* + vfmadd213sd chain,
|
|
// Cody-Waite hi/lo splits) is P3 REMAINING: the tables are captured bit-exact
|
|
// (dsp/exp2_tables.*), the algorithm wiring is not yet transcribed 1:1.
|
|
namespace exp2d {
|
|
|
|
// 2^x. Numerically correct; matches std::exp2 for all finite x.
|
|
double exp2_dsp(double x);
|
|
|
|
} // namespace exp2d
|