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 aarch64 Alpha ARM hppa/fpu IA64
acosf - - - - -
acos - - - - -
acosl - - - - -
acoshf - - - - -
acosh - - - - -
acoshl - - - - -
asinf - - - - -
asin - - - - -
asinl - - - - -
asinhf - - - - -
asinh - - - - -
asinhl - - - - -
atanf - - - - -
atan - - - - -
atanl - - - - -
atanhf 1 1 1 1 -
atanh - - - - -
atanhl - - - - -
atan2f 1 1 1 1 -
atan2 - - - - -
atan2l 1 1 - - -
cabsf - - - - -
cabs - - - - -
cabsl - - - - -
cacosf 0 + i 1 0 + i 1 0 + i 1 - 0 + i 1
cacos 1 + i 2 1 + i 2 1 + i 2 - -
cacosl 1 + i 3 1 + i 3 - - 0 + i 2
cacoshf 1 + i 1 1 + i 1 1 + i 1 0 + i 1 7 + i 0
cacosh 1 + i 1 1 + i 1 1 + i 1 - 1 + i 1
cacoshl 1 + i 1 1 + i 1 - - 7 + i 1
cargf - - - - -
carg - - - - -
cargl - - - - -
casinf 1 + i 1 1 + i 1 1 + i 1 1 + i 0 1 + i 1
casin 1 + i 2 1 + i 2 1 + i 2 1 + i 0 1 + i 0
casinl 0 + i 3 0 + i 3 - 1 + i 0 2 + i 2
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 4 + i 2 4 + i 2 - 5 + i 3 5 + i 5
catanf 0 + i 1 0 + 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 - 0 + i 1 -
catanhf - - - - -
catanh 4 + i 0 4 + i 0 4 + i 0 4 + i 0 4 + i 0
catanhl 1 + i 1 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 0 + i 1
ccos 1 + i 1 1 + i 1 1 + i 1 1 + i 0 1 + i 0
ccosl 1 + i 1 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 1 1 + i 1 1 + i 1 1 + i 0 1 + i 1
ccoshl 1 + i 1 1 + i 1 - 1 + i 0 0 + i 1
ceilf - - - - -
ceil - - - - -
ceill - - - 1 -
cexpf 1 + i 2 1 + i 2 1 + i 2 1 + i 1 1 + i 1
cexp 2 + i 1 2 + i 1 2 + i 1 - -
cexpl 1 + i 1 1 + i 1 - - 0 + i 1
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf 1 + i 1 1 + i 1 1 + i 1 1 + i 0 1 + i 0
clog 1 + i 1 1 + i 0 1 + i 0 - -
clogl 1 + i 1 1 + i 1 - - 1 + i 0
clog10f 2 + i 1 1 + i 1 2 + i 1 1 + i 1 1 + i 1
clog10 2 + i 1 2 + i 1 2 + i 1 0 + i 1 1 + i 1
clog10l 1 + i 2 1 + i 2 - 0 + 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 - 2 1
coshf - - - - -
cosh - - - - -
coshl - - - - -
cpowf 5 + i 2 4 + i 2 4 + i 2 4 + i 2 5 + i 3
cpow 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2
cpowl 4 + i 1 11 + i 1 - 2 + i 2 6 + i 4
cprojf - - - - -
cproj - - - - -
cprojl - - - - -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf 1 + i 0 1 + i 0 1 + i 0 - 1 + i 1
csin 1 + i 0 1 + i 0 1 + i 0 - -
csinl 1 + i 1 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 1 + i 1
csinhl 1 + i 1 1 + i 1 - 0 + i 1 1 + i 2
csqrtf 1 + i 1 1 + i 1 1 + i 1 1 + i 0 1 + i 0
csqrt 1 + i 1 1 + i 1 1 + i 1 - -
csqrtl 1 + i 1 1 + i 1 - - -
ctanf 1 + i 1 1 + i 0 1 + i 0 - 0 + i 1
ctan 1 + i 1 1 + i 1 1 + i 1 0 + i 1 1 + i 1
ctanl 2 + i 2 2 + i 2 - 0 + i 1 2 + i 1
ctanhf 2 + i 1 1 + i 2 1 + i 2 2 + i 1 0 + i 1
ctanh 1 + i 1 1 + i 1 1 + i 1 1 + i 0 1 + i 1
ctanhl 2 + i 2 2 + i 2 - 1 + i 0 1 + i 24
erff - - - - -
erf 1 1 1 1 1
erfl - - - 1 -
erfcf 1 1 1 - 1
erfc 1 1 1 1 1
erfcl 1 1 - 1 1
expf - - - - -
exp - - - - -
expl - - - - -
exp10f - - - 2 2
exp10 1 1 1 6 6
exp10l 1 1 - 6 3
exp2f - - - - -
exp2 - - - - -
exp2l 1 1 - - -
expm1f 1 1 1 1 -
expm1 1 1 1 1 -
expm1l 1 1 - 1 1
fabsf - - - - -
fabs - - - - -
fabsl - - - - -
fdimf - - - - -
fdim - - - - -
fdiml - - - - -
floorf - - - - -
floor - - - - -
floorl - - - 1 -
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 1
hypot - - - - -
hypotl - - - - -
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f 2 2 2 2 2
j0 2 2 2 2 3
j0l 2 2 - 2 2
j1f 2 2 2 2 2
j1 1 1 1 1 1
j1l 4 4 - 1 1
jnf 5 5 5 4 4
jn 4 4 4 4 3
jnl 8 8 - 4 2
lgammaf 2 2 2 2 2
lgamma 1 1 1 1 1
lgammal 1 1 - 1 1
lrintf - - - - -
lrint - - - - -
lrintl - - - - -
llrintf - - - - -
llrint - - - - -
llrintl - - - - -
logf - - - - 1
log - - - - -
logl - - - - -
log10f 2 2 2 2 1
log10 1 1 1 1 -
log10l 1 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 1 1 1 - -
pow - - - - -
powl 1 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 1
sinhf - - - - -
sinh - - - - -
sinhl - - - - -
sqrtf - - - - -
sqrt - - - - -
sqrtl - - - - -
tanf - - - - -
tan 1 1 1 1 1
tanl - - - 1 -
tanhf - - - - -
tanh - - - - -
tanhl 1 1 - - -
tgammaf 1 1 1 1 1
tgamma 1 1 1 1 1
tgammal 1 1 - 1 1
truncf - - - - -
trunc - - - - -
truncl - - - 1 -
y0f 1 1 1 1 1
y0 2 2 2 2 2
y0l 3 3 - 2 1
y1f 2 2 2 2 2
y1 3 3 3 3 3
y1l 1 1 - 3 1
ynf 2 2 2 2 2
yn 3 3 3 3 3
ynl 5 5 - 3 2

