Files
Matiq d802ee7aed 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).
2026-08-20 21:07:30 +03:00

84 lines
3.7 KiB
C++

#include "exp2_tables.hpp"
const double kExp2_big[16] = {-708.4496630450985, -1.684386341407621e-09, -708.4515131843864, -1.6846944146916641e-09, -708.45335990698, -1.6842043988210445e-09, -708.4552032254742, -1.6843549704258747e-09, -708.4570431523962, -1.6843595268906607e-09, -708.4588797002034, -1.6844454361914893e-09, -708.460712881285, -1.6845411315873754e-09, -708.4625427079618, -1.6847775654777725e-09};
const double kExp2_f2f4e0[16] = {
1.4428269863128662, 1.4428050518035889,
1.4427828788757324, 1.442760944366455,
1.4427390098571777, 1.4427168369293213,
1.442694902420044, 0.0,
0.0, 4.4108115616836585e-05,
1.1367896310043682e-14, 8.797914665592543e-05,
1.5988983620902337e-14, 0.0001320899521033425,
1.4296626333272017e-13, 0.000176202106558776,
};
const double kExp2_f2f7f8[16] = {
0.0020239239952388743, 1.8741497305441306e-13,
0.002067855273025998, 7.192750688017651e-14,
0.0021117878884524544, 1.0220676705319255e-13,
0.002155721841745617, 1.3235740370168912e-13,
0.0021996571331328596, 1.6491510884591246e-14,
0.0022435937623868085, 6.347597838479135e-14,
0.0022875317297348374, 1.2743779084316537e-13,
0.00233147103540432, 6.251137955211938e-14,
};
const double kExp2_f2f5e8[16] = {
0.0005723181491248397, 1.376549281185315e-13,
0.0006162052457057143, 1.6759446167811947e-13,
0.000660332205143277, 1.6967863464240126e-13,
0.0007042219792765536, 1.7632410214517053e-13,
0.0007483516310458072, 9.18589132069676e-14,
0.0007922440829588595, 1.745659100765534e-13,
0.0008363764272871776, 1.0471272193277231e-13,
0.000880271557434753, 1.3552297619973825e-13,
};
const double kExp2_f2f900[16] = {
-1.222848299709874e-13, -0.0014317083230253047,
-6.872760839443708e-15, -0.001409557215993118,
-1.6088057051259155e-13, -0.0013876439584237232,
-1.5027471116381911e-13, -0.001365492174954852,
-1.6218976050293882e-13, -0.0013435782479973568,
-2.1550458851811851e-13, -0.0013214257880918012,
-4.3995053663865014e-14, -0.0012995111917462054,
-1.203413000559803e-13, -0.001277358054949218,
};
const double kExp2_f2ff18[16] = {
1.182784710984341, 1.542975430079076e-17,
1.189207115002721, 3.982015231465646e-17,
1.1956643920398273, 4.6166036704814814e-17,
1.202156731452703, 6.6449814992523e-17,
1.2086843236265816, -4.746725945228984e-17,
1.215247359980469, -7.712630692681487e-17,
1.2218460329727576, -1.061102121140269e-16,
1.22848053610687, -1.8987816313025296e-17,
};
const double kExp2_f2ff20[16] = {
1.542975430079076e-17, 1.189207115002721,
3.982015231465646e-17, 1.1956643920398273,
4.6166036704814814e-17, 1.202156731452703,
6.6449814992523e-17, 1.2086843236265816,
-4.746725945228984e-17, 1.215247359980469,
-7.712630692681487e-17, 1.2218460329727576,
-1.061102121140269e-16, 1.22848053610687,
-1.8987816313025296e-17, 1.2351510639369334,
};
const double kExp2_f2fb10[16] = {
-9.17010025169853e-14, -0.0007045933023164253,
-8.15362723390069e-14, -0.0006826693343100487,
-3.361971520911895e-14, -0.0006605067235341266,
-1.2931671548024404e-13, -0.0006385820854575286,
-1.7298500585521957e-13, -0.000616418797562801,
-1.0577760184105114e-13, -0.0005944934894159815,
-2.0008148363066578e-13, -0.0005725678481667273,
-1.8264405520037802e-13, -0.0005504035461854073,
};
const double kExp2_f30f88[16] = {
-1.6843595268906607e-09, -708.4588797002034,
-1.6844454361914893e-09, -708.460712881285,
-1.6845411315873754e-09, -708.4625427079618,
-1.6847775654777725e-09, -708.4643691924884,
-1.6841660943615788e-09, -708.4661923470494,
-1.6847288026066712e-09, -708.4680121837664,
-1.6847104098547488e-09, -708.469828714693,
-1.684518673135394e-09, -708.4716419518172,
};