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 IA64 m68k/coldfire/fpu
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 - - - -
cabsf - - - - -
cabs - - - - -
cabsl - - - - -
cacosf 0 + i 1 0 + i 1 - 0 + i 1 -
cacos 1 + i 2 1 + i 2 - - -
cacosl 1 + i 3 - - 0 + i 2 -
cacoshf 1 + i 1 1 + i 1 0 + i 1 7 + i 0 0 + i 1
cacosh 1 + i 1 1 + i 1 - 1 + i 1 -
cacoshl 1 + i 1 - - 7 + i 1 -
cargf - - - - -
carg - - - - -
cargl - - - - -
casinf 1 + i 1 1 + i 1 1 + i 0 1 + i 1 1 + i 0
casin 1 + i 2 1 + i 2 1 + i 0 1 + i 0 1 + i 0
casinl 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 - 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 - -
catanhf - - - - -
catanh 4 + i 0 4 + i 0 4 + i 0 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 - -
ccosf 1 + i 1 1 + i 1 1 + i 1 0 + i 1 1 + i 1
ccos 1 + i 1 1 + i 1 1 + i 0 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 1 1 + i 1 1 + i 0 1 + i 1 1 + i 0
ccoshl 1 + i 1 - 1 + i 0 0 + i 1 -
ceilf - - - - -
ceil - - - - -
ceill - - 1 - -
cexpf 1 + i 2 1 + i 2 1 + i 1 1 + i 1 1 + i 1
cexp 2 + i 1 2 + i 1 - - -
cexpl 1 + i 1 - - 0 + i 1 -
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf 1 + i 1 1 + i 0 1 + i 0 1 + i 0 1 + i 0
clog 1 + i 0 1 + i 0 - - -
clogl 1 + i 1 - - 1 + i 0 -
clog10f 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
clog10 2 + i 1 1 + i 1 0 + i 1 1 + i 1 0 + i 1
clog10l 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 - 2 1 -
coshf - - - - -
cosh - - - - -
coshl - - - - -
cpowf 4 + i 2 4 + i 2 4 + i 2 5 + i 3 4 + i 2
cpow 2 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2
cpowl 11 + i 1 - 2 + i 2 6 + i 4 -
cprojf - - - - -
cproj - - - - -
cprojl - - - - -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf 1 + i 0 1 + i 0 - 1 + i 1 -
csin 1 + i 0 1 + i 0 - - -
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 1 + i 1 0 + i 1
csinhl 1 + i 1 - 0 + i 1 1 + i 2 -
csqrtf 1 + i 1 1 + i 1 1 + i 0 1 + i 0 1 + i 0
csqrt 1 + i 1 1 + i 1 - - -
csqrtl 1 + i 1 - - - -
ctanf 1 + i 0 1 + i 0 - 0 + i 1 -
ctan 1 + i 1 1 + i 1 0 + i 1 1 + i 1 0 + i 1
ctanl 2 + i 2 - 0 + i 1 2 + i 1 -
ctanhf 1 + i 2 1 + i 2 2 + i 1 0 + i 1 2 + i 1
ctanh 1 + i 1 1 + i 1 1 + i 0 1 + i 1 1 + i 0
ctanhl 2 + i 2 - 1 + i 0 1 + i 24 -
erff - - - - -
erf 1 1 1 1 1
erfl - - 1 - -
erfcf 1 1 - 1 -
erfc 1 1 1 1 1
erfcl 1 - 1 1 -
expf - - - - -
exp - - - - -
expl - - - - -
exp10f - - 2 2 2
exp10 1 1 6 6 6
exp10l 1 - 6 3 -
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 - - 1 - -
fmaf - - - - -
fma - - - - -
fmal - - - - -
fmaxf - - - - -
fmax - - - - -
fmaxl - - - - -
fminf - - - - -
fmin - - - - -
fminl - - - - -
fmodf - - - - -
fmod - - - - -
fmodl - - - - -
frexpf - - - - -
frexp - - - - -
frexpl - - - - -
gammaf - - - - -
gamma - - - - -
gammal 1 - - 1 -
hypotf 1 1 1 1 1
hypot - - - - -
hypotl - - - - -
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f 2 2 2 2 2
j0 2 2 2 3 2
j0l 2 - 2 2 -
j1f 2 2 2 2 2
j1 1 1 1 1 1
j1l 4 - 1 1 -
jnf 5 5 4 4 4
jn 4 4 4 3 4
jnl 8 - 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 -
log - - - - -
logl - - - - -
log10f 2 2 2 1 2
log10 1 1 1 - 1
log10l 1 - 1 1 -
log1pf 1 1 1 - 1
log1p - - - - -
log1pl 1 - - - -
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 1 1 - - -
pow - - - - -
powl - - - - -
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 - - - - -
sinh - - - - -
sinhl - - - - -
sqrtf - - - - -
sqrt - - - - -
sqrtl - - - - -
tanf - - - - -
tan 1 1 1 1 1
tanl - - 1 - -
tanhf - - - - -
tanh - - - - -
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 2
y0l 3 - 2 1 -
y1f 2 2 2 2 2
y1 3 3 3 3 3
y1l 1 - 3 1 -
ynf 2 2 2 2 2
yn 3 3 3 3 3
ynl 5 - 3 2 -