Function m68k/coldfire/fpu m68k/m680x0/fpu mips/mips32 mips/mips64 powerpc/nofpu
acosf - - - - -
acos - - - - -
acosl - - - - 1
acoshf - - - - -
acosh - 1 - - -
acoshl - 1 - - 1
asinf - - - - -
asin - - - - -
asinl - - - - 2
asinhf - - - - -
asinh - - - - -
asinhl - 1 - - 1
atanf - - - - -
atan - - - - -
atanl - - - - -
atanhf 1 - 1 1 1
atanh - - - - -
atanhl - 1 - - -
atan2f 1 - 1 1 1
atan2 - - - - -
atan2l - 1 - 1 1
cabsf - - - - -
cabs - - - - -
cabsl - - - - 1
cacosf - 2 + i 1 0 + i 1 0 + i 1 0 + i 1
cacos - 1 + i 2 1 + i 2 1 + i 2 1 + i 2
cacosl - 1 + i 2 - 1 + i 3 1 + i 2
cacoshf 0 + i 1 7 + i 1 1 + i 1 1 + i 1 1 + i 1
cacosh - 1 + i 1 1 + i 1 1 + i 1 1 + i 1
cacoshl - 6 + i 2 - 1 + i 1 1 + i 0
cargf - - - - -
carg - - - - -
cargl - - - - -
casinf 1 + i 0 5 + i 1 1 + i 1 1 + i 1 1 + i 1
casin 1 + i 0 1 + i 2 1 + i 2 1 + i 2 1 + i 2
casinl - 3 + i 2 - 0 + i 3 1 + i 2
casinhf 1 + i 6 1 + i 6 1 + i 6 1 + i 6 1 + i 6
casinh 5 + i 3 6 + i 13 5 + i 3 5 + i 3 5 + i 3
casinhl - 5 + i 6 - 4 + i 2 4 + i 1
catanf 0 + i 1 0 + 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 - 1 + i 0 - 0 + i 1 1 + i 1
catanhf - 1 + i 0 - - -
catanh 4 + i 0 - 4 + i 0 4 + i 0 4 + i 0
catanhl - 1 + i 0 - 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 1 + i 1
ccos 1 + i 0 - 1 + i 1 1 + i 1 1 + i 1
ccosl - 1 + i 1 - 1 + i 1 1 + i 2
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 1 1 + i 1
ccoshl - 0 + i 1 - 1 + i 1 1 + i 2
ceilf - - - - -
ceil - - - - -
ceill - - - - -
cexpf 1 + i 1 2 + i 1 1 + i 2 1 + i 2 1 + i 2
cexp - - 2 + i 1 2 + i 1 2 + i 1
cexpl - 1 + i 1 - 1 + i 1 2 + i 2
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf 1 + i 0 1 + i 0 1 + i 1 1 + i 1 1 + i 1
clog - 1 + i 0 1 + i 0 1 + i 0 1 + i 0
clogl - 1 + i 1 - 1 + i 1 1 + i 2
clog10f 1 + i 1 1 + i 1 2 + i 1 2 + i 1 2 + i 1
clog10 0 + i 1 1 + i 1 2 + i 1 2 + i 1 2 + i 1
clog10l - 1 + i 2 - 1 + i 2 2 + i 2
conjf - - - - -
conj - - - - -
conjl - - - - -
copysignf - - - - -
copysign - - - - -
copysignl - - - - -
cosf 1 1 1 1 1
cos 2 2 2 2 2
cosl - 1 - 1 1
coshf - - - - -
cosh - - - - -
coshl - - - - 1
cpowf 4 + i 2 3 + i 5 4 + i 2 4 + i 2 4 + i 2
cpow 2 + i 2 1 + i 2 2 + i 2 2 + i 2 2 + i 2
cpowl - 15 + i 2 - 4 + i 1 4 + i 2
cprojf - - - - -
cproj - - - - -
cprojl - - - - -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf - 1 + i 1 1 + i 0 1 + i 0 1 + i 0
csin - - 1 + i 0 1 + i 0 1 + i 0
csinl - 1 + i 0 - 1 + i 1 2 + i 1
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 - 1 + i 1 1 + i 2
csqrtf 1 + i 0 - 1 + i 1 1 + i 1 1 + i 1
csqrt - 1 + i 1 1 + i 1 1 + i 1 1 + i 1
csqrtl - 1 + i 1 - 1 + i 1 1 + i 1
ctanf - 1 + i 1 1 + i 0 1 + i 0 1 + i 0
ctan 0 + i 1 1 + i 0 1 + i 1 1 + i 1 1 + i 1
ctanl - 2 + i 1 - 2 + i 2 2 + i 2
ctanhf 2 + i 1 1 + i 2 1 + i 2 1 + i 2 1 + i 2
ctanh 1 + i 0 0 + i 1 1 + i 1 1 + i 1 1 + i 1
ctanhl - 1 + i 2 - 2 + i 2 2 + i 2
erff - - - - -
erf 1 - 1 1 1
erfl - - - - 1
erfcf - 1 1 1 1
erfc 1 - 1 1 1
erfcl - 1 - 1 1
expf - - - - -
exp - - - - -
expl - - - - 1
exp10f 2 - - - -
exp10 6 - 1 1 1
exp10l - - - 1 1
exp2f - - - - -
exp2 - - - - -
exp2l - - - 1 -
expm1f 1 - 1 1 1
expm1 1 - 1 1 1
expm1l - 1 - 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 1
hypot - - - - -
hypotl - - - - 1
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f 2 2 2 2 2
j0 2 1 2 2 2
j0l - 2 - 2 2
j1f 2 2 2 2 2
j1 1 - 1 1 1
j1l - 1 - 4 1
jnf 4 5 5 5 5
jn 4 1 4 4 4
jnl - 3 - 8 7
lgammaf 2 2 2 2 2
lgamma 1 1 1 1 1
lgammal - 1 - 1 3
lrintf - - - - -
lrint - - - - -
lrintl - - - - -
llrintf - - - - -
llrint - - - - -
llrintl - - - - -
logf - 1 - - -
log - - - - -
logl - 1 - - 1
log10f 2 1 2 2 2
log10 1 - 1 1 1
log10l - 2 - 1 1
log1pf 1 - 1 1 1
log1p - - - - -
log1pl - 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 - 1 1 1 1
pow - - - - -
powl - 7 - 1 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
sinhf - - - - -
sinh - - - - -
sinhl - 1 - - 1
sqrtf - - - - -
sqrt - - - - -
sqrtl - - - - -
tanf - - - - -
tan 1 1 1 1 1
tanl - 1 - - 2
tanhf - - - - -
tanh - - - - -
tanhl - - - 1 1
tgammaf 1 1 1 1 1
tgamma 1 1 1 1 1
tgammal - 1 - 1 1
truncf - - - - -
trunc - - - - -
truncl - - - - -
y0f 1 1 1 1 1
y0 2 1 2 2 2
y0l - 2 - 3 1
y1f 2 2 2 2 2
y1 3 1 3 3 3
y1l - 2 - 1 2
ynf 2 2 2 2 2
yn 3 1 3 3 3
ynl - 4 - 5 2

