nx_bigfloat120_exp.nx
buildroot/runtime/nx_bigfloat120_exp.nx
about
nx_bigfloat120_exp.nx -- SOVEREIGN exp oracle: binary64-in, binary64-out, all
internals 120-bit bigfloat, EVERY constant self-computed (no mpmath, no python):
ln2 = 2 * atanh(1/3) = 2 * (1/3 + (1/3)^3/3 + (1/3)^5/5 + ...) [39 odd terms]
Range reduction k = nearest(x / ln2) is taken in bigfloat; r = |x - k*ln2| with
the sign handled by the reciprocal trick (exp(-r) = 1/exp(r)) so the Taylor
series sums positive terms only. 30 terms: r <= ln2/2 gives a 2^-122 tail.
license_tier: ORIGINAL
dependencies 4 imports · 13 importers
diagram shows first 10 each side; +0 more imports, +3 more importers in the complete lists below.
imports: nx_syscalls.nxnx_tier.nxnx_bigfloat120.nxnx_bigfloat120_div.nx
imported by: _bf_gamma_gate_authored.nx_bf_pow_gate_authored.nx_bf_regen_gate_authored.nx_bf_sinhcosh_gate_authored.nx_f64_pow_gate_authored.nx_f64_sinhcosh_gate_authored.nx_pw_probe.nxnx_bigfloat120_gamma.nxnx_bigfloat120_ln.nxnx_bigfloat120_pow.nxnx_bigfloat120_sinh.nxnx_mathspec_pow.nxnx_mathspec_sinhcosh.nx
structs
| none |
consts
| 13 | const K_MAGIC_2047: i64 = 2047 |
| 14 | const K_MAGIC_1033: i64 = 1033 |
functions
| 17 | func bf_ln2(out: *i64) -> i64 |
| 46 | func bf_exp_f64(x: i64) -> i64 |