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