Switch from custom LN_2 constant to math.LN2

This commit is contained in:
Zachary Levy
2026-03-29 20:29:24 -07:00
parent a8f98e893f
commit 25fca052f5
2 changed files with 9 additions and 5 deletions

View File

@@ -22,6 +22,11 @@
"command": "odin test levsync -out=out/debug/test_levsync",
"cwd": "$ZED_WORKTREE_ROOT"
},
{
"label": "Test levmath",
"command": "odin test levmath -out=out/debug/test_levmath",
"cwd": "$ZED_WORKTREE_ROOT"
},
// ---------------------------------------------------------------------------------------------------------------------
// ----- LMDB Examples ------------------------
// ---------------------------------------------------------------------------------------------------------------------

View File

@@ -34,14 +34,13 @@ import "core:testing"
// Neural Computation 11, 853862 (1999).
// J. Rade, FastExp.h (2021), https://gist.github.com/jrade/293a73f89dfef51da6522428c857802d
fast_exp :: #force_inline proc "contextless" (x: $FLOAT) -> FLOAT where intrinsics.type_is_float(FLOAT) {
LN_2 :: 0.6931471805599453
CORRECTION :: 0.04367744890362246
when FLOAT == f16 {
MANTISSA_BITS :: 10
EXPONENT_BIAS :: 15
SHIFT :: f16(1 << MANTISSA_BITS)
SCALE :: SHIFT / LN_2
SCALE :: SHIFT / math.LN2
BIAS :: SHIFT * f16(EXPONENT_BIAS - CORRECTION)
MAX_Y :: SHIFT * (2 * EXPONENT_BIAS + 1)
@@ -52,7 +51,7 @@ fast_exp :: #force_inline proc "contextless" (x: $FLOAT) -> FLOAT where intrinsi
MANTISSA_BITS :: 23
EXPONENT_BIAS :: 127
SHIFT :: f32(1 << MANTISSA_BITS)
SCALE :: SHIFT / LN_2
SCALE :: SHIFT / math.LN2
BIAS :: SHIFT * f32(EXPONENT_BIAS - CORRECTION)
MAX_Y :: SHIFT * (2 * EXPONENT_BIAS + 1)
@@ -63,7 +62,7 @@ fast_exp :: #force_inline proc "contextless" (x: $FLOAT) -> FLOAT where intrinsi
MANTISSA_BITS :: 52
EXPONENT_BIAS :: 1023
SHIFT :: f64(1 << MANTISSA_BITS)
SCALE :: SHIFT / LN_2
SCALE :: SHIFT / math.LN2
BIAS :: SHIFT * f64(EXPONENT_BIAS - CORRECTION)
MAX_Y :: SHIFT * (2 * EXPONENT_BIAS + 1)