math(3)

NAME

math - floating-point mathematical library

LIBRARY

Math Library (libm, -lm)

SYNOPSIS

#include <math.h>

DESCRIPTION

These functions constitute the C math library.

LIST OF FUNCTIONS

Each of the following double functions has a float counter
part with an
`f' appended to the name and a long double counterpart with
an `l'
appended. As an example, the float and long double counter
parts of
double acos(double x) are float acosf(float x) and long
double acosl(long
double x), respectively.
Algebraic Functions

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

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
scalbln adjust exponent
scalbn adjust 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
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)
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
Unlike the algebraic functions listed earlier, the routines
in this section may 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 veryclose-to-halfway cases.

SEE ALSO

fenv(3), ieee(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

The log2() and nan() functions are missing, and many func
tions are not
available in their long double variants.
Many of the routines to compute transcendental functions
produce inaccurate results in other than the default rounding mode.
On some architectures, trigonometric argument reduction is
not performed
accurately, resulting in errors greater than 1 ulp for large
arguments to
cos(), sin(), and tan().
BSD April 5, 2005
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout