# Man

Command Section
```MATH(3)                FreeBSD Library Functions Manual                MATH(3)

NAME
math - floating-point mathematical library

LIBRARY
Math Library (libm, -lm)

SYNOPSIS
#include <math.h>

DESCRIPTION
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.

LIST OF FUNCTIONS
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 acos(double x) are float acosf(float x) and long double acosl(long
double x), respectively.  The classification macros and silent order
predicates are type generic and should not be suffixed with `f' or `l'.

Algebraic Functions
Name              Description
cbrt              cube root
hypot             Euclidean distance
sqrt              square root

Classification Macros
Name              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

Exponent Manipulation Functions
Name              Description
frexp             extract exponent and mantissa
ilogb             extract exponent
ldexp             multiply by power of 2
logb              extract exponent

Extremum- and Sign-Related Functions
Name              Description
copysign          copy sign bit
fabs              absolute value
fdim              positive difference
fmax              maximum function
fmin              minimum function
signbit           extract sign bit

Not a Number Functions
Name              Description
nan               generate a quiet NaN

Residue and Rounding Functions
Name              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 ceil(), floor(), llround(), lround(), round(), and trunc() functions
round in predetermined directions, whereas llrint(), lrint(), and rint()
round according to the current (dynamic) rounding mode.  For more
information on controlling the dynamic rounding mode, see fenv(3) and
fesetround(3).

Silent Order Predicates
Name              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

Transcendental Functions
Name              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)

HISTORY
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.

BUGS
Some of the long double math functions in ISO/IEC 9899:1999 (``ISO C99'')
are not available.

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().

FreeBSD 11.1-RELEASE-p4        December 5, 2010        FreeBSD 11.1-RELEASE-p4
```
Command Section