Next: , Previous: Special Functions, Up: Mathematics


19.7 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 has not yet been done.

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. The table tries to cover as much as possible and list the actual 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 Alpha ARM hppa/fpu m68k/coldfire/fpu m68k/m680x0/fpu
acosf - - - - -
acos - - - - -
acosl - - - - -
acoshf - - - - -
acosh - - - - -
acoshl - - - - 1
asinf - 2 - - -
asin - 1 - - -
asinl - - - - -
asinhf - - - - -
asinh - - - - -
asinhl - - - - 1
atanf - - - - -
atan - - - - -
atanl - - - - -
atanhf 1 1 1 1 -
atanh - 1 - - -
atanhl - - - - 1
atan2f 1 1 1 1 -
atan2 - - - - -
atan2l 1 - - - 1
cabsf - 1 - - -
cabs - 1 - - -
cabsl - - - - -
cacosf - 1 + i 1 - - 2 + i 1
cacos - 1 + i 0 - - -
cacosl 0 + i 1 - - - 1 + i 2
cacoshf 0 + i 1 7 + i 3 0 + i 1 0 + i 1 7 + i 1
cacosh - 1 + i 1 - - 1 + i 1
cacoshl 0 + i 1 - - - 6 + i 2
cargf - - - - -
carg - - - - -
cargl - - - - -
casinf 1 + i 0 2 + i 1 1 + i 0 1 + i 0 5 + i 1
casin 1 + i 0 3 + i 0 1 + i 0 1 + i 0 1 + i 0
casinl 0 + i 1 - 1 + i 0 - 3 + i 2
casinhf 1 + i 6 1 + i 6 1 + i 6 1 + i 6 19 + i 1
casinh 5 + i 3 5 + i 3 5 + i 3 5 + i 3 6 + i 13
casinhl 4 + i 2 - 5 + i 3 - 5 + i 6
catanf 0 + i 1 4 + i 1 0 + i 1 0 + i 1 0 + i 1
catan 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1
catanl 0 + i 1 - 0 + i 1 - 1 + i 0
catanhf - 1 + i 6 - - -
catanh 4 + i 0 4 + i 1 4 + i 0 4 + i 0 -
catanhl 1 + i 1 - 4 + i 0 - 1 + i 0
cbrtf - - - - -
cbrt 1 1 1 1 -
cbrtl 1 - 1 - 1
ccosf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
ccos 1 + i 0 1 + i 1 1 + i 0 1 + i 0 -
ccosl 1 + i 1 - 1 + i 0 - 1 + i 1
ccoshf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
ccosh 1 + i 0 1 + i 1 1 + i 0 1 + i 0 -
ccoshl 1 + i 1 - 1 + i 0 - 0 + i 1
ceilf - - - - -
ceil - - - - -
ceill - - 1 - -
cexpf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 2 + i 1
cexp - 1 + i 0 - - -
cexpl 1 + i 1 - - - 0 + i 1
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf 1 + i 0 1 + i 3 1 + i 0 1 + i 0 1 + i 0
clog - 0 + i 1 - - -
clogl 1 + i 0 - - - 1 + i 1
clog10f 1 + i 1 1 + i 5 1 + i 1 1 + i 1 1 + i 1
clog10 0 + i 1 1 + i 1 0 + i 1 0 + i 1 1 + i 1
clog10l 1 + i 1 - 0 + i 1 - 1 + i 2
conjf - - - - -
conj - - - - -
conjl - - - - -
copysignf - - - - -
copysign - - - - -
copysignl - - - - -
cosf 1 1 1 1 1
cos 2 2 2 2 2
cosl 1 - 2 - 1
coshf - - - - -
cosh - - - - -
coshl - - - - -
cpowf 4 + i 2 4 + i 2 4 + i 2 4 + i 2 2 + i 6
cpow 2 + i 2 2 + i 2 2 + i 2 2 + i 2 1 + i 2
cpowl 10 + i 1 - 2 + i 2 - 15 + i 2
cprojf - - - - -
cproj - - - - -
cprojl - - - - -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf - 0 + i 1 - - 1 + i 1
csin - - - - -
csinl 1 + i 1 - - - 1 + i 0
csinhf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
csinh 0 + i 1 0 + i 1 0 + i 1 0 + i 1 -
csinhl 1 + i 0 - 0 + i 1 - 1 + i 0
csqrtf 1 + i 0 1 + i 1 1 + i 0 1 + i 0 -
csqrt - 1 + i 0 - - -
csqrtl 1 + i 1 - - - -
ctanf - 1 + i 1 - - -
ctan 0 + i 1 1 + i 1 0 + i 1 0 + i 1 1 + i 0
ctanl 1 + i 2 - 0 + i 1 - 1 + i 2
ctanhf 2 + i 1 2 + i 1 2 + i 1 2 + i 1 0 + i 1
ctanh 1 + i 0 2 + i 2 1 + i 0 1 + i 0 0 + i 1
ctanhl 1 + i 1 - 1 + i 0 - 0 + i 1
erff - - - - -
erf 1 1 1 1 -
erfl - - 1 - -
erfcf - 12 - - 1
erfc 1 24 1 1 -
erfcl 1 - 1 - 1
expf - - - - -
exp - - - - -
expl - - - - -
exp10f 2 2 2 2 -
exp10 6 6 6 6 -
exp10l 1 - 6 - -
exp2f - - - - -
exp2 - - - - -
exp2l 2 - - - -
expm1f 1 1 1 1 -
expm1 1 1 1 1 -
expm1l 1 - 1 - 1
fabsf - - - - -
fabs - - - - -
fabsl - - - - -
fdimf - - - - -
fdim - - - - -
fdiml - - - - -
floorf - - - - -
floor - - - - -
floorl - - 1 - -
fmaf - - - - -
fma - - - - -
fmal - - - - -
fmaxf - - - - -
fmax - - - - -
fmaxl - - - - -
fminf - - - - -
fmin - - - - -
fminl - - - - -
fmodf - 1 - - -
fmod - 2 - - -
fmodl - - - - -
frexpf - - - - -
frexp - - - - -
frexpl - - - - -
gammaf - - - - -
gamma - - - - -
gammal 1 - - - 1
hypotf 1 1 1 1 1
hypot - 1 - - -
hypotl - - - - -
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f 2 2 2 2 1
j0 2 2 2 2 1
j0l 2 - 2 - 1
j1f 2 2 2 2 2
j1 1 1 1 1 -
j1l 4 - 1 - 1
jnf 4 4 4 4 5
jn 4 6 4 4 1
jnl 4 - 4 - 2
lgammaf 2 2 2 2 2
lgamma 1 1 1 1 1
lgammal 1 - 1 - 1
lrintf - - - - -
lrint - - - - -
lrintl - - - - -
llrintf - - - - -
llrint - - - - -
llrintl - - - - -
logf - 1 - - 1
log - 1 - - -
logl - - - - 1
log10f 2 2 2 2 1
log10 1 1 1 1 -
log10l 1 - 1 - 2
log1pf 1 1 1 1 -
log1p - 1 - - -
log1pl 1 - - - 1
log2f - 1 - - -
log2 - 1 - - -
log2l 1 - - - 1
logbf - - - - -
logb - - - - -
logbl - - - - -
lroundf - - - - -
lround - - - - -
lroundl - - - - -
llroundf - - - - -
llround - - - - -
llroundl - - - - -
modff - - - - -
modf - - - - -
modfl - - - - -
nearbyintf - - - - -
nearbyint - - - - -
nearbyintl - - - - -
nextafterf - - - - -
nextafter - - - - -
nextafterl - - - - -
nexttowardf - - - - -
nexttoward - - - - -
nexttowardl - - - - -
powf - - - - -
pow - - - - -
powl - - - - 1
remainderf - - - - -
remainder - - - - -
remainderl - - - - -
remquof - - - - -
remquo - - - - -
remquol - - - - -
rintf - - - - -
rint - - - - -
rintl - - - - -
roundf - - - - -
round - - - - -
roundl - - 1 - -
scalbf - - - - -
scalb - - - - -
scalbl - - - - -
scalbnf - - - - -
scalbn - - - - -
scalbnl - - - - -
scalblnf - - - - -
scalbln - - - - -
scalblnl - - - - -
sinf - - - - -
sin - - - - -
sinl - - - - -
sincosf 1 1 1 1 1
sincos 1 1 1 1 1
sincosl 1 - 1 - 1
sinhf - 1 - - -
sinh - 1 - - -
sinhl - - - - 1
sqrtf - - - - -
sqrt - - - - -
sqrtl 1 - - - -
tanf - - - - -
tan 1 0.5 1 1 1
tanl - - 1 - 1
tanhf - 1 - - -
tanh - 1 - - -
tanhl 1 - - - -
tgammaf 1 1 1 1 1
tgamma 1 1 1 1 1
tgammal 1 - 1 - 1
truncf - - - - -
trunc - - - - -
truncl - - 1 - -
y0f 1 1 1 1 1
y0 2 2 2 2 1
y0l 3 - 2 - 2
y1f 2 2 2 2 2
y1 3 3 3 3 1
y1l 1 - 3 - 1
ynf 2 2 2 2 2
yn 3 3 3 3 1
ynl 5 - 3 - 4

