Next: , Previous: , Up: Mathematics   [Contents][Index]

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&middot;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 the 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.

• Each function with a floating-point result behaves as if it computes an infinite-precision result that is within a few ulp (in both real and complex parts, for functions with complex results) of the mathematically correct value of the function (interpreted together with ISO C or POSIX semantics for the function in question) at the exact value passed as the input. Exceptions are raised appropriately for this value and in accordance with IEEE 754 / ISO C / POSIX semantics, and it is then rounded according to the current rounding direction to the result that is returned to the user. errno may also be set (see Error Reporting by Mathematical Functions). (The “inexact” exception may be raised, or not raised, even if this is inconsistent with the infinite-precision value.)
• For the IBM long double format, as used on PowerPC GNU/Linux, the accuracy goal is weaker for input values not exactly representable in 106 bits of precision; it is as if the input value is some value within 0.5ulp of the value actually passed, where “ulp” is interpreted in terms of a fixed-precision 106-bit mantissa, but not necessarily the exact value actually passed with discontiguous mantissa bits.
• For the IBM long double format, functions whose results are fully specified by reference to corresponding IEEE 754 floating-point operations have the same accuracy goals as other functions, but with the error bound being the same as that for division (3ulp). Furthermore, “inexact” and “underflow” exceptions may be raised for all functions for any inputs, even where such exceptions are inconsistent with the returned value, since the underlying floating-point arithmetic has that property.
• Functions behave as if the infinite-precision result computed is zero, infinity or NaN if and only if that is the mathematically correct infinite-precision result. They behave as if the infinite-precision result computed always has the same sign as the mathematically correct result.
• If the mathematical result is more than a few ulp above the overflow threshold for the current rounding direction, the value returned is the appropriate overflow value for the current rounding direction, with the overflow exception raised.
• If the mathematical result has magnitude well below half the least subnormal magnitude, the returned value is either zero or the least subnormal (in each case, with the correct sign), according to the current rounding direction and with the underflow exception raised.
• Where the mathematical result underflows (before rounding) and is not exactly representable as a floating-point value, the function does not behave as if the computed infinite-precision result is an exact value in the subnormal range. This means that the underflow exception is raised other than possibly for cases where the mathematical result is very close to the underflow threshold and the function behaves as if it computes an infinite-precision result that does not underflow. (So there may be spurious underflow exceptions in cases where the underflowing result is exact, but not missing underflow exceptions in cases where it is inexact.)
• The GNU C Library does not aim for functions to satisfy other properties of the underlying mathematical function, such as monotonicity, where not implied by the above goals.
• All the above applies to both real and complex parts, for complex functions.

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

Next: Pseudo-Random Numbers, Previous: Special Functions, Up: Mathematics   [Contents][Index]