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 in round-to-nearest mode. Using rounding bits this is also possible and normally implemented for the basic operations. Except for certain functions such as sqrt, fma and rint whose results are fully specified by reference to corresponding IEEE 754 floating-point operations, and conversions between strings and floating point, the GNU C Library does not aim for correctly rounded results for functions in the math library, and does not aim for correctness in whether “inexact” exceptions are raised. Instead, the goals for accuracy of functions without fully specified results are as follows; some functions have bugs meaning they do not meet these goals in all cases. In future, the GNU C Library may provide some other correctly rounding functions under the names such as crsin proposed for an extension to ISO C.

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 Generic hppa/fpu
acosf 1 1 1 - -
acos - - - - -
acosl - - - - -
acoshf 2 2 2 - 1
acosh 1 1 1 - 1
acoshl 1 1 - - -
asinf 1 1 1 - -
asin - - - - -
asinl 1 1 - - -
asinhf 1 1 1 - 1
asinh 1 1 1 - 1
asinhl 1 1 - - -
atanf 1 1 1 - -
atan 1 - - - -
atanl 1 1 - - -
atanhf 2 2 2 - 1
atanh 1 1 1 - 1
atanhl 2 2 - - -
atan2f 1 1 1 - 1
atan2 - - - - -
atan2l 1 1 - - -
cabsf - - - - -
cabs 1 1 1 - -
cabsl - - - - -
cacosf 2 + i 2 2 + i 2 2 + i 2 - 2 + i 2
cacos 1 + i 1 1 + i 1 1 + i 1 - 1 + i 1
cacosl 2 + i 2 2 + i 2 - - -
cacoshf 2 + i 2 2 + i 2 2 + i 2 - 2 + i 2
cacosh 1 + i 1 1 + i 1 1 + i 1 - 1 + i 1
cacoshl 2 + i 2 2 + i 2 - - -
cargf 1 1 1 - -
carg - - - - -
cargl 1 1 - - -
casinf 1 + i 2 1 + i 2 1 + i 2 - 1 + i 2
casin 1 + i 1 1 + i 1 1 + i 1 - 1 + i 1
casinl 2 + i 2 2 + i 2 - - 1 + i 0
casinhf 2 + i 1 2 + i 1 2 + i 1 - 2 + i 1
casinh 1 + i 1 1 + i 1 1 + i 1 - 5 + i 3
casinhl 2 + i 2 2 + i 2 - - 5 + i 3
catanf 1 + i 1 1 + i 1 1 + i 1 - 1 + i 1
catan 0 + i 1 0 + i 1 0 + i 1 - 0 + i 1
catanl 1 + i 1 1 + i 1 - - 0 + i 1
catanhf 1 + i 1 1 + i 1 1 + i 1 - 1 + i 1
catanh 1 + i 0 1 + i 0 1 + i 0 - 4 + i 0
catanhl 1 + i 1 1 + i 1 - - 4 + i 0
cbrtf 1 1 1 - 1
cbrt 3 3 3 - 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 0
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 1 + i 1 1 + i 1 - - 1 + i 0
ceilf - - - - -
ceil - - - - -
ceill - - - - -
cexpf 1 + i 2 1 + i 2 1 + i 2 - 1 + i 2
cexp 2 + i 1 2 + i 1 2 + i 1 - 2 + i 1
cexpl 1 + i 1 1 + i 1 - - -
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf 3 + i 1 2 + i 1 2 + i 1 - 1 + i 1
clog 3 + i 1 3 + i 0 3 + i 0 - 1 + i 0
clogl 4 + i 1 4 + i 1 - - -
clog10f 3 + i 2 3 + i 2 3 + i 2 - 2 + i 1
clog10 3 + i 1 3 + i 2 3 + i 2 - 2 + i 1
clog10l 4 + i 2 4 + i 2 - - 0 + i 1
conjf - - - - -
conj - - - - -
conjl - - - - -
copysignf - - - - -
copysign - - - - -
copysignl - - - - -
cosf 1 1 1 - 1
cos - - - - 2
cosl 1 1 - - 2
coshf 1 1 1 - 1
cosh 1 1 1 - 1
coshl 1 1 - - -
cpowf 5 + i 2 4 + i 2 4 + i 2 - 4 + i 2
cpow 2 + i 0 2 + i 0 2 + i 0 - 2 + i 2
cpowl 4 + i 1 4 + i 1 - - 2 + i 2
cprojf - - - - -
cproj - - - - -
cprojl - - - - -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf 1 + i 0 1 + i 0 1 + i 0 - 1 + i 0
csin 1 + i 0 1 + i 0 1 + i 0 - 1 + i 0
csinl 1 + i 1 1 + i 1 - - -
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 1 1 + i 1 - - 0 + i 1
csqrtf 2 + i 2 2 + i 2 2 + i 2 - 1 + i 1
csqrt 2 + i 2 2 + i 2 2 + i 2 - 1 + i 1
csqrtl 1 + i 1 1 + i 1 - - -
ctanf 1 + i 1 1 + i 1 1 + i 1 - 1 + i 1
ctan 1 + i 2 1 + i 2 1 + i 2 - 1 + i 2
ctanl 3 + i 3 3 + i 3 - - 0 + i 1
ctanhf 2 + i 1 1 + i 2 1 + i 2 - 1 + i 2
ctanh 2 + i 2 2 + i 2 2 + i 2 - 2 + i 2
ctanhl 3 + i 3 3 + i 3 - - 1 + i 0
erff 1 1 1 - -
erf 1 1 1 - 1
erfl 1 1 - - 1
erfcf 2 2 2 - 1
erfc 2 2 2 - 1
erfcl 2 2 - - 1
expf - - - - -
exp - - - - -
expl - - - - -
exp10f - - - - 2
exp10 2 2 2 - 6
exp10l 1 1 - - 6
exp2f - 1 1 - -
exp2 1 1 1 - -
exp2l 1 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 1 2 2 - 2
gamma 1 2 2 - 1
gammal 1 1 - - -
hypotf - - - - 1
hypot 1 1 1 - 1
hypotl 1 1 - - -
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f 2 2 2 - 2
j0 2 2 2 - 2
j0l 2 2 - - 2
j1f 2 2 2 - 2
j1 1 1 1 - 1
j1l 4 4 - - 1
jnf 4 4 4 - 5
jn 4 4 4 - 4
jnl 7 7 - - 4
lgammaf 1 2 2 - 2
lgamma 1 2 2 - 1
lgammal 1 1 - - 1
lrintf - - - - -
lrint - - - - -
lrintl - - - - -
llrintf - - - - -
llrint - - - - -
llrintl - - - - -
logf 1 1 1 - 1
log - - - - -
logl 1 1 - - -
log10f 2 2 2 - 2
log10 2 2 2 - 1
log10l 1 1 - - 1
log1pf 1 1 1 - 1
log1p 1 1 1 - -
log1pl 1 1 - - -
log2f 1 1 1 - -
log2 1 2 2 - -
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 3 3 - 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 1 1 1 - 1
sin - - - - -
sinl 1 1 - - -
sincosf 1 1 1 - 1
sincos - - - - 1
sincosl 1 1 - - 1
sinhf 2 2 2 - -
sinh 2 2 2 - -
sinhl 1 1 - - -
sqrtf - - - - -
sqrt - - - - -
sqrtl - - - - -
tanf 1 1 1 - -
tan - - - - 1
tanl - - - - 1
tanhf 2 2 2 - -
tanh 2 2 2 - -
tanhl 1 1 - - -
tgammaf 3 5 5 - 3
tgamma 3 7 3 - 4
tgammal 4 4 - - 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 2 2 - - 3
ynf 2 2 2 - 2
yn 3 3 3 - 3
ynl 5 5 - - 3

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

