| .\" Copyright (c) 1985 Regents of the University of California. |
| .\" All rights reserved. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" 3. All advertising materials mentioning features or use of this software |
| .\" must display the following acknowledgement: |
| .\" This product includes software developed by the University of |
| .\" California, Berkeley and its contributors. |
| .\" 4. Neither the name of the University nor the names of its contributors |
| .\" may be used to endorse or promote products derived from this software |
| .\" without specific prior written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" |
| .\" from: @(#)math.3 6.10 (Berkeley) 5/6/91 |
| .\" $FreeBSD: src/lib/msun/man/math.3,v 1.27 2005/11/17 13:00:00 ru Exp $ |
| .\" |
| .Dd November 6, 2005 |
| .Dt MATH 3 |
| .Os |
| .if n \{\ |
| .char \[sr] "sqrt |
| .\} |
| .Sh NAME |
| .Nm math |
| .Nd "floating-point mathematical library" |
| .Sh LIBRARY |
| .Lb libm |
| .Sh SYNOPSIS |
| .In math.h |
| .Sh DESCRIPTION |
| These functions constitute the C math library. |
| .Sh "LIST OF FUNCTIONS" |
| Each of the following |
| .Vt double |
| functions has a |
| .Vt float |
| counterpart with an |
| .Ql f |
| appended to the name and a |
| .Vt "long double" |
| counterpart with an |
| .Ql l |
| appended. |
| As an example, the |
| .Vt float |
| and |
| .Vt "long double" |
| counterparts of |
| .Ft double |
| .Fn acos "double x" |
| are |
| .Ft float |
| .Fn acosf "float x" |
| and |
| .Ft "long double" |
| .Fn acosl "long double x" , |
| respectively. |
| .de Cl |
| .Bl -column "isgreaterequal" "bessel function of the second kind of the order 0" |
| .Em "Name Description" |
| .. |
| .Ss Algebraic Functions |
| .Cl |
| cbrt cube root |
| fma fused multiply-add |
| hypot Euclidean distance |
| sqrt square root |
| .El |
| .Ss Classification Functions |
| .Cl |
| 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 \*(Na |
| isnormal determine whether a value is normalized |
| .El |
| .Ss Exponent Manipulation Functions |
| .Cl |
| frexp extract exponent and mantissa |
| ilogb extract exponent |
| ldexp multiply by power of 2 |
| logb extract exponent |
| scalbln adjust exponent |
| scalbn adjust exponent |
| .El |
| .Ss Extremum- and Sign-Related Functions |
| .Cl |
| copysign copy sign bit |
| fabs absolute value |
| fdim positive difference |
| fmax maximum function |
| fmin minimum function |
| signbit extract sign bit |
| .El |
| .\" .Ss Not a Number |
| .\" .Cl |
| .\" nan return quiet \*(Na) 0 |
| .\" .El |
| .Ss Residue and Rounding Functions |
| .Cl |
| 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 |
| .El |
| .Pp |
| The |
| .Fn ceil , |
| .Fn floor , |
| .Fn llround , |
| .Fn lround , |
| .Fn round , |
| and |
| .Fn trunc |
| functions round in predetermined directions, whereas |
| .Fn llrint , |
| .Fn lrint , |
| and |
| .Fn rint |
| round according to the current (dynamic) rounding mode. |
| For more information on controlling the dynamic rounding mode, see |
| .Xr fenv 3 |
| and |
| .Xr fesetround 3 . |
| .Ss Silent Order Predicates |
| .Cl |
| 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 |
| .El |
| .Ss Transcendental Functions |
| .Cl |
| 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 |
| .El |
| .Pp |
| 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 very-close-to-halfway cases. |
| .Sh SEE ALSO |
| .Xr fenv 3 , |
| .Xr ieee 3 |
| .Sh HISTORY |
| A math library with many of the present functions appeared in |
| .At v7 . |
| The library was substantially rewritten for |
| .Bx 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. |
| .Sh BUGS |
| The |
| .Fn log2 |
| and |
| .Fn nan |
| functions are missing, and many functions are not available in their |
| .Vt "long double" |
| variants. |
| .Pp |
| Many of the routines to compute transcendental functions produce |
| inaccurate results in other than the default rounding mode. |
| .Pp |
| On some architectures, trigonometric argument reduction is not |
| performed accurately, resulting in errors greater than 1 |
| .Em ulp |
| for large arguments to |
| .Fn cos , |
| .Fn sin , |
| and |
| .Fn tan . |