# FreeBSD Manual Pages

```MATH(3)			 BSD 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 informa-
tion 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'	ap-
pended.  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()
mation 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
Many of the routines to compute transcendental functions produce inaccu-
rate 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 argu-
ments to cos(), sin(), and	tan().

BSD			       December	7, 2017				   BSD
```

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | LIST OF FUNCTIONS | SEE ALSO | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=math&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>