Function mips/mips32 mips/mips64 nios2 PowerPC powerpc/nofpu
acosf 1 1 1 1 1
acos - - - - -
acosl - - - 1 1
acoshf 2 2 2 2 2
acosh 1 1 1 1 1
acoshl - 1 - 1 1
asinf 1 1 1 1 1
asin - - - - -
asinl - 1 - 2 2
asinhf 1 1 1 1 1
asinh 1 1 1 1 1
asinhl - 1 - 2 2
atanf 1 1 1 1 1
atan - - - 1 -
atanl - 1 - 1 1
atanhf 2 2 2 2 2
atanh 1 1 1 1 1
atanhl - 2 - 2 2
atan2f 1 1 1 1 1
atan2 - - - - -
atan2l - 1 - 2 2
cabsf - - - - -
cabs 1 1 1 1 1
cabsl - - - 1 1
cacosf 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2
cacos 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
cacosl - 2 + i 2 - 1 + i 2 2 + i 1
cacoshf 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2
cacosh 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
cacoshl - 2 + i 2 - 2 + i 1 1 + i 2
cargf 1 1 1 1 1
carg - - - - -
cargl - 1 - 1 1
casinf 1 + i 2 1 + i 2 1 + i 2 1 + i 2 1 + i 2
casin 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
casinl - 2 + i 2 - 1 + i 2 2 + i 1
casinhf 2 + i 1 2 + i 1 2 + i 1 2 + i 1 2 + i 1
casinh 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
casinhl - 2 + i 2 - 2 + i 1 1 + i 2
catanf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
catan 0 + i 1 0 + i 1 0 + i 1 0 + i 1 0 + i 1
catanl - 1 + i 1 - 1 + i 1 1 + i 1
catanhf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
catanh 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0
catanhl - 1 + i 1 - 1 + i 1 1 + i 1
cbrtf 1 1 1 1 1
cbrt 3 3 3 3 3
cbrtl - 1 - 1 1
ccosf 1 + i 1 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 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 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
ccoshl - 1 + i 1 - 1 + i 2 1 + i 2
ceilf - - - - -
ceil - - - - -
ceill - - - - -
cexpf 1 + i 2 1 + i 2 1 + i 2 1 + i 2 1 + i 2
cexp 2 + i 1 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 2 + i 1 2 + i 1 2 + i 1 3 + i 1 2 + i 1
clog 3 + i 0 3 + i 0 3 + i 0 3 + i 1 3 + i 0
clogl - 4 + i 1 - 5 + i 2 5 + i 2
clog10f 3 + i 2 3 + i 2 3 + i 2 3 + i 2 3 + i 2
clog10 3 + i 2 3 + i 2 3 + i 2 3 + i 1 3 + i 2
clog10l - 4 + i 2 - 3 + i 2 3 + i 2
conjf - - - - -
conj - - - - -
conjl - - - - -
copysignf - - - - -
copysign - - - - -
copysignl - - - - -
cosf 1 1 1 1 1
cos - - - - -
cosl - 1 - 4 4
coshf 1 1 1 1 1
cosh 1 1 1 1 1
coshl - 1 - 3 3
cpowf 4 + i 2 4 + i 2 4 + i 2 5 + i 2 4 + i 2
cpow 2 + i 0 2 + i 0 2 + i 0 2 + i 0 2 + i 0
cpowl - 4 + i 1 - 4 + i 2 4 + i 1
cprojf - - - - -
cproj - - - - -
cprojl - - - - -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0
csin 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0
csinl - 1 + i 1 - 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 0 + i 1
csinhl - 1 + i 1 - 1 + i 1 1 + i 2
csqrtf 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2
csqrt 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2
csqrtl - 1 + i 1 - 1 + i 1 1 + i 1
ctanf 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
ctan 1 + i 2 1 + i 2 1 + i 2 1 + i 2 1 + i 2
ctanl - 3 + i 3 - 2 + i 2 3 + i 2
ctanhf 1 + i 2 1 + i 2 1 + i 2 2 + i 1 1 + i 2
ctanh 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2
ctanhl - 3 + i 3 - 3 + i 2 2 + i 3
erff 1 1 1 1 1
erf 1 1 1 1 1
erfl - 1 - 1 1
erfcf 2 2 2 2 2
erfc 2 2 2 2 2
erfcl - 2 - 2 3
expf - - - - -
exp - - - - -
expl - - - 1 1
exp10f - - - - -
exp10 2 2 2 2 2
exp10l - 1 - 1 1
exp2f 1 1 1 - 1
exp2 1 1 1 1 1
exp2l - 1 - 1 1
expm1f 1 1 1 1 1
expm1 1 1 1 1 1
expm1l - 1 - 1 1
fabsf - - - - -
fabs - - - - -
fabsl - - - - -
fdimf - - - - -
fdim - - - - -
fdiml - - - - -
floorf - - - - -
floor - - - - -
floorl - - - - -
fmaf - - - - -
fma - - - - -
fmal - - - 1 1
fmaxf - - - - -
fmax - - - - -
fmaxl - - - - -
fminf - - - - -
fmin - - - - -
fminl - - - - -
fmodf - - - - -
fmod - - - - -
fmodl - - - - -
frexpf - - - - -
frexp - - - - -
frexpl - - - - -
gammaf 2 2 2 1 2
gamma 2 2 2 1 2
gammal - 1 - 1 1
hypotf - - - - -
hypot 1 1 1 1 1
hypotl - 1 - 1 1
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f 2 2 2 2 2
j0 2 2 2 2 2
j0l - 2 - 2 2
j1f 2 2 2 2 2
j1 1 1 1 1 1
j1l - 4 - 1 1
jnf 4 4 4 4 4
jn 4 4 4 4 4
jnl - 7 - 4 4
lgammaf 2 2 2 1 2
lgamma 2 2 2 1 2
lgammal - 1 - 1 1
lrintf - - - - -
lrint - - - - -
lrintl - - - - -
llrintf - - - - -
llrint - - - - -
llrintl - - - - -
logf 1 1 1 1 1
log - - - - -
logl - 1 - 1 1
log10f 2 2 2 2 2
log10 2 2 2 2 2
log10l - 1 - 1 1
log1pf 1 1 1 1 1
log1p 1 1 1 1 1
log1pl - 1 - 1 1
log2f 1 1 1 1 1
log2 2 2 2 1 2
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 3 3 3 1 3
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 1 1 1 1
sin - - - - -
sinl - 1 - 1 1
sincosf 1 1 1 1 1
sincos - - - - -
sincosl - 1 - 1 1
sinhf 2 2 2 2 2
sinh 2 2 2 2 2
sinhl - 1 - 2 2
sqrtf - - - - -
sqrt - - - - -
sqrtl - - - 1 1
tanf 1 1 1 1 1
tan - - - - -
tanl - - - 2 2
tanhf 2 2 2 2 2
tanh 2 2 2 2 2
tanhl - 1 - 1 1
tgammaf 5 5 5 3 5
tgamma 3 3 4 3 3
tgammal - 4 - 5 3
truncf - - - - -
trunc - - - - -
truncl - - - - -
y0f 1 1 1 1 1
y0 2 2 2 2 2
y0l - 3 - 1 1
y1f 2 2 2 2 2
y1 3 3 3 3 3
y1l - 2 - 2 2
ynf 2 2 2 2 2
yn 3 3 3 3 3
ynl - 5 - 2 2

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