man.bsd.lv manual page server

Manual Page Search Parameters

MATH(3) Library Functions Manual MATH(3)

mathfloating-point mathematical library

library “libm”

#include <math.h>

The math library includes the following components:
<math.h> basic routines and real-valued functions
<complex.h> complex number support
<tgmath.h> polymorphic (type-generic) versions of functions
<fenv.h> routines to control rounding and exceptions
The rest of this manual page describes the functions provided by <math.h>. Please consult complex(3), tgmath(3), and fenv(3) for information on the other components.

Each of the following double functions has a float counterpart with an ‘f’ appended to the name and a long double counterpart with an ‘l’ appended. As an example, the float and long double counterparts of double (double x) are float (float x) and long double (long double x), respectively. The classification macros and silent order predicates are type generic and should not be suffixed with ‘f’ or ‘l’.

Description
cbrt cube root
fma fused multiply-add
hypot Euclidean distance
sqrt square root

Description
fpclassify classify a floating-point value
isfinite determine whether a value is finite
isinf determine whether a value is infinite
isnan determine whether a value is NaN
isnormal determine whether a value is normalized

Description
frexp extract exponent and mantissa
ilogb extract exponent
ldexp multiply by power of 2
logb extract exponent
scalbln adjust exponent
scalbn adjust exponent
Description
copysign copy sign bit
fabs absolute value
fdim positive difference
fmax maximum function
fmin minimum function
signbit extract sign bit

Description
nan generate a quiet NaN

Description
ceil integer no less than
floor integer no greater than
fmod positive remainder
llrint round to integer in fixed-point format
llround round to nearest integer in fixed-point format
lrint round to integer in fixed-point format
lround round to nearest integer in fixed-point format
modf extract integer and fractional parts
nearbyint round to integer (silent)
nextafter next representable value
nexttoward next representable value
remainder remainder
remquo remainder with partial quotient
rint round to integer
round round to nearest integer
trunc integer no greater in magnitude than

The (), (), (), (), (), and () functions round in predetermined directions, whereas (), (), and () round according to the current (dynamic) rounding mode. For more information on controlling the dynamic rounding mode, see fenv(3) and fesetround(3).

Description
isgreater greater than relation
isgreaterequal greater than or equal to relation
isless less than relation
islessequal less than or equal to relation
islessgreater less than or greater than relation
isunordered unordered relation

Description
acos inverse cosine
acosh inverse hyperbolic cosine
asin inverse sine
asinh inverse hyperbolic sine
atan inverse tangent
atanh inverse hyperbolic tangent
atan2 atan(y/x); complex argument
cos cosine
cosh hyperbolic cosine
erf error function
erfc complementary error function
exp exponential base e
exp2 exponential base 2
expm1 exp(x)-1
j0 Bessel function of the first kind of the order 0
j1 Bessel function of the first kind of the order 1
jn Bessel function of the first kind of the order n
lgamma log gamma function
log natural logarithm
log10 logarithm to base 10
log1p log(1+x)
log2 base 2 logarithm
pow exponential x**y
sin trigonometric function
sinh hyperbolic function
tan trigonometric function
tanh hyperbolic function
tgamma gamma function
y0 Bessel function of the second kind of the order 0
y1 Bessel function of the second kind of the order 1
yn Bessel function of the second kind of the order n

The routines in this section might not produce a result that is correctly rounded, so reproducible results cannot be guaranteed across platforms. For most of these functions, however, incorrect rounding occurs rarely, and then only in very-close-to-halfway cases.

complex(3), fenv(3), ieee(3), tgmath(3)

A math library with many of the present functions appeared in Version 7 AT&T UNIX. The library was substantially rewritten for 4.3BSD to provide better accuracy and speed on machines supporting either VAX or IEEE 754 floating-point. Most of this library was replaced with FDLIBM, developed at Sun Microsystems, in FreeBSD 1.1.5. Additional routines, including ones for float and long double values, were written for or imported into subsequent versions of FreeBSD.

Many of the routines to compute transcendental functions produce inaccurate results in other than the default rounding mode.

On the i386 platform, trigonometric argument reduction is not performed accurately for huge arguments, resulting in large errors for such arguments to cos(), sin(), and tan().

December 7, 2017 FreeBSD-12.0