1.\" Copyright (c) 1985 Regents of the University of California. 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 4. Neither the name of the University nor the names of its contributors 13.\" may be used to endorse or promote products derived from this software 14.\" without specific prior written permission. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26.\" SUCH DAMAGE. 27.\" 28.\" from: @(#)math.3 6.10 (Berkeley) 5/6/91 29.\" $FreeBSD$ 30.\" 31.Dd December 5, 2010 32.Dt MATH 3 33.Os 34.Sh NAME 35.Nm math 36.Nd "floating-point mathematical library" 37.Sh LIBRARY 38.Lb libm 39.Sh SYNOPSIS 40.In math.h 41.Sh DESCRIPTION 42The math library includes the following components: 43.Bl -column "<complex.h>" "polymorphic (type-generic) versions of functions" -compact -offset indent 44.In math.h Ta basic routines and real-valued functions 45.In complex.h Ta complex number support 46.In tgmath.h Ta polymorphic (type-generic) versions of functions 47.In fenv.h Ta routines to control rounding and exceptions 48.El 49The rest of this manual page describes the functions provided by 50.In math.h . 51Please consult 52.Xr complex 3 , 53.Xr tgmath 3 , 54and 55.Xr fenv 3 56for information on the other components. 57.Sh "LIST OF FUNCTIONS" 58Each of the following 59.Vt double 60functions has a 61.Vt float 62counterpart with an 63.Ql f 64appended to the name and a 65.Vt "long double" 66counterpart with an 67.Ql l 68appended. 69As an example, the 70.Vt float 71and 72.Vt "long double" 73counterparts of 74.Ft double 75.Fn acos "double x" 76are 77.Ft float 78.Fn acosf "float x" 79and 80.Ft "long double" 81.Fn acosl "long double x" , 82respectively. 83The classification macros and silent order predicates are type generic and 84should not be suffixed with 85.Ql f 86or 87.Ql l . 88.de Cl 89.Bl -column "isgreaterequal" "bessel function of the second kind of the order 0" 90.Em "Name Description" 91.. 92.Ss Algebraic Functions 93.Cl 94cbrt cube root 95fma fused multiply-add 96hypot Euclidean distance 97sqrt square root 98.El 99.Ss Classification Macros 100.Cl 101fpclassify classify a floating-point value 102isfinite determine whether a value is finite 103isinf determine whether a value is infinite 104isnan determine whether a value is \*(Na 105isnormal determine whether a value is normalized 106.El 107.Ss Exponent Manipulation Functions 108.Cl 109frexp extract exponent and mantissa 110ilogb extract exponent 111ldexp multiply by power of 2 112logb extract exponent 113scalbln adjust exponent 114scalbn adjust exponent 115.El 116.Ss Extremum- and Sign-Related Functions 117.Cl 118copysign copy sign bit 119fabs absolute value 120fdim positive difference 121fmax maximum function 122fmin minimum function 123signbit extract sign bit 124.El 125.Ss Not a Number Functions 126.Cl 127nan generate a quiet \*(Na 128.El 129.Ss Residue and Rounding Functions 130.Cl 131ceil integer no less than 132floor integer no greater than 133fmod positive remainder 134llrint round to integer in fixed-point format 135llround round to nearest integer in fixed-point format 136lrint round to integer in fixed-point format 137lround round to nearest integer in fixed-point format 138modf extract integer and fractional parts 139nearbyint round to integer (silent) 140nextafter next representable value 141nexttoward next representable value 142remainder remainder 143remquo remainder with partial quotient 144rint round to integer 145round round to nearest integer 146trunc integer no greater in magnitude than 147.El 148.Pp 149The 150.Fn ceil , 151.Fn floor , 152.Fn llround , 153.Fn lround , 154.Fn round , 155and 156.Fn trunc 157functions round in predetermined directions, whereas 158.Fn llrint , 159.Fn lrint , 160and 161.Fn rint 162round according to the current (dynamic) rounding mode. 163For more information on controlling the dynamic rounding mode, see 164.Xr fenv 3 165and 166.Xr fesetround 3 . 167.Ss Silent Order Predicates 168.Cl 169isgreater greater than relation 170isgreaterequal greater than or equal to relation 171isless less than relation 172islessequal less than or equal to relation 173islessgreater less than or greater than relation 174isunordered unordered relation 175.El 176.Ss Transcendental Functions 177.Cl 178acos inverse cosine 179acosh inverse hyperbolic cosine 180asin inverse sine 181asinh inverse hyperbolic sine 182atan inverse tangent 183atanh inverse hyperbolic tangent 184atan2 atan(y/x); complex argument 185cos cosine 186cosh hyperbolic cosine 187erf error function 188erfc complementary error function 189exp exponential base e 190exp2 exponential base 2 191expm1 exp(x)\-1 192j0 Bessel function of the first kind of the order 0 193j1 Bessel function of the first kind of the order 1 194jn Bessel function of the first kind of the order n 195lgamma log gamma function 196log natural logarithm 197log10 logarithm to base 10 198log1p log(1+x) 199log2 base 2 logarithm 200pow exponential x**y 201sin trigonometric function 202sinh hyperbolic function 203tan trigonometric function 204tanh hyperbolic function 205tgamma gamma function 206y0 Bessel function of the second kind of the order 0 207y1 Bessel function of the second kind of the order 1 208yn Bessel function of the second kind of the order n 209.El 210.Pp 211The routines 212in this section might not produce a result that is correctly rounded, 213so reproducible results cannot be guaranteed across platforms. 214For most of these functions, however, incorrect rounding occurs 215rarely, and then only in very-close-to-halfway cases. 216.Sh SEE ALSO 217.Xr complex 3 , 218.Xr fenv 3 , 219.Xr ieee 3 , 220.Xr tgmath 3 221.Sh HISTORY 222A math library with many of the present functions appeared in 223.At v7 . 224The library was substantially rewritten for 225.Bx 4.3 226to provide 227better accuracy and speed on machines supporting either VAX 228or IEEE 754 floating-point. 229Most of this library was replaced with FDLIBM, developed at Sun 230Microsystems, in 231.Fx 1.1.5 . 232Additional routines, including ones for 233.Vt float 234and 235.Vt long double 236values, were written for or imported into subsequent versions of FreeBSD. 237.Sh BUGS 238Some of the 239.Vt "long double" 240math functions in 241.St -isoC-99 242are not available. 243.Pp 244Many of the routines to compute transcendental functions produce 245inaccurate results in other than the default rounding mode. 246.Pp 247On the i386 platform, trigonometric argument reduction is not 248performed accurately for huge arguments, resulting in 249large errors 250for such arguments to 251.Fn cos , 252.Fn sin , 253and 254.Fn tan . 255