Node:Errors in Math Functions, Next:, Previous:Special Functions, Up:Mathematics



Known Maximum Errors in Math Functions

This section lists the known errors of the functions in the math library. Errors are measured in "units of the last place". This is a measure for the relative error. For a number z with the representation d.d...d·2^e (we assume IEEE floating-point numbers with base 2) the ULP is represented by

|d.d...d - (z / 2^e)| / 2^(p - 1)
where p is the number of bits in the mantissa of the floating-point number representation. Ideally the error for all functions is always less than 0.5ulps. Using rounding bits this is also possible and normally implemented for the basic operations. To achieve the same for the complex math functions requires a lot more work and this was not spend so far. Therefore many of the functions in the math library have errors. The table lists the maximum error for each function which is exposed by one of the existing tests in the test suite. It is tried to cover as much as possible and really list the maximum error (or at least a ballpark figure) but this is often not achieved due to the large search space. The table lists the ULP values for different architectures. Different architectures have different results since their hardware support for floating-point operations varies and also the existing hardware support is different.

Function s390/fpu sh/sh4/fpu ia64/fpu sparc/sparc64/fpu sparc/sparc32/fpu powerpc/fpu mips/fpu m68k/fpu ix86 Generic arm alpha/fpu
acosf - - - - - - - - - - - -
acos - - - - - - - - - - - -
acosl - - - - - - - 1 1150 - - -
acoshf - - - - - - - - - - - -
acosh - - - - - - - - - - - -
acoshl - - - - - - - 1 1 - - -
asinf 2 2 - 2 2 2 2 - - - 2 2
asin 1 1 1 1 1 1 1 1 1 - 1 1
asinl - - 1 - - - - 1 1 - - -
asinhf - - - - - - - - - - - -
asinh - - 1 - - - - - - - - -
asinhl - - 656 - - - - 14 656 - - -
atanf - - - - - - - - - - - -
atan - - - - - - - - - - - -
atanl - - - 1 - - - - 549 - - -
atanhf - - - - - - - - - - - -
atanh 1 1 1 1 1 1 1 1 1 - 1 1
atanhl - - 1605 - - - - - 1605 - - -
atan2f 4 4 - 4.0000 4.0000 4 4 - - - - 4
atan2 - - - - - - - - - - - -
atan2l - - - 1 - - - - 549 - - -
cabsf 1 1 1 1 1 1 1 1 1 - 1 1
cabs 1 1 1 1 1 1 1 - 1 - 1 1
cabsl - - 560 - - - - 1 560 - - -
cacosf 1 + i 1 1 + i 1 1 + i 2 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 2 1 + i 2 - 1 + i 1 1 + i 1
cacos 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 - 1 + i 0 1 + i 0
cacosl - - 151 + i 329 0 + i 3 - - - 1 + i 1 151 + i 329 - - -
cacoshf 7 + i 3 7 + i 3 7 + i 3 7 + i 3 7 + i 3 7 + i 3 7 + i 3 7 + i 0 4 + i 4 - 7 + i 3 7 + i 3
cacosh 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 - 1 + i 1 1 + i 1
cacoshl - - 328 + i 151 5 + i 1 - - - 6 + i 2 328 + i 151 - - -
cargf - - - - - - - - - - - -
carg - - - - - - - - - - - -
cargl - - - - - - - - - - - -
casinf 2 + i 1 2 + i 1 2 + i 2 2 + i 1 2 + i 1 2 + i 1 2 + i 1 2 + i 2 2 + i 2 - 2 + i 1 2 + i 1
casin 3 + i 0 3 + i 0 3 + i 0 3 + i 0 3 + i 0 3 + i 0 3 + i 0 3 + i 0 3 + i 0 - 3 + i 0 3 + i 0
casinl - - 603 + i 329 1 + i 3 - - - 1 + i 1 603 + i 329 - - -
casinhf 1 + i 6 1 + i 6 1 + i 6 1 + i 6 1 + i 6 1 + i 6 1 + i 6 19 + i 2 1 + i 6 - 1 + i 6 1 + i 6
casinh 5 + i 3 5 + i 3 5 + i 3 5 + i 3 5 + i 3 5 + i 3 5 + i 3 6 + i 13 5 + i 3 - 5 + i 3 5 + i 3
casinhl - - 892 + i 12 4 + i 2 - - - 6 + i 7 892 + i 12 - - -
catanf 4 + i 1 4 + i 1 4 + i 1 4 + i 1 4 + i 1 4 + i 1 4 + i 1 0 + i 1 0 + i 1 - 4 + i 1 4 + i 1
catan 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 - 0 + i 1 0 + i 1
catanl - - 251 + i 474 0 + i 1 - - - 1 + i 7 251 + i 474 - - -
catanhf 1 + i 6 1 + i 6 0 + i 6 1 + i 6 1 + i 6 0 + i 6 1 + i 6 - 1 + i 0 - 1 + i 6 1 + i 6
catanh 4 + i 1 4 + i 1 4 + i 1 4 + i 1 4 + i 1 4 + i 1 4 + i 1 - 2 + i 0 - 4 + i 1 4 + i 1
catanhl - - 66 + i 447 - - - - 2 + i 2 66 + i 447 - - -
cbrtf - - - - - - - - - - - -
cbrt 1 1 1 1 1 1 1 1 1 - 1 1
cbrtl - - - - - - - 948 716 - - -
ccosf 0 + i 1 0 + i 1 1 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 1 + i 1 1 + i 1 - 0 + i 1 0 + i 1
ccos 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 0 + i 1 1 + i 1 - 1 + i 1 1 + i 1
ccosl - - 5 + i 1901 - - - - 0 + i 1 5 + i 1901 - - -
ccoshf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 3 + i 1 1 + i 1 - 1 + i 1 1 + i 1
ccosh 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 0 1 + i 1 - 1 + i 1 1 + i 1
ccoshl - - 1467 + i 1183 - - - - 1 + i 2 1467 + i 1183 - - -
ceilf - - - - - - - - - - - -
ceil - - - - - - - - - - - -
ceill - - - - - - - - - - - -
cexpf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 3 + i 2 1 + i 0 - 1 + i 1 1 + i 1
cexp 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 - - - 1 + i 0 1 + i 0
cexpl - - 940 + i 1067 1 + i 1 - - - 2 + i 0 940 + i 1067 - - -
cimagf - - - - - - - - - - - -
cimag - - - - - - - - - - - -
cimagl - - - - - - - - - - - -
clogf 0 + i 3 0 + i 3 0 + i 3 0 + i 3 0 + i 3 0 + i 3 0 + i 3 - - - 0 + i 3 0 + i 3
clog 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 - - - 0 + i 1 0 + i 1
clogl - - 0 + i 1 - - - - 0 + i 1 0 + i 1 - - -
clog10f 1 + i 5 1 + i 5 1 + i 5 1 + i 5 1 + i 5 1 + i 5 1 + i 5 1 + i 1 1 + i 1 - 1 + i 5 1 + i 5
clog10 1 + i 1 1 + i 1 2 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 2 + i 1 - 1 + i 1 1 + i 1
clog10l - - 1402 + i 186 - - - - 1 + i 3 1403 + i 186 - - -
conjf - - - - - - - - - - - -
conj - - - - - - - - - - - -
conjl - - - - - - - - - - - -
copysignf - - - - - - - - - - - -
copysign - - - - - - - - - - - -
copysignl - - - - - - - - - - - -
cosf 1 1 1 1 1 1 1 1 1 - 1 1
cos 2 2 2 2 2 2 2 2 2 - 2 2
cosl - - 529 1 - - - 1 529 - - -
coshf - - - - - - - - - - - -
cosh - - - - - - - - - - - -
coshl - - 2 - - - - 2 309 - - -
cpowf 4 + i 2 4 + i 2 5 + i 2.5333 4 + i 2 4 + i 2 4 + i 2 4 + i 2 1 + i 6 4 + i 2.5333 - 4 + i 2 4 + i 2
cpow 1 + i 1.1031 1 + i 1.1031 1 + i 1.104 1 + i 1.1031 1 + i 1.1031 1 + i 2 1 + i 1.1031 1 + i 1.103 1 + i 1.104 - 1 + i 1.1031 1 + i 1.1031
cpowl - - 1 + i 4 3 + i 0.9006 - - - 5 + i 2 2 + i 9 - - -
cprojf - - - - - - - - - - - -
cproj - - - - - - - - - - - -
cprojl - - - - - - - - - - - -
crealf - - - - - - - - - - - -
creal - - - - - - - - - - - -
creall - - - - - - - - - - - -
csinf 0 + i 1 0 + i 1 1 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 1 + i 1 - - 0 + i 1 0 + i 1
csin - - - - - - - - - - - -
csinl - - 966 + i 168 - - - - - 966 + i 168 - - -
csinhf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 - 1 + i 1 1 + i 1
csinh 0 + i 1 0 + i 1 1 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1 - 1 + i 1 - 0 + i 1 0 + i 1
csinhl - - 413 + i 477 - - - - 1 + i 2 413 + i 477 - - -
csqrtf 1 + i 1 1 + i 1 1 + i 2 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 0 - - 1 + i 1 1 + i 1
csqrt 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0 - 1 + i 0 - 1 + i 0 1 + i 0
csqrtl - - 237 + i 128 1 + i 1 - - - - 237 + i 128 - - -
ctanf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 0 1 + i 1 - 1 + i 1 1 + i 1
ctan 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 0 1 + i 1 - 1 + i 1 1 + i 1
ctanl - - 690 + i 367 - - - - 439 + i 2 690 + i 367 - - -
ctanhf 2 + i 1 2 + i 1 2 + i 2 2 + i 1 2 + i 1 2 + i 1 2 + i 1 1 + i 0 1 + i 1 - 2 + i 1 2 + i 1
ctanh 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2 0 + i 1 0 + i 1 - 2 + i 2 2 + i 2
ctanhl - - 286 + i 3074 - - - - 2 + i 25 286 + i 3074 - - -
erff - - - - - - - - - - - -
erf - - - - - - - - - - - -
erfl - - - - - - - - - - - -
erfcf 12 12 12 12 12 12 12 11 12 - 12 12
erfc 24 24 24 24 24 24 24 24 24 - 24 24
erfcl - - 12 - - - - 12 36 - - -
expf - - - - - - - - - - - -
exp - - - - - - - - - - - -
expl - - 412 - - - - - 412 - - -
exp10f 2 2 2 2 2 2 2 - - - 2 2
exp10 6 6 6 6 6 6 6 1 1 - 6 6
exp10l - - 1182 1 - - - 1 1182 - - -
exp2f - - - - - - - - - - - -
exp2 - - - - - - - - - - - -
exp2l - - 462 - - - - - 462 - - -
expm1f 1 1 1 1 1 1 1 - - - 1 1
expm1 - - 1 1 - - - - - - - -
expm1l - - 825 - - - - 1 825 - - -
fabsf - - - - - - - - - - - -
fabs - - - - - - - - - - - -
fabsl - - - - - - - - - - - -
fdimf - - - - - - - - - - - -
fdim - - - - - - - - - - - -
fdiml - - - - - - - - - - - -
floorf - - - - - - - - - - - -
floor - - - - - - - - - - - -
floorl - - - - - - - - - - - -
fmaf - - - - - - - - - - - -
fma - - - - - - - - - - - -
fmal - - - - - - - - - - - -
fmaxf - - - - - - - - - - - -
fmax - - - - - - - - - - - -
fmaxl - - - - - - - - - - - -
fminf - - - - - - - - - - - -
fmin - - - - - - - - - - - -
fminl - - - - - - - - - - - -
fmodf 1 1 1 1 1 1 1 1 1 - 1 1
fmod 2 2 2 2 2 2 2 2 2 - 2 2
fmodl - - 4096 2 - - - 1 4096 - - -
frexpf - - - - - - - - - - - -
frexp - - - - - - - - - - - -
frexpl - - - - - - - - - - - -
gammaf - - - - - - - - - - - -
gamma - - 1 - - - - - 1 - - -
gammal - - 1 - - - - 1 1 - - -
hypotf 1 1 1 1 1 1 1 1 1 - 1 1
hypot 1 1 1 1 1 1 1 - 1 - 1 1
hypotl - - 560 - - - - 1 560 - - -
ilogbf - - - - - - - - - - - -
ilogb - - - - - - - - - - - -
ilogbl - - - - - - - - - - - -
j0f 2 2 1 2 2 1 2 1 1 - 2 2
j0 2 2 2 2 2 2 2 1 2 - 2 2
j0l - - - - - - - - - - - -
j1f 2 2 2 2 2 2 2 2 1 - 2 2
j1 1 1 2 1 1 1 1 - 2 - 1 1
j1l - - - - - - - 2 2 - - -
jnf 4 4 4 4 4 4 4 11 2 - 4 4
jn 6 6 6 6 6 6 6 4 4 - 6 6
jnl - - 2 - - - - 2 2 - - -
lgammaf 2 2 2 2 2 2 2 2 2 - 2 2
lgamma 1 1 1 1 1 1 1 1 1 - 1 1
lgammal - - 1 - - - - 1 1 - - -
lrintf - - - - - - - - - - - -
lrint - - - - - - - - - - - -
lrintl - - - - - - - - - - - -
llrintf - - - - - - - - - - - -
llrint - - - - - - - - - - - -
llrintl - - - - - - - - - - - -
logf 1 1 1 1 1 1 1 1 1 - 1 1
log 1 1 1 1 1 1 1 1 1 - 1 1
logl - - 2341 1 - - - 2 2341 - - -
log10f 1 1 1 1 1 1 1 1 1 - 1 1
log10 1 1 1 1 1 1 1 1 1 - 1 1
log10l - - 2033 - - - - 1 2033 - - -
log1pf 1 1 1 1 1 1 1 1 1 - 1 1
log1p 1 1 1 1 1 1 1 1 1 - 1 1
log1pl - - 585 - - - - 2 585 - - -
log2f 1 1 1 1 1 1 1 1 1 - 1 1
log2 1 1 1 1 1 1 1 1 1 - 1 1
log2l - - 1688 - - - - 1 1688 - - -
logbf - - - - - - - - - - - -
logb - - - - - - - - - - - -
logbl - - - - - - - - - - - -
lroundf - - - - - - - - - - - -
lround - - - - - - - - - - - -
lroundl - - - - - - - - - - - -
llroundf - - - - - - - - - - - -
llround - - - - - - - - - - - -
llroundl - - - - - - - - - - - -
modff - - - - - - - - - - - -
modf - - - - - - - - - - - -
modfl - - - - - - - - - - - -
nearbyintf - - - - - - - - - - - -
nearbyint - - - - - - - - - - - -
nearbyintl - - - - - - - - - - - -
nextafterf - - - - - - - - - - - -
nextafter - - - - - - - - - - - -
nextafterl - - - - - - - - - - - -
nexttowardf - - - - - - - - - - - -
nexttoward - - - - - - - - - - - -
nexttowardl - - - - - - - - - - - -
powf - - - - - - - - - - - -
pow - - - - - - - - - - - -
powl - - 725 - - - - 1 725 - - -
remainderf - - - - - - - - - - - -
remainder - - - - - - - - - - - -
remainderl - - - - - - - - - - - -
remquof - - - - - - - - - - - -
remquo - - - - - - - - - - - -
remquol - - - - - - - - - - - -
rintf - - - - - - - - - - - -
rint - - - - - - - - - - - -
rintl - - - - - - - - - - - -
roundf - - - - - - - - - - - -
round - - - - - - - - - - - -
roundl - - - - - - - - - - - -
scalbf - - - - - - - - - - - -
scalb - - - - - - - - - - - -
scalbl - - - - - - - - - - - -
scalbnf - - - - - - - - - - - -
scalbn - - - - - - - - - - - -
scalbnl - - - - - - - - - - - -
scalblnf - - - - - - - - - - - -
scalbln - - - - - - - - - - - -
scalblnl - - - - - - - - - - - -
sinf - - - - - - - - - - - -
sin - - - - - - - - - - - -
sinl - - 627 - - - - 1 627 - - -
sincosf 1 1 1 1 1 1 1 1 1 - 1 1
sincos 1 1 1 1 1 1 1 1 1 - 1 1
sincosl - - 627 1 - - - 1 627 - - -
sinhf 1 1 1 1 1 1 1 1 1 - 1 1
sinh 1 1 1 1 1 1 1 - - - 1 1
sinhl - - 1029 - - - - - 1029 - - -
sqrtf - - - - - - - - - - - -
sqrt - - - - - - - - - - - -
sqrtl - - 489 1 - - - - 489 - - -
tanf - - - - - - - - - - - -
tan 0.5 0.5 0.5 0.5 0.5 1 0.5 0.5 0.5 - 0.5 0.5
tanl - - 1401 1 - - - 1 1401 - - -
tanhf 1 1 1 1 1 1 1 - - - 1 1
tanh 1 1 1 1 1 1 1 - - - 1 1
tanhl - - 521 - - - - - 521 - - -
tgammaf 1 1 1 1 1 1 1 1 1 - 1 1
tgamma 1 1 2 1 1 1 1 1 2 - 1 1
tgammal - - 1 - - - - 1 2 - - -
truncf - - - - - - - - - - - -
trunc - - - - - - - - - - - -
truncl - - - - - - - - - - - -
y0f 1 1 1 1 1 1 1 2 1 - 1 1
y0 2 2 2 2 2 2 2 2 3 - 2 2
y0l - - 2 - - - - 2 2 - - -
y1f 2 2 2 2 2 2 2 2 2 - 2 2
y1 3 3 3 3 3 3 3 1 3 - 3 3
y1l - - 1 - - - - 2 2 - - -
ynf 2 2 3 2 2 2 2 2 3 - 2 2
yn 3 3 6 3 3 3 3 6 6 - 3 3
ynl - - 7 - - - - 7 7 - - -