Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  MATH (3)


math - floating-point mathematical library


     Algebraic Functions
     Classification Macros
     Exponent Manipulation Functions
     Extremum- and Sign-Related Functions
     Not a Number Functions
     Residue and Rounding Functions
     Silent Order Predicates
     Transcendental Functions
See Also


.Lb libm


.In math.h


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


Each of the following
.Vt double functions has a
.Vt float counterpart with an f’ appended to the name and a
.Vt long double counterpart with an l’ appended. As an example, the
.Vt float and
.Vt 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 fma     fused multiply-add 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 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

    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)


A math library with many of the present functions appeared in AT&T v7 . The library was substantially rewritten for BSD 4.3 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
.Fx 1.1.5 . Additional routines, including ones for
.Vt float and
.Vt long double values, were written for or imported into subsequent versions of FreeBSD.


Some of the
.Vt long double math functions in -isoC-99 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.

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.