PML | fdlibm | |||||||
---|---|---|---|---|---|---|---|---|
Name | Double | Float | Long Double | Double | Float | Long Double | Description | Comments |
Trigonometric functions. | ||||||||
acos | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Arc cosine of X. | |
asin | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Arc sine of X. | |
atan | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Arc tangent of X. | |
atan2 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Arc tangent of Y/X. | |
cos | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Cosine of X. | |
sin | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Sine of X. | |
tan | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Tangent of X. | |
sincos | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Cosine and sine of X. | |
Hyperbolic functions. | ||||||||
cosh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic cosine of X. | |
sinh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic sine of X. | |
tanh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic tangent of X. | |
acosh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic arc cosine of X. | |
asinh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic arc sine of X. | |
atanh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic arc tangent of X. | |
Exponential and logarithmic functions. | ||||||||
exp | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Exponential function of X. | when using PML, you may get unresolved externals when using the softfloat function, because ldexp and frexp are not implemented |
exp2 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Compute base-2 exponential of X. | |
exp10 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Compute exponent to base ten. | Same as pow10() |
log | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Natural logarithm of X. | |
log2 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Compute base-2 logarithm of X. | |
log10 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Base-ten logarithm of X. | |
frexp | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Break VALUE into a normalized fraction and an integral power of 2. | double version also implemented in mintlib |
ldexp | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | X times (two to the EXP power). | double version also implemented in mintlib |
modf | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Break VALUE into integral and fractional parts. | |
expm1 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return exp(X) - 1. | |
log1p | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return log(1 + X). | |
logb | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the base 2 signed integral exponent of X. | |
Power functions. | ||||||||
pow | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return X to the Y power. | |
pow2 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Compute base-2 exponential of X. | Same as exp2() |
pow10 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the value of 10 raised to the power x | Same as exp10() |
sqrt | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the square root of X. | when using PML, you may get unresolved externals when using the softfloat function, because frexp is not implemented |
hypot | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return sqrt(X*X + Y*Y). | |
cbrt | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the cube root of X. | |
Nearest integer, absolute value, and remainder functions. | ||||||||
ceil | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Smallest integral value not less than X. | when using PML, you may get unresolved externals when using the softfloat function, because modf is not implemented |
fabs | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Absolute value of X. | |
floor | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Largest integer not greater than X. | when using PML, you may get unresolved externals when using the softfloat function, because modf is not implemented |
fmod | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Floating-point modulo remainder of X/Y. | |
finite | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return nonzero if VALUE is finite and not NaN. | double version also implemented in mintlib |
drem | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the remainder of X/Y. | Obsolete synonym for remainder |
significand | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the fractional part of X after dividing out `ilogb (X)'. | |
copysign | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return X with its signed changed to Y's. | |
nan | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return representation of qNaN for double type. | Implemented using GCC builtin |
Bessel functions. | ||||||||
j0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Bessel function of the first kind of order 0 | |
j1 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Bessel function of the first kind of order 1 | |
jn | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Bessel function of the first kind of order n | |
y0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Bessel function of the second kind of order 0 | |
y1 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Bessel function of the second kind of order 1 | |
yn | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Bessel function of the second kind of order n | |
Error and gamma functions. | ||||||||
erf | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | error function | |
erfc | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | complementary error function | |
lgamma | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | log gamma function | |
tgamma | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | true gamma function | |
gamma | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | (logarithm of the) gamma function | |
lgamma_r | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | reentrant version of lgamma | |
ISO C99 rounding functions. | ||||||||
rint | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the integer nearest X in the direction of the prevailing rounding mode. | when using PML, you may get unresolved externals when using the softfloat function, because modf is not implemented |
nextafter | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return X + epsilon if X < Y, X - epsilon if X > Y. | |
nexttoward | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return X + epsilon if X < Y, X - epsilon if X > Y. | |
nextdown | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | return next floating-point number toward negative infinity | |
nextup | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | return next floating-point number toward positive infinity | |
remainder | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the remainder of integer divison X / Y with infinite precision. | |
scalb | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return X times (2 to the Nth power). | |
scalbn | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return X times (2 to the Nth power). | |
scalbln | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return X times (2 to the Nth power). | Overkill for m68k. The int argument to scalbn() will never exceed the maximum possible range. |
ilogb | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the binary exponent of X, which must be nonzero. | |
llogb | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Like ilogb, but returning long int. | |
nearbyint | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to integral value in floating-point format using current rounding direction, but do not raise inexact exception. | Same as rint |
round | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to nearest integral value, rounding halfway cases away from zero. | |
trunc | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to the integral value in floating-point format nearest but not larger in magnitude. | |
remquo | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Compute remainder of X and Y and put in *QUO a value with sign of x/y and magnitude congruent `mod 2^n' to the magnitude of the integral quotient x/y, with n >= 3. | |
Conversion functions. | ||||||||
lrint | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to nearest integral value according to current rounding direction. | |
llrint | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Like lrint, but returning long long int. | |
lround | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to nearest integral value, rounding halfway cases away from zero. | |
llround | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Like lround, but returning long long int. | |
fdim | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return positive difference between X and Y. | |
fmax | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return maximum numeric value from X and Y. | |
fmin | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return minimum numeric value from X and Y. | |
fma | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Multiply-add function computed as a ternary operation. | |
roundeven | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to nearest integer value, rounding halfway cases to even. | |
fromfp | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to nearest signed integer value, not raising inexact, with control of rounding direction and width of result. | |
ufromfp | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to nearest unsigned integer value, not raising inexact, with control of rounding direction and width of result. | |
fromfpx | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to nearest signed integer value, raising inexact for non-integers, with control of rounding direction and width of result. | |
ufromfpx | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Round X to nearest unsigned integer value, raising inexact for non-integers, with control of rounding direction and width of result. | |
Classification functions. | ||||||||
fpclassify | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return number of classification appropriate for X. | |
signbit | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return nonzero value if sign of X is negative. | double version also implemented in mintlib |
isfinite | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return nonzero value if X is not +-Inf or NaN. | double version also implemented in mintlib |
isnormal | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return nonzero value if X is neither zero, subnormal, Inf, nor NaN. | Implemented as macro |
isnan | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return nonzero if VALUE is not a number. | double version also implemented in mintlib |
isinf | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. | double version also implemented in mintlib |
issignaling | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return nonzero value if X is a signaling NaN. | |
issubnormal | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return nonzero value if X is subnormal. | Implemented as macro |
iszero | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return nonzero value if X is zero. | |
iscanonical | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return nonzero value if X is canonical. | |
relational tests without exception for NaN. | ||||||||
isgreater | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | determines (x) > (y) without an exception if x or y is NaN. | Implemented using GCC builtin |
isgreaterequal | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | determines (x) >= (y) without an exception if x or y is NaN. | Implemented using GCC builtin |
isless | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | determines (x) < (y) without an exception if x or y is NaN. | Implemented using GCC builtin |
islessequal | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | determines (x) <= (y) without an exception if x or y is NaN. | Implemented using GCC builtin |
islessgreater | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | determines (x) < (y) || (x) > (y) without an exception if x or y is NaN. This macro is not equivalent to x != y because that expression is true if x or y is NaN. | Implemented using GCC builtin |
isunordered | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | determines whether its arguments are unordered, that is, whether at least one of the arguments is a NaN. | Implemented using GCC builtin |
iseqsig | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return X == Y but raising "invalid" and setting errno if X or Y is a NaN. | Implemented using GCC builtin |
Miscellaneous functions. | ||||||||
fmaxmag | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return value with maximum magnitude. | |
fminmag | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return value with minimum magnitude. | |
totalorder | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Total order operation. | |
totalordermag | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Total order operation on absolute values. | |
canonicalize | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Canonicalize floating-point representation. | |
getpayload | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Get NaN payload. | |
setpayload | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Set quiet NaN payload. | |
setpayloadsig | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Set signaling NaN payload. | |
matherr | ![]() | ![]() | SVID math library exception handling | Deprecated in favour of math_error | ||||
math_error | ![]() | ![]() | detecting errors from mathematical functions | Partly implemented in fdlibm. Since most of the functions are derived from glibc, see the linux manpage for notes | ||||
Exception handling. | ||||||||
feclearexcept | ![]() | ![]() | Clear the supported exceptions represented by EXCEPTS. | |||||
fegetexceptflag | ![]() | ![]() | Store implementation-defined representation of the exception flags indicated by EXCEPTS in the object pointed to by FLAGP. | |||||
feraiseexcept | ![]() | ![]() | Raise the supported exceptions represented by EXCEPTS. | |||||
fesetexceptflag | ![]() | ![]() | Set the supported exception flags represented by EXCEPTS, without causing enabled traps to be taken. | |||||
fetestexcept | ![]() | ![]() | Determine which of subset of the exceptions specified by EXCEPTS are currently set. | |||||
fetestexceptflag | ![]() | ![]() | Determine which of subset of the exceptions specified by EXCEPTS are set in *FLAGP. | |||||
feenableexcept | ![]() | ![]() | Enable individual exceptions. Will not enable more exceptions than EXCEPTS specifies. Returns the previous enabled exceptions if all exceptions are successfully set, otherwise returns -1. | |||||
fedisableexcept | ![]() | ![]() | Disable individual exceptions. Will not disable more exceptions than EXCEPTS specifies. Returns the previous enabled exceptions if all exceptions are successfully disabled, otherwise returns -1. | |||||
fegetexcept | ![]() | ![]() | Return enabled exceptions. | |||||
Rounding control. | ||||||||
fegetround | ![]() | ![]() | Get current rounding direction. | |||||
fesetround | ![]() | ![]() | Establish the rounding direction represented by ROUND. | |||||
Floating-point environment. | ||||||||
fegetenv | ![]() | ![]() | Store the current floating-point environment in the object pointed to by ENVP. | |||||
feholdexcept | ![]() | ![]() | Save the current environment in the object pointed to by ENVP, clear exception flags and install a non-stop mode (if available) for all exceptions. | |||||
fesetenv | ![]() | ![]() | Establish the floating-point environment represented by the object pointed to by ENVP. | |||||
feupdateenv | ![]() | ![]() | Save current exceptions in temporary storage, install environment represented by object pointed to by ENVP and raise exceptions according to saved exceptions. | |||||
Control modes. | ||||||||
fegetmode | ![]() | ![]() | Store the current floating-point control modes in the object pointed to by MODEP. | |||||
fesetmode | ![]() | ![]() | Establish the floating-point control modes represented by the object pointed to by MODEP. | |||||
Complex Trigonometric functions. | ||||||||
cacos | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Arc cosine of X. | |
casin | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Arc sine of X. | |
catan | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Arc tangent of X. | |
ccos | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Cosine of X. | |
csin | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Sine of X. | |
ctan | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Tangent of X. | |
Complex Hyperbolic functions. | ||||||||
ccosh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic cosine of X. | |
csinh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic sine of X. | |
ctanh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic tangent of X. | |
cacosh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic arc cosine of X. | |
casinh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic arc sine of X. | |
catanh | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Hyperbolic arc tangent of X. | |
Complex Exponential and logarithmic functions. | ||||||||
cexp | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Exponential function of X. | |
clog | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Natural logarithm of X. | |
clog10 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Base-ten logarithm of X. | |
Complex Power functions. | ||||||||
cpow | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return X to the Y power. | |
csqrt | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Return the square root of X. | |
crcp | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | complex reciprocal of z | Non-standard function |
Absolute value, conjugates, and projection. | ||||||||
cabs | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Absolute value of Z. | |
carg | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Argument value of Z. | |
conj | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Complex conjugate of Z. | |
cproj | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Projection of Z onto the Riemann sphere. | |
cimag | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Imaginary part of Z. | |
creal | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | Real part of Z. |