DoubleFloats Accuracy Report

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

This report samples a representative subset; it does not cover all available functions.

Double64

Errors are measured against a 512-bit BigFloat reference in units of the Double64 working precision, 1 ulp = 2⁻¹⁰⁴ (about 4.9e-32) relative. A worst case of about 1 ulp means the function is as accurate as the format allows.

Exponentials and Logarithms

functiondomainsamplesmedian (ulps)worst (ulps)
exp(-100, 100)2500.343.33
expm1(-1, 1)2500.344.46
exp2(-100, 100)2500.322.40
log(0, 100)2500.080.49
log1 ± 2⁻³¹2500.141.01
log1p(-1, 1)2500.090.58
log2(0, 100)2500.040.36

Trigonometric Functions

functiondomainsamplesmedian (ulps)worst (ulps)
sin(-100, 100)2500.020.30
cos(-100, 100)2500.020.24
tan(-1, 1)2500.131.44
sinnear π/22500.020.21
cosnear π/22500.070.41
cosnear π2500.020.23

Inverse Trigonometric Functions

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

Hyperbolic and Inverse Hyperbolic Functions

functiondomainsamplesmedian (ulps)worst (ulps)
sinh(-2, 2)2500.413.51
sinh(-9, 9)2500.393.13
cosh(-2, 2)2500.223.13
cosh(-9, 9)2500.282.81
tanh(-2, 2)2500.162.97
tanh(-9, 9)2500.100.95
asinh(-100, 100)2500.080.43
asinh±2⁻⁴⁰2500.120.79
acosh(1, 101)2500.070.66
acosh1 + ε2500.170.99
atanh(-1, 1)2500.102.12
atanh±2⁻⁴⁰2500.091.11

Special Functions

erf, erfc, and gamma are computed via Float128; its 113-bit significand caps their accuracy at roughly half an ulp of Double64.

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

Matrix Functions (identity residuals)

Matrix routines are checked through their defining identities on random matrices, normalized per matrix dimension. An unavailable row identifies a routine that cannot currently execute for that precision.

identitysizesamplesmedian (ulps)worst (ulps)
eigen residual ‖AV−VΛ‖8×8250.390.66
exp∘log roundtrip8×8252.262.78
sqrt squared8×8252.014.13
sin²+cos²−I8×8255.3012.20

Double32

Errors are measured against a 512-bit BigFloat reference in units of the Double32 working precision, 1 ulp = 2⁻⁴⁶ (about 1.4e-14) relative. A worst case of about 1 ulp means the function is as accurate as the format allows.

Exponentials and Logarithms

functiondomainsamplesmedian (ulps)worst (ulps)
exp(-100, 100)2350.02157483982232.15
expm1(-1, 1)2500.020.12
exp2(-100, 100)2500.373.13
log(0, 100)2500.030.12
log1 ± 2⁻³¹2500.000.01
log1p(-1, 1)2500.020.11
log2(0, 100)2500.020.13

Trigonometric Functions

functiondomainsamplesmedian (ulps)worst (ulps)
sin(-100, 100)2500.020.11
cos(-100, 100)2500.020.12
tan(-1, 1)2500.020.11
sinnear π/22500.020.06
cosnear π/22500.020.12
cosnear π2500.010.07

Inverse Trigonometric Functions

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

Hyperbolic and Inverse Hyperbolic Functions

functiondomainsamplesmedian (ulps)worst (ulps)
sinh(-2, 2)2500.020.13
sinh(-9, 9)2500.020.11
cosh(-2, 2)2500.020.13
cosh(-9, 9)2500.030.12
tanh(-2, 2)2500.020.11
tanh(-9, 9)2500.020.10
asinh(-100, 100)2500.020.10
asinh±2⁻⁴⁰2500.000.00
acosh(1, 101)2500.030.12
acosh1 + ε2500.020.12
atanh(-1, 1)2500.020.12
atanh±2⁻⁴⁰2500.000.00

Special Functions

erf, erfc, and gamma are computed via Float128; its 113-bit significand caps their accuracy at roughly half an ulp of Double64.

functiondomainsamplesmedian (ulps)worst (ulps)
erf(-1, 1)2500.020.11
erfc(-1, 1)2500.020.10
gamma(0.1, 10)2500.020.12
ellipk(0, 1)2500.100.88
ellipk1 - 2⁻²⁰⁻⁵⁰2500.141.00

Matrix Functions (identity residuals)

Matrix routines are checked through their defining identities on random matrices, normalized per matrix dimension. An unavailable row identifies a routine that cannot currently execute for that precision.

identitysizesamplesmedian (ulps)worst (ulps)
eigen residual ‖AV−VΛ‖8×8250.320.50
exp∘log roundtrip8×8251.593.06
sqrt squared8×8251.542.97
sin²+cos²−I8×8253.6010.09

The unavailable Double32 matrix rows currently require a generic Schur path through Complex{Double32}, which is not supported.