Function tile Generic ix86 PowerPC S/390
acosf - - - - -
acos - - - - -
acosl - - 1 1 -
acoshf - - - - -
acosh - - - - -
acoshl - - - 1 -
asinf - - - - -
asin - - - - -
asinl - - 1 2 -
asinhf - - - - -
asinh - - - - -
asinhl - - - 1 -
atanf - - - - -
atan - - - - -
atanl - - - - -
atanhf 1 - - 1 1
atanh - - - - -
atanhl - - 1 - -
atan2f 1 - - 1 1
atan2 - - - - -
atan2l - - - 1 1
cabsf - - - 1 -
cabs - - - - -
cabsl - - - 1 -
cacosf 0 + i 1 - 0 + i 1 0 + i 1 0 + i 1
cacos 1 + i 2 - 1 + i 2 1 + i 3 1 + i 2
cacosl - - 1 + i 2 1 + i 2 1 + i 3
cacoshf 1 + i 1 - 9 + i 4 7 + i 3 1 + i 1
cacosh 1 + i 1 - 1 + i 1 1 + i 1 1 + i 1
cacoshl - - 6 + i 1 1 + i 1 1 + i 1
cargf - - - - -
carg - - - - -
cargl - - - - -
casinf 1 + i 1 - 1 + i 1 1 + i 1 1 + i 1
casin 1 + i 2 - 1 + i 2 1 + i 3 1 + i 2
casinl - - 2 + i 2 1 + i 2 0 + i 3
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 - - 5 + i 5 4 + i 1 4 + i 2
catanf 0 + i 1 - 0 + i 1 4 + i 1 0 + i 1
catan 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 -
catanh 4 + i 0 - 2 + i 0 4 + i 0 4 + i 0
catanhl - - 1 + i 0 - 1 + i 1
cbrtf - - - - -
cbrt 1 - - 1 1
cbrtl - - 1 1 1
ccosf 1 + i 1 - 1 + i 1 1 + i 1 1 + i 1
ccos 1 + i 1 - 1 + i 1 1 + i 1 1 + i 1
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 1 - 1 + i 1 1 + i 1 1 + i 1
ccoshl - - 0 + i 1 1 + i 2 1 + i 1
ceilf - - - - -
ceil - - - - -
ceill - - - - -
cexpf 1 + i 2 - 1 + i 1 1 + i 2 1 + i 2
cexp 2 + i 1 - 2 + i 1 2 + i 1 2 + i 1
cexpl - - 1 + i 1 2 + i 2 1 + i 1
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf 1 + i 1 - 1 + i 0 2 + i 3 1 + i 1
clog 1 + i 0 - 1 + i 0 1 + i 1 1 + i 1
clogl - - 1 + i 1 1 + i 2 1 + i 1
clog10f 2 + i 1 - 1 + i 1 2 + i 1 2 + i 1
clog10 2 + i 1 - 1 + i 1 2 + i 1 2 + i 1
clog10l - - 1 + i 1 2 + i 2 1 + i 2
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 - 5 + i 3 5 + i 2 5 + i 2
cpow 2 + i 2 - 2 + i 2 2 + i 2 2 + i 2
cpowl - - 5 + i 4 4 + i 2 4 + i 1
cprojf - - - - -
cproj - - - - -
cprojl - - - 0 + i 1 -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf 1 + i 0 - 1 + i 1 1 + i 0 1 + i 0
csin 1 + i 0 - 1 + i 1 1 + i 0 1 + i 0
csinl - - 1 + i 0 1 + i 1 1 + i 1
csinhf 1 + i 1 - 1 + i 1 1 + i 1 1 + i 1
csinh 0 + i 1 - 1 + i 1 0 + i 1 0 + i 1
csinhl - - 1 + i 2 1 + i 1 1 + i 1
csqrtf 1 + i 1 - - 2 + i 2 1 + i 1
csqrt 1 + i 1 - - 1 + i 1 1 + i 1
csqrtl - - 1 + i 1 1 + i 1 1 + i 1
ctanf 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
ctanl - - 2 + i 1 2 + i 2 2 + i 2
ctanhf 1 + i 2 - 1 + i 1 2 + i 1 2 + i 1
ctanh 1 + i 1 - 1 + i 1 1 + i 1 1 + i 1
ctanhl - - 1 + i 2 3 + i 2 2 + i 2
erff - - - - -
erf 1 - 1 1 1
erfl - - - 1 -
erfcf 1 - 1 1 1
erfc 1 - 1 1 1
erfcl - - 1 1 1
expf - - - - -
exp - - - - -
expl - - - 1 -
exp10f - - - 1 -
exp10 1 - - 1 1
exp10l - - 8 1 1
exp2f - - - - -
exp2 - - - - -
exp2l - - - 2 1
expm1f 1 - - 1 1
expm1 1 - - 1 1
expm1l - - 1 1 1
fabsf - - - - -
fabs - - - - -
fabsl - - - - -
fdimf - - - - -
fdim - - - - -
fdiml - - - - -
floorf - - - - -
floor - - - - -
floorl - - - - -
fmaf 1 - - - -
fma 1 - - - -
fmal - - - - -
fmaxf - - - - -
fmax - - - - -
fmaxl - - - - -
fminf - - - - -
fmin - - - - -
fminl - - - - -
fmodf - - - - -
fmod - - - - -
fmodl - - - - -
frexpf - - - - -
frexp - - - - -
frexpl - - - - -
gammaf - - - - -
gamma - - 1 - -
gammal - - 1 1 1
hypotf 1 - 1 1 1
hypot - - - 1 -
hypotl - - - 1 -
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f 2 - 2 2 2
j0 2 - 3 3 2
j0l - - 2 2 2
j1f 2 - 2 2 2
j1 1 - 2 1 1
j1l - - 1 1 4
jnf 5 - 4 5 5
jn 4 - 5 4 4
jnl - - 3 7 8
lgammaf 2 - 2 2 2
lgamma 1 - 1 1 1
lgammal - - 1 3 1
lrintf - - - - -
lrint - - - - -
lrintl - - - - -
llrintf - - - - -
llrint - - - - -
llrintl - - - - -
logf - - 1 - -
log - - - - -
logl - - - 1 -
log10f 2 - 1 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 1 - - 1 1
pow - - - - -
powl - - 1 1 1
remainderf - - - - -
remainder - - - - -
remainderl - - - - -
remquof - - - - -
remquo - - - - -
remquol - - - - -
rintf - - - - -
rint - - - - -
rintl - - - - -
roundf - - - - -
round - - - - -
roundl - - - - -
scalbf - - - - -
scalb - - - - -
scalbl - - - - -
scalbnf - - - - -
scalbn - - - - -
scalbnl - - - - -
scalblnf - - - - -
scalbln - - - - -
scalblnl - - - - -
sinf - - 1 - -
sin - - - - -
sinl - - - 1 -
sincosf 1 - 1 1 1
sincos 1 - 1 1 1
sincosl - - 1 1 1
sinhf - - - - -
sinh - - 1 - -
sinhl - - - 1 -
sqrtf - - - - -
sqrt - - - 1 -
sqrtl - - - - -
tanf - - 1 - -
tan 1 - 1 1 1
tanl - - 1 2 -
tanhf - - - - -
tanh - - - - -
tanhl - - - 1 1
tgammaf 1 - 1 1 1
tgamma 1 - 2 1 1
tgammal - - 1 1 1
truncf - - - - -
trunc - - - - -
truncl - - - - -
y0f 1 - 2 1 1
y0 2 - 2 2 2
y0l - - 1 1 3
y1f 2 - 2 2 2
y1 3 - 2 3 3
y1l - - 2 2 1
ynf 2 - 3 2 2
yn 3 - 2 3 3
ynl - - 4 2 5