Function MIPS mips/mips64/n32 mips/mips64/n64 powerpc/nofpu Generic
acosf - - - - -
acos - - - - -
acosl - - - 1 -
acoshf - - - - -
acosh - - - - -
acoshl - - - 1 -
asinf - - - - -
asin - - - - -
asinl - - - 2 -
asinhf - - - - -
asinh - - - - -
asinhl - - - 1 -
atanf - - - - -
atan - - - - -
atanl - - - - -
atanhf 1 1 1 1 -
atanh - - - - -
atanhl - - - - -
atan2f 3 1 1 3 -
atan2 - - - - -
atan2l - 1 1 1 -
cabsf - - - - -
cabs - - - - -
cabsl - - - 1 -
cacosf - - - - -
cacos - - - - -
cacosl - 0 + i 1 0 + i 1 1 + i 1 -
cacoshf 7 + i 3 0 + i 1 0 + i 1 7 + i 3 -
cacosh 1 + i 1 - - 1 + i 1 -
cacoshl - 0 + i 1 0 + i 1 1 + i 1 -
cargf - - - - -
carg - - - - -
cargl - - - - -
casinf 1 + i 0 1 + i 0 1 + i 0 1 + i 0 -
casin 1 + i 0 1 + i 0 1 + i 0 1 + i 0 -
casinl - 0 + i 1 0 + i 1 1 + i 1 -
casinhf 1 + i 6 1 + i 6 1 + i 6 1 + i 6 -
casinh 5 + i 3 5 + i 3 5 + i 3 5 + i 3 -
casinhl - 4 + i 2 4 + i 2 4 + i 1 -
catanf 4 + i 1 0 + i 1 0 + i 1 4 + i 1 -
catan 0 + i 1 0 + i 1 0 + i 1 0 + i 1 -
catanl - 0 + i 1 0 + i 1 1 + i 1 -
catanhf 0 + i 6 - - 0 + i 6 -
catanh 4 + i 0 4 + i 0 4 + i 0 4 + i 0 -
catanhl - 1 + i 1 1 + i 1 - -
cbrtf - - - - -
cbrt 1 1 1 1 -
cbrtl - 1 1 1 -
ccosf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 -
ccos 1 + i 0 1 + i 0 1 + i 0 1 + i 0 -
ccosl - 1 + i 1 1 + i 1 1 + i 1 -
ccoshf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 -
ccosh 1 + i 0 1 + i 0 1 + i 0 1 + i 0 -
ccoshl - 1 + i 1 1 + i 1 1 + i 2 -
ceilf - - - - -
ceil - - - - -
ceill - - - - -
cexpf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 -
cexp - - - - -
cexpl - 1 + i 1 1 + i 1 2 + i 1 -
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf 1 + i 3 1 + i 0 1 + i 0 1 + i 3 -
clog - - - - -
clogl - 1 + i 0 1 + i 0 2 + i 1 -
clog10f 1 + i 5 1 + i 1 1 + i 1 1 + i 5 -
clog10 0 + i 1 0 + i 1 0 + i 1 0 + i 1 -
clog10l - 1 + i 1 1 + i 1 3 + i 1 -
conjf - - - - -
conj - - - - -
conjl - - - - -
copysignf - - - - -
copysign - - - - -
copysignl - - - - -
cosf 1 1 1 1 -
cos 2 2 2 2 -
cosl - 1 1 1 -
coshf - - - - -
cosh - - - - -
coshl - - - 1 -
cpowf 4 + i 2 4 + i 2 4 + i 2 4 + i 2 -
cpow 2 + i 2 2 + i 2 2 + i 2 2 + i 2 -
cpowl - 10 + i 1 10 + i 1 2 + i 2 -
cprojf - - - - -
cproj - - - - -
cprojl - - - 0 + i 1 -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf - - - - -
csin - - - - -
csinl - 1 + i 1 1 + i 1 1 + i 0 -
csinhf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 -
csinh 0 + i 1 0 + i 1 0 + i 1 0 + i 1 -
csinhl - 1 + i 0 1 + i 0 1 + i 1 -
csqrtf 1 + i 0 1 + i 0 1 + i 0 1 + i 0 -
csqrt - - - - -
csqrtl - 1 + i 1 1 + i 1 1 + i 1 -
ctanf - - - - -
ctan 1 + i 1 0 + i 1 0 + i 1 1 + i 1 -
ctanl - 1 + i 2 1 + i 2 1 + i 1 -
ctanhf 2 + i 1 2 + i 1 2 + i 1 2 + i 1 -
ctanh 1 + i 0 1 + i 0 1 + i 0 1 + i 0 -
ctanhl - 1 + i 1 1 + i 1 1 + i 1 -
erff - - - - -
erf 1 1 1 1 -
erfl - - - 1 -
erfcf - - - - -
erfc 1 1 1 1 -
erfcl - 1 1 1 -
expf - - - - -
exp - - - - -
expl - - - 1 -
exp10f 2 2 2 2 -
exp10 6 6 6 6 -
exp10l - 1 1 8 -
exp2f - - - - -
exp2 - - - - -
exp2l - 2 2 2 -
expm1f 1 1 1 1 -
expm1 1 1 1 1 -
expm1l - 1 1 - -
fabsf - - - - -
fabs - - - - -
fabsl - - - - -
fdimf - - - - -
fdim - - - - -
fdiml - - - - -
floorf - - - - -
floor - - - - -
floorl - - - - -
fmaf - - - - -
fma - - - - -
fmal - - - - -
fmaxf - - - - -
fmax - - - - -
fmaxl - - - - -
fminf - - - - -
fmin - - - - -
fminl - - - - -
fmodf - - - - -
fmod - - - - -
fmodl - - - - -
frexpf - - - - -
frexp - - - - -
frexpl - - - - -
gammaf - - - - -
gamma - - - - -
gammal - 1 1 1 -
hypotf 1 1 1 1 -
hypot - - - - -
hypotl - - - 1 -
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f 2 2 2 2 -
j0 2 2 2 2 -
j0l - 2 2 1 -
j1f 2 2 2 2 -
j1 1 1 1 1 -
j1l - 4 4 1 -
jnf 4 4 4 4 -
jn 4 4 4 4 -
jnl - 4 4 4 -
lgammaf 2 2 2 2 -
lgamma 1 1 1 1 -
lgammal - 1 1 3 -
lrintf - - - - -
lrint - - - - -
lrintl - - - - -
llrintf - - - - -
llrint - - - - -
llrintl - - - - -
logf - - - - -
log - - - - -
logl - - - 1 -
log10f 2 2 2 2 -
log10 1 1 1 1 -
log10l - 1 1 1 -
log1pf 1 1 1 1 -
log1p - - - - -
log1pl - 1 1 1 -
log2f - - - - -
log2 - - - - -
log2l - 1 1 1 -
logbf - - - - -
logb - - - - -
logbl - - - - -
lroundf - - - - -
lround - - - - -
lroundl - - - - -
llroundf - - - - -
llround - - - - -
llroundl - - - - -
modff - - - - -
modf - - - - -
modfl - - - - -
nearbyintf - - - - -
nearbyint - - - - -
nearbyintl - - - - -
nextafterf - - - - -
nextafter - - - - -
nextafterl - - - - -
nexttowardf - - - - -
nexttoward - - - - -
nexttowardl - - - - -
powf - - - - -
pow - - - - -
powl - - - 1 -
remainderf - - - - -
remainder - - - - -
remainderl - - - - -
remquof - - - - -
remquo - - - - -
remquol - - - - -
rintf - - - - -
rint - - - - -
rintl - - - - -
roundf - - - - -
round - - - - -
roundl - - - - -
scalbf - - - - -
scalb - - - - -
scalbl - - - - -
scalbnf - - - - -
scalbn - - - - -
scalbnl - - - - -
scalblnf - - - - -
scalbln - - - - -
scalblnl - - - - -
sinf - - - - -
sin - - - - -
sinl - - - 1 -
sincosf 1 1 1 1 -
sincos 1 1 1 1 -
sincosl - 1 1 1 -
sinhf - - - - -
sinh - - - - -
sinhl - - - 1 -
sqrtf - - - - -
sqrt - - - - -
sqrtl - 1 1 - -
tanf - - - - -
tan 1 1 1 1 -
tanl - - - 1 -
tanhf - - - - -
tanh - - - - -
tanhl - 1 1 1 -
tgammaf 1 1 1 1 -
tgamma 1 1 1 1 -
tgammal - 1 1 1 -
truncf - - - - -
trunc - - - - -
truncl - - - - -
y0f 1 1 1 1 -
y0 2 2 2 2 -
y0l - 3 3 2 -
y1f 2 2 2 2 -
y1 3 3 3 3 -
y1l - 1 1 2 -
ynf 2 2 2 2 -
yn 3 3 3 3 -
ynl - 5 5 2 -