Function m68k/m680x0/fpu mips/mips32 mips/mips64 powerpc/nofpu tile
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 0 + i 1
cacos 1 + i 2 1 + i 2 1 + i 2 1 + i 2 1 + i 2
cacosl 1 + i 2 - 1 + i 3 1 + i 2 -
cacoshf 7 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
cacosh 1 + i 1 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 5 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
casin 1 + i 2 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 6 + i 13 5 + i 3 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 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
ccoshl 0 + i 1 - 1 + i 1 1 + i 2 -
ceilf - - - - -
ceil - - - - -
ceill - - - - -
cexpf 2 + i 1 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 2 + i 2 -
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 1
clog 1 + i 0 1 + i 0 1 + i 0 1 + i 0 1 + i 0
clogl 1 + i 1 - 1 + i 0 2 + i 1 -
clog10f 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
clog10 1 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
clog10l 1 + i 2 - 1 + i 1 3 + i 1 -
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 3 + i 5 4 + i 2 4 + i 2 4 + i 2 4 + i 2
cpow 1 + i 2 2 + i 2 2 + i 2 2 + i 2 2 + i 2
cpowl 15 + i 2 - 11 + i 1 2 + i 2 -
cprojf - - - - -
cproj - - - - -
cprojl - - - - -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf 1 + i 1 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 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 1 1 + i 1 1 + i 1 1 + i 1
csqrt 1 + i 1 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 1 + i 0
ctan 1 + i 0 1 + i 1 1 + i 1 1 + i 1 1 + i 1
ctanl 2 + i 1 - 2 + i 2 2 + i 1 -
ctanhf 1 + i 2 1 + i 2 1 + i 2 1 + i 2 1 + i 2
ctanh 0 + i 1 1 + i 1 1 + i 1 1 + i 1 1 + i 1
ctanhl 1 + i 2 - 2 + i 2 1 + i 2 -
erff - - - - -
erf - 1 1 1 1
erfl - - - 1 -
erfcf 1 1 1 1 1
erfc - 1 1 1 1
erfcl 1 - 1 1 -
expf - - - - -
exp - - - - -
expl - - - 1 -
exp10f - - - - -
exp10 - 1 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 - - - - 1
fma - - - - 1
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 1 2 2 2 2
j0l 2 - 2 2 -
j1f 2 2 2 2 2
j1 - 1 1 1 1
j1l 1 - 4 1 -
jnf 5 5 5 5 5
jn 1 4 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 1 2 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 1
pow - - - - -
powl 7 - - 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 - - 1 -
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 1 2 2 2 2
y0l 2 - 3 1 -
y1f 2 2 2 2 2
y1 1 3 3 3 3
y1l 2 - 1 2 -
ynf 2 2 2 2 2
yn 1 3 3 3 3
ynl 4 - 5 2 -

Function Generic ix86 PowerPC S/390 SH4
acosf - - - - -
acos - - - - -
acosl - 1 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 - 1
cabs - - - - 1
cabsl - - 1 - -
cacosf - 0 + i 1 0 + i 1 0 + i 1 1 + i 1
cacos - 1 + i 2 1 + i 3 1 + i 2 1 + i 0
cacosl - 1 + i 2 1 + i 2 1 + i 3 -
cacoshf - 9 + i 4 7 + i 3 1 + i 1 7 + i 3
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 2 + i 1
casin - 1 + i 2 1 + i 3 1 + i 2 3 + i 0
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 4 + i 1 0 + i 1 4 + 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 - 1 + i 6
catanh - 2 + i 0 4 + i 0 4 + i 0 4 + i 1
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 0 + 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 1 1 + i 2 1 + i 2 1 + i 1
cexp - 2 + i 1 2 + i 1 2 + i 1 1 + i 0
cexpl - 1 + i 1 2 + i 2 1 + i 1 -
cimagf - - - - -
cimag - - - - -
cimagl - - - - -
clogf - 1 + i 0 2 + i 3 1 + i 0 0 + i 3
clog - 1 + i 0 1 + i 1 1 + i 1 0 + i 1
clogl - 1 + i 0 2 + i 1 1 + i 0 -
clog10f - 1 + i 1 2 + i 1 1 + i 1 1 + i 5
clog10 - 1 + i 1 1 + i 1 1 + i 1 1 + i 1
clog10l - 1 + i 1 3 + i 1 1 + 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 - 5 + i 3 5 + i 2 5 + i 2 4 + i 2
cpow - 2 + i 2 2 + i 2 2 + i 2 1 + i 1.1031
cpowl - 5 + i 4 2 + i 2 11 + i 1 -
cprojf - - - - -
cproj - - - - -
cprojl - - 0 + i 1 - -
crealf - - - - -
creal - - - - -
creall - - - - -
csinf - 1 + i 1 1 + i 0 1 + i 0 0 + i 1
csin - 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 - 1 + i 1 0 + i 1 0 + i 1 0 + i 1
csinhl - 1 + i 2 1 + i 1 1 + i 1 -
csqrtf - - 2 + i 2 1 + i 1 1 + i 1
csqrt - - 1 + i 1 1 + i 1 1 + i 0
csqrtl - 1 + i 1 1 + i 1 1 + i 1 -
ctanf - 1 + i 1 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 1 2 + i 1 2 + i 1 2 + i 1
ctanh - 1 + i 1 1 + i 1 1 + i 1 2 + i 2
ctanhl - 1 + i 2 3 + i 2 2 + i 2 -
erff - - - - -
erf - 1 1 1 -
erfl - - 1 - -
erfcf - 1 1 1 12
erfc - 1 1 1 24
erfcl - 1 1 1 -
expf - - - - -
exp - - - - -
expl - - 1 - -
exp10f - - 1 - 2
exp10 - - 1 6 6
exp10l - 8 1 1 -
exp2f - - - - -
exp2 - - - - -
exp2l - - 2 1 -
expm1f - - 1 1 1
expm1 - - 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 - - - - 1
fmod - - - - 2
fmodl - - - - -
frexpf - - - - -
frexp - - - - -
frexpl - - - - -
gammaf - - - - -
gamma - 1 - - -
gammal - 1 1 1 -
hypotf - 1 1 1 1
hypot - - 1 - 1
hypotl - - 1 - -
ilogbf - - - - -
ilogb - - - - -
ilogbl - - - - -
j0f - 2 2 2 2
j0 - 3 3 2 2
j0l - 2 2 2 -
j1f - 2 2 2 2
j1 - 2 1 1 1
j1l - 1 1 4 -
jnf - 4 5 5 4
jn - 5 4 4 6
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 - - 1
log - - - - 1
logl - - 1 - -
log10f - 1 2 2 1
log10 - - 1 1 1
log10l - 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 - - 1 1 -
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 - 1 - - -
sin - - - - -
sinl - - 1 - -
sincosf - 1 1 1 1
sincos - 1 1 1 1
sincosl - 1 1 1 -
sinhf - - - - 1
sinh - 1 - - 1
sinhl - - 1 - -
sqrtf - - - - -
sqrt - - 1 - -
sqrtl - - - 1 -
tanf - 1 - - -
tan - 1 1 1 0.5
tanl - 1 1 - -
tanhf - - - - 1
tanh - - - - 1
tanhl - - 1 1 -
tgammaf - 1 1 1 1
tgamma - 2 1 1 1
tgammal - 1 1 1 -
truncf - - - - -
trunc - - - - -
truncl - - - - -
y0f - 2 1 1 1
y0 - 2 2 2 2
y0l - 1 1 3 -
y1f - 2 2 2 2
y1 - 2 3 3 3
y1l - 2 2 1 -
ynf - 3 2 2 2
yn - 2 3 3 3
ynl - 4 2 5 -

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