Function SH4 sparc/fpu x86_64/fpu
acosf - - -
acos - - -
acosl - - 1
acoshf - - -
acosh - - -
acoshl - - -
asinf 2 - -
asin 1 - -
asinl - - 1
asinhf - - -
asinh - - -
asinhl - - -
atanf - - -
atan - - -
atanl - - -
atanhf - 1 1
atanh 1 - -
atanhl - - 1
atan2f 4 1 1
atan2 - - -
atan2l - 1 -
cabsf 1 - -
cabs 1 - -
cabsl - - -
cacosf 1 + i 1 0 + i 1 0 + i 1
cacos 1 + i 0 1 + i 2 1 + i 2
cacosl - 1 + i 3 1 + i 2
cacoshf 7 + i 3 1 + i 1 7 + i 3
cacosh 1 + i 1 1 + i 1 1 + i 1
cacoshl - 1 + i 1 6 + i 1
cargf - - -
carg - - -
cargl - - -
casinf 2 + i 1 1 + i 1 1 + i 1
casin 3 + i 0 1 + i 2 1 + i 2
casinl - 0 + i 3 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 5 + i 5
catanf 4 + i 1 0 + i 1 4 + i 1
catan 0 + i 1 0 + i 1 0 + i 1
catanl - 0 + i 1 -
catanhf 1 + i 6 - 0 + i 6
catanh 4 + i 1 4 + i 0 4 + i 0
catanhl - 1 + i 1 1 + i 0
cbrtf - - -
cbrt 1 1 1
cbrtl - 1 1
ccosf 0 + i 1 1 + i 1 1 + i 1
ccos 1 + i 1 1 + i 1 1 + i 1
ccosl - 1 + i 1 1 + i 1
ccoshf 1 + i 1 1 + i 1 1 + i 1
ccosh 1 + i 1 1 + i 1 1 + i 1
ccoshl - 1 + i 1 0 + i 1
ceilf - - -
ceil - - -
ceill - - -
cexpf 1 + i 1 1 + i 2 1 + i 2
cexp 1 + i 0 2 + i 1 2 + i 1
cexpl - 1 + i 1 1 + i 1
cimagf - - -
cimag - - -
cimagl - - -
clogf 0 + i 3 1 + i 1 1 + i 3
clog 0 + i 1 1 + i 0 1 + i 0
clogl - 1 + i 1 1 + i 1
clog10f 1 + i 5 2 + i 1 2 + i 1
clog10 1 + i 1 2 + i 1 2 + i 1
clog10l - 1 + i 2 1 + i 1
conjf - - -
conj - - -
conjl - - -
copysignf - - -
copysign - - -
copysignl - - -
cosf 1 1 1
cos 2 2 2
cosl - 1 1
coshf - - -
cosh - - -
coshl - - -
cpowf 4 + i 2 4 + i 2 5 + i 2
cpow 1 + i 1.1031 2 + i 2 2 + i 2
cpowl - 11 + i 1 5 + i 4
cprojf - - -
cproj - - -
cprojl - - -
crealf - - -
creal - - -
creall - - -
csinf 0 + i 1 1 + i 0 1 + i 1
csin - 1 + i 0 1 + i 1
csinl - 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 1 1 + i 2
csqrtf 1 + i 1 1 + i 1 1 + i 1
csqrt 1 + i 0 1 + i 1 1 + i 1
csqrtl - 1 + i 1 1 + i 1
ctanf 1 + i 1 1 + i 0 2 + i 2
ctan 1 + i 1 1 + i 1 1 + i 1
ctanl - 2 + i 2 2 + i 1
ctanhf 2 + i 1 1 + i 2 2 + i 2
ctanh 2 + i 2 1 + i 1 1 + i 1
ctanhl - 2 + i 2 1 + i 2
erff - - -
erf - 1 1
erfl - - -
erfcf 12 1 1
erfc 24 1 1
erfcl - 1 1
expf - - -
exp - - -
expl - - -
exp10f 2 2 2
exp10 6 6 6
exp10l - 1 8
exp2f - - -
exp2 - - -
exp2l - 1 -
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 - - -
gammal - 1 1
hypotf 1 1 1
hypot 1 - -
hypotl - - -
ilogbf - - -
ilogb - - -
ilogbl - - -
j0f 2 2 2
j0 2 2 2
j0l - 2 2
j1f 2 2 2
j1 1 1 1
j1l - 4 1
jnf 4 5 5
jn 6 4 4
jnl - 8 3
lgammaf 2 2 2
lgamma 1 1 1
lgammal - 1 1
lrintf - - -
lrint - - -
lrintl - - -
llrintf - - -
llrint - - -
llrintl - - -
logf 1 - -
log 1 - -
logl - - -
log10f 1 2 2
log10 1 1 1
log10l - 1 1
log1pf 1 1 1
log1p 1 - -
log1pl - 1 -
log2f 1 - -
log2 1 - -
log2l - 1 -
logbf - - -
logb - - -
logbl - - -
lroundf - - -
lround - - -
lroundl - - -
llroundf - - -
llround - - -
llroundl - - -
modff - - -
modf - - -
modfl - - -
nearbyintf - - -
nearbyint - - -
nearbyintl - - -
nextafterf - - -
nextafter - - -
nextafterl - - -
nexttowardf - - -
nexttoward - - -
nexttowardl - - -
powf - 1 1
pow - - -
powl - 1 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 - - -
sincosf 1 1 1
sincos 1 1 1
sincosl - 1 1
sinhf 1 - -
sinh 1 - -
sinhl - - -
sqrtf - - -
sqrt - - -
sqrtl - - -
tanf - - -
tan 0.5 1 1
tanl - - 1
tanhf 1 - -
tanh 1 - -
tanhl - 1 -
tgammaf 1 1 1
tgamma 1 1 1
tgammal - 1 1
truncf - - -
trunc - - -
truncl - - -
y0f 1 1 1
y0 2 2 2
y0l - 3 1
y1f 2 2 2
y1 3 3 3
y1l - 1 2
ynf 2 2 2
yn 3 3 3
ynl - 5 4