Function ix86 IA64 PowerPC S/390 SH4
acosf - - - - -
acos - - - - -
acosl 622 - 1 - -
acoshf - - - - -
acosh - - - - -
acoshl - - 1 - -
asinf - - - - 2
asin - - - - 1
asinl 1 - 2 - -
asinhf - - - - -
asinh - - - - -
asinhl - - 1 - -
atanf - - - - -
atan - - - - -
atanl - - - - -
atanhf - - 1 1 -
atanh - - - - 1
atanhl 1 - - - -
atan2f - - 1 1 4
atan2 - - - - -
atan2l - - 1 1 -
cabsf - - - - 1
cabs - - - - 1
cabsl - - 1 - -
cacosf 0 + i 1 0 + i 1 - - 1 + i 1
cacos - - - - 1 + i 0
cacosl 0 + i 2 0 + i 2 1 + i 1 0 + i 1 -
cacoshf 9 + i 4 7 + i 0 7 + i 3 7 + i 3 7 + i 3
cacosh 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
cacoshl 6 + i 1 7 + i 1 1 + i 0 0 + i 1 -
cargf - - - - -
carg - - - - -
cargl - - - - -
casinf 1 + i 1 1 + i 1 1 + i 0 1 + i 0 2 + i 1
casin 1 + i 0 1 + i 0 1 + i 0 1 + i 0 3 + i 0
casinl 2 + i 2 2 + i 2 1 + i 1 0 + i 1 -
casinhf 1 + i 6 1 + i 6 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
casinhl 5 + i 5 5 + i 5 4 + i 1 4 + i 2 -
catanf 0 + i 1 0 + i 1 4 + i 1 4 + i 1 4 + i 1
catan 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1
catanl - - 1 + i 1 0 + i 1 -
catanhf 1 + i 0 - 0 + i 6 0 + i 6 1 + i 6
catanh 2 + i 0 4 + i 0 4 + i 0 4 + i 0 4 + i 1
catanhl 1 + i 0 1 + i 0 - 1 + i 1 -
cbrtf - - - - -
cbrt - - 1 1 1
cbrtl 1 - 1 1 -
ccosf 0 + i 1 0 + i 1 1 + i 1 1 + i 1 0 + i 1
ccos 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 1
ccosl 1 + i 1 1 + i 1 1 + i 1 1 + i 1 -
ccoshf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
ccosh 1 + i 1 1 + i 1 1 + i 0 1 + i 0 1 + i 1
ccoshl 0 + i 1 0 + i 1 1 + i 2 1 + i 1 -
ceilf - - - - -
ceil - - - - -
ceill - - - - -
cexpf - 1 + i 1 1 + i 1 1 + i 1 1 + i 1
cexp - - - - 1 + i 0
cexpl 1 + i 1 0 + i 1 2 + i 1 1 + i 1 -
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf 1 + i 0 1 + i 0 1 + i 3 1 + i 3 0 + i 3
clog - - - - 0 + i 1
clogl 1 + i 0 1 + i 0 2 + i 1 1 + i 0 -
clog10f 1 + i 1 1 + i 1 1 + i 5 1 + i 5 1 + i 5
clog10 1 + i 1 1 + i 1 0 + i 1 0 + i 1 1 + i 1
clog10l 1 + i 1 1 + i 1 3 + i 1 1 + i 1 -
conjf - - - - -
conj - - - - -
conjl - - - - -
copysignf - - - - -
copysign - - - - -
copysignl - - - - -
cosf 1 1 1 1 1
cos 2 2 2 2 2
cosl 1 1 1 1 -
coshf - - - - -
cosh - - - - -
coshl - - 1 - -
cpowf 4 + i 3 5 + i 3 5 + i 2 5 + i 2 4 + i 2
cpow 1 + i 2 2 + i 2 2 + i 2 2 + i 2 1 + i 1.1031
cpowl 763 + i 2 6 + i 4 2 + i 2 10 + i 1 -
cprojf - - - - -
cproj - - - - -
cprojl - - 0 + i 1 - -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf 1 + i 1 1 + i 1 - - 0 + i 1
csin - - - - -
csinl 1 + i 0 1 + i 0 1 + i 0 1 + i 1 -
csinhf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
csinh 1 + i 1 1 + i 1 0 + i 1 0 + i 1 0 + i 1
csinhl 1 + i 2 1 + i 2 1 + i 1 1 + i 0 -
csqrtf - 1 + i 0 1 + i 0 1 + i 0 1 + i 1
csqrt - - - - 1 + i 0
csqrtl - - 1 + i 1 1 + i 1 -
ctanf 0 + i 1 0 + i 1 - - 1 + i 1
ctan 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
ctanl 439 + i 3 2 + i 1 1 + i 1 1 + i 2 -
ctanhf 1 + i 1 0 + i 1 2 + i 1 2 + i 1 2 + i 1
ctanh 1 + i 1 1 + i 1 1 + i 0 1 + i 0 2 + i 2
ctanhl 5 + i 25 1 + i 24 1 + i 1 1 + i 1 -
erff - - - - -
erf 1 1 1 1 -
erfl - - 1 - -
erfcf 1 1 1 1 12
erfc 1 1 1 1 24
erfcl 1 1 1 1 -
expf - - - - -
exp - - - - -
expl - - 1 - -
exp10f - 2 2 2 2
exp10 - 6 6 6 6
exp10l 8 3 8 1 -
exp2f - - - - -
exp2 - - - - -
exp2l - - 2 2 -
expm1f - - 1 1 1
expm1 - - 1 1 -
expm1l - 1 - 1 -
fabsf - - - - -
fabs - - - - -
fabsl - - - - -
fdimf - - - - -
fdim - - - - -
fdiml - - - - -
floorf - - - - -
floor - - - - -
floorl - - - - -
fmaf - - - - -
fma - - - - -
fmal - - - - -
fmaxf - - - - -
fmax - - - - -
fmaxl - - - - -
fminf - - - - -
fmin - - - - -
fminl - - - - -
fmodf - - - - 1
fmod - - - - 2
fmodl - - - - -
frexpf - - - - -
frexp - - - - -
frexpl - - - - -
gammaf - - - - -
gamma 1 - - - -
gammal 1 1 1 1 -
hypotf 1 1 1 1 1
hypot - - - - 1
hypotl - - 1 - -
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f 2 2 2 2 2
j0 3 3 3 3 2
j0l 1 2 1 2 -
j1f 1 2 2 2 2
j1 1 1 1 1 1
j1l 1 1 1 4 -
jnf 4 4 5 5 4
jn 5 3 4 4 6
jnl 750 2 4 4 -
lgammaf 2 2 2 2 2
lgamma 1 1 1 1 1
lgammal 1 1 3 1 -
lrintf - - - - -
lrint - - - - -
lrintl - - - - -
llrintf - - - - -
llrint - - - - -
llrintl - - - - -
logf 1 1 - - 1
log - - - - 1
logl - - 1 - -
log10f 1 1 2 2 1
log10 - - 1 1 1
log10l 1 1 1 1 -
log1pf - - 1 1 1
log1p - - - - 1
log1pl - - 1 1 -
log2f - - - - 1
log2 - - - - 1
log2l - - 1 1 -
logbf - - - - -
logb - - - - -
logbl - - - - -
lroundf - - - - -
lround - - - - -
lroundl - - - - -
llroundf - - - - -
llround - - - - -
llroundl - - - - -
modff - - - - -
modf - - - - -
modfl - - - - -
nearbyintf - - - - -
nearbyint - - - - -
nearbyintl - - - - -
nextafterf - - - - -
nextafter - - - - -
nextafterl - - - - -
nexttowardf - - - - -
nexttoward - - - - -
nexttowardl - - - - -
powf - - - - -
pow - - - - -
powl - - 1 - -
remainderf - - - - -
remainder - - - - -
remainderl - - - - -
remquof - - - - -
remquo - - - - -
remquol - - - - -
rintf - - - - -
rint - - - - -
rintl - - - - -
roundf - - - - -
round - - - - -
roundl - - - - -
scalbf - - - - -
scalb - - - - -
scalbl - - - - -
scalbnf - - - - -
scalbn - - - - -
scalbnl - - - - -
scalblnf - - - - -
scalbln - - - - -
scalblnl - - - - -
sinf - - - - -
sin - - - - -
sinl - - 1 - -
sincosf 1 1 1 1 1
sincos 1 1 1 1 1
sincosl 1 1 1 1 -
sinhf - - - - 1
sinh 1 - - - 1
sinhl - - 1 - -
sqrtf - - - - -
sqrt - - - - -
sqrtl - - - 1 -
tanf - - - - -
tan 1 1 1 1 0.5
tanl - - 1 - -
tanhf - - - - 1
tanh - - - - 1
tanhl - - 1 1 -
tgammaf 1 1 1 1 1
tgamma 2 1 1 1 1
tgammal 1 1 1 1 -
truncf - - - - -
trunc - - - - -
truncl - - - - -
y0f 1 1 1 1 1
y0 2 2 2 2 2
y0l 1 1 1 3 -
y1f 2 2 2 2 2
y1 2 3 3 3 3
y1l 1 1 2 1 -
ynf 3 2 2 2 2
yn 2 3 3 3 3
ynl 4 2 2 5 -

