Repository navigation
crmvec 0.8.0
crmvec 0.8.0: the same correctly rounded results, faster.
Eighteen float functions (logf, log2f, log10f, log1pf, expm1f, tanhf,
atanf, asinf, acosf, atanhf, asinhf, acoshf, cbrtf, erff, erfcf, asinpif,
acospif, atanpif) get new AVX2 vector paths. They compute just enough
precision to decide the rounding of nearly every input, and leave the
rest to CORE-MATH. Results are bit-for-bit what 0.7.2 gave, which is
CORE-MATH's correctly rounded result, on all 2^32 inputs of each
function, and under flush-to-zero too. Time per element on an AMD EPYC
7773X, through the AVX2 entry points:
logf 2.49 -> 1.77 ns log2f 2.54 -> 1.93 log10f 2.60 -> 2.04
log1pf 3.61 -> 2.37 expm1f 3.07 -> 1.99 tanhf 3.62 -> 3.25
atanf 3.29 -> 1.96 asinf 4.13 -> 2.00 acosf 5.10 -> 2.06
atanhf 4.58 -> 2.67 asinhf 4.96 -> 4.13 acoshf 4.90 -> 3.81
cbrtf 4.20 -> 2.14 erff 3.79 -> 2.97 erfcf 5.63 -> 3.92
asinpif 10.44 -> 2.32 acospif 10.49 -> 2.45 atanpif 10.16 -> 2.71
Also: crtest verify under flush-to-zero (CRTEST_FTZ=1); the pi functions
in crtest's every-input check; -Werror=undef for crmvec.c; check-pocl.py
exits 2 when it cannot give a verdict; CORE-MATH 284b3b0's sinpi.c.
Nix users: from 0.6.0 to 0.7.2 the Nix recipe skipped make check without
saying so. It runs it again from 0.8.0 (every verdict passes with current
nixpkgs).