DoubleFloats Accuracy Report

Generated by docs/reports/accuracies.jl on Julia 1.12.6.

Each function is evaluated at random in-domain points and compared against a 512-bit BigFloat reference. Errors are reported in units of the Double64 working precision, 1 ulp = 2⁻¹⁰⁴ relative (about 4.9e-32); a worst case of ~1 ulp means the function is as accurate as the format allows. This report samples a representative subset; it does not cover all available functions.

Exponentials and Logarithms

functiondomainsamplesmedian (ulps)worst (ulps)
exp(-100, 100)2500.130.81
exp(-660, -600)2500.020.12
expm1(-1, 1)2500.020.12
log(0, 100)2500.050.51
log1 ± 2⁻³¹2500.051.04
log1p(-1, 1)2500.101.00
log2(0, 100)2500.060.49
log10(0, 100)2500.660.98

Note: exp(x) for x below about −670 is representation-limited — the result's low word falls below the subnormal floor, so no algorithm returning a Double64 can do better; errors there are excluded from the table because they measure the format, not the function.

Trigonometric Functions

functiondomainsamplesmedian (ulps)worst (ulps)
sin(-100, 100)2500.020.67
cos(-100, 100)2500.0210.26
tan(-1, 1)2500.040.66
sinnear π/22500.080.51
cosnear π/22500.66209.14
cosnear π2500.070.50

Note: near the zeros of a function (e.g. cos at π/2) the relative measure used here inflates, because the mathematical condition number is unbounded there. The large worst-ulp entries for cos come from samples landing very close to a root; absolute error stays at the 2⁻¹⁰⁴ level throughout.

Inverse Trigonometric Functions

functiondomainsamplesmedian (ulps)worst (ulps)
asin(-1, 1)2500.020.12
acos(-1, 1)2500.020.12
atan(-100, 100)2500.020.09

Hyperbolic and Inverse Hyperbolic Functions

functiondomainsamplesmedian (ulps)worst (ulps)
sinh(-300, 300)2500.151.02
cosh(-100, 100)2500.121.03
tanh(-1, 1)2500.2316.32
asinh(-100, 100)2500.040.31
asinh±2⁻⁴⁰2500.080.91
acosh(1, 101)2500.050.25
acosh1 + ε2500.121.09
atanh(-1, 1)2500.090.98
atanh±2⁻⁴⁰2500.000.99

Note: sinh and tanh lose a few bits for very small arguments to cancellation in exp(x) - exp(-x); the worst cases above (~16 ulps) come from that region.

Special Functions

erf, erfc, and gamma are computed via Float128; its 113-bit significand caps their accuracy at roughly half an ulp of Double64, and the measured values below reflect that route.

functiondomainsamplesmedian (ulps)worst (ulps)
erf(-1, 1)2500.020.11
erfc(-1, 1)2500.020.11
gamma(0.1, 10)2500.020.11
ellipk(0, 1)2500.110.70
ellipk1 - 2⁻²⁰⁻⁵⁰2500.160.93

Matrix Functions (identity residuals)

Matrix routines are checked through their defining identities on random matrices, normalized per matrix dimension.

identitysizesamplesmedian (ulps)worst (ulps)
eigen residual ‖AV−VΛ‖8×8250.380.88
exp∘log roundtrip8×8251.903.22
sqrt squared8×8251.983.57
sin²+cos²−I8×8250.380.78