Function Sparc 32-bit Sparc 64-bit x86_64/fpu
acosf - - -
acos - - -
acosl - - 1
acoshf - - -
acosh - - -
acoshl - - -
asinf - - -
asin - - -
asinl - - 1
asinhf - - -
asinh - - -
asinhl - - -
atanf - - -
atan - - -
atanl - - -
atanhf 1 1 1
atanh - - -
atanhl - - 1
atan2f 6 6 1
atan2 - - -
atan2l 1 1 -
cabsf - - -
cabs - - -
cabsl - - -
cacosf - - 0 + i 1
cacos - - -
cacosl 0 + i 1 0 + i 1 0 + i 2
cacoshf 7 + i 3 7 + i 3 7 + i 3
cacosh 1 + i 1 1 + i 1 1 + i 1
cacoshl 5 + i 1 5 + i 1 6 + i 1
cargf - - -
carg - - -
cargl - - -
casinf 1 + i 0 1 + i 0 1 + i 1
casin 1 + i 0 1 + i 0 1 + i 0
casinl 0 + i 1 0 + i 1 2 + i 2
casinhf 1 + i 6 1 + i 6 1 + i 6
casinh 5 + i 3 5 + i 3 5 + i 3
casinhl 4 + i 2 4 + i 2 5 + i 5
catanf 4 + i 1 4 + i 1 4 + i 1
catan 0 + i 1 0 + i 1 0 + i 1
catanl 0 + i 1 0 + i 1 -
catanhf 0 + i 6 0 + i 6 0 + i 6
catanh 4 + i 0 4 + i 0 4 + i 0
catanhl 1 + i 1 1 + i 1 1 + i 0
cbrtf - - -
cbrt 1 1 1
cbrtl 1 1 1
ccosf 1 + i 1 1 + i 1 1 + i 1
ccos 1 + i 0 1 + i 0 1 + i 0
ccosl 1 + i 1 1 + i 1 1 + i 1
ccoshf 1 + i 1 1 + i 1 1 + i 1
ccosh 1 + i 0 1 + i 0 1 + i 1
ccoshl 1 + i 1 1 + i 1 0 + i 1
ceilf - - -
ceil - - -
ceill - - -
cexpf 1 + i 1 1 + i 1 1 + i 1
cexp - - -
cexpl 1 + i 1 1 + i 1 0 + i 1
cimagf - - -
cimag - - -
cimagl - - -
clogf 1 + i 3 1 + i 3 1 + i 3
clog - - -
clogl 1 + i 0 1 + i 0 1 + i 0
clog10f 1 + i 5 1 + i 5 1 + i 5
clog10 0 + i 1 0 + i 1 1 + i 1
clog10l 1 + i 1 1 + i 1 1 + i 1
conjf - - -
conj - - -
conjl - - -
copysignf - - -
copysign - - -
copysignl - - -
cosf 1 1 1
cos 2 2 2
cosl 1 1 1
coshf - - -
cosh - - -
coshl - - -
cpowf 4 + i 2 4 + i 2 5 + i 2
cpow 2 + i 2 2 + i 2 2 + i 2
cpowl 10 + i 1 10 + i 1 5 + i 4
cprojf - - -
cproj - - -
cprojl - - -
crealf - - -
creal - - -
creall - - -
csinf - - 0 + i 1
csin - - 0 + i 1
csinl 1 + i 1 1 + i 1 1 + i 0
csinhf 1 + i 1 1 + i 1 1 + i 1
csinh 0 + i 1 0 + i 1 1 + i 1
csinhl 1 + i 0 1 + i 0 1 + i 2
csqrtf 1 + i 0 1 + i 0 1 + i 0
csqrt - - -
csqrtl 1 + i 1 1 + i 1 -
ctanf - - 0 + i 1
ctan 1 + i 1 1 + i 1 1 + i 1
ctanl 1 + i 2 1 + i 2 439 + i 3
ctanhf 2 + i 1 2 + i 1 2 + i 1
ctanh 1 + i 0 1 + i 0 1 + i 1
ctanhl 1 + i 1 1 + i 1 5 + i 25
erff - - -
erf 1 1 1
erfl - - -
erfcf - - -
erfc 1 1 1
erfcl 1 1 1
expf - - -
exp - - -
expl - - -
exp10f 2 2 2
exp10 6 6 6
exp10l 1 1 8
exp2f - - -
exp2 - - -
exp2l 2 2 -
expm1f 1 1 1
expm1 1 1 1
expm1l 1 1 -
fabsf - - -
fabs - - -
fabsl - - -
fdimf - - -
fdim - - -
fdiml - - -
floorf - - -
floor - - -
floorl - - -
fmaf - - -
fma - - -
fmal - - -
fmaxf - - -
fmax - - -
fmaxl - - -
fminf - - -
fmin - - -
fminl - - -
fmodf - - -
fmod - - -
fmodl - - -
frexpf - - -
frexp - - -
frexpl - - -
gammaf - - -
gamma - - -
gammal 1 1 1
hypotf 1 1 1
hypot - - -
hypotl - - -
ilogbf - - -
ilogb - - -
ilogbl - - -
j0f 2 2 2
j0 2 2 2
j0l 2 2 1
j1f 2 2 2
j1 1 1 1
j1l 4 4 1
jnf 4 4 5
jn 4 4 4
jnl 4 4 750
lgammaf 2 2 2
lgamma 1 1 1
lgammal 1 1 1
lrintf - - -
lrint - - -
lrintl - - -
llrintf - - -
llrint - - -
llrintl - - -
logf - - -
log - - -
logl - - -
log10f 2 2 2
log10 1 1 1
log10l 1 1 1
log1pf 1 1 1
log1p - - -
log1pl 1 1 -
log2f - - -
log2 - - -
log2l 1 1 -
logbf - - -
logb - - -
logbl - - -
lroundf - - -
lround - - -
lroundl - - -
llroundf - - -
llround - - -
llroundl - - -
modff - - -
modf - - -
modfl - - -
nearbyintf - - -
nearbyint - - -
nearbyintl - - -
nextafterf - - -
nextafter - - -
nextafterl - - -
nexttowardf - - -
nexttoward - - -
nexttowardl - - -
powf - - -
pow - - -
powl - - -
remainderf - - -
remainder - - -
remainderl - - -
remquof - - -
remquo - - -
remquol - - -
rintf - - -
rint - - -
rintl - - -
roundf - - -
round - - -
roundl - - -
scalbf - - -
scalb - - -
scalbl - - -
scalbnf - - -
scalbn - - -
scalbnl - - -
scalblnf - - -
scalbln - - -
scalblnl - - -
sinf - - -
sin - - -
sinl - - -
sincosf 1 1 1
sincos 1 1 1
sincosl 1 1 1
sinhf - - -
sinh - - -
sinhl - - 1
sqrtf - - -
sqrt - - -
sqrtl 1 1 -
tanf - - -
tan 1 1 1
tanl - - -
tanhf - - -
tanh - - -
tanhl 1 1 -
tgammaf 1 1 1
tgamma 1 1 1
tgammal 1 1 1
truncf - - -
trunc - - -
truncl - - -
y0f 1 1 1
y0 2 2 2
y0l 3 3 1
y1f 2 2 2
y1 3 3 3
y1l 1 1 1
ynf 2 2 2
yn 3 3 3
ynl 5 5 4