xref: /freebsd/lib/msun/man/math.3 (revision 2b743a9e9ddc6736208dc8ca1ce06ce64ad20a19)
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 November 6, 2005
32.Dt MATH 3
33.Os
34.if n \{\
35.char \[sr] "sqrt
36.\}
37.Sh NAME
38.Nm math
39.Nd "floating-point mathematical library"
40.Sh LIBRARY
41.Lb libm
42.Sh SYNOPSIS
43.In math.h
44.Sh DESCRIPTION
45These functions constitute the C math library.
46.Sh "LIST OF FUNCTIONS"
47Each of the following
48.Vt double
49functions has a
50.Vt float
51counterpart with an
52.Ql f
53appended to the name and a
54.Vt "long double"
55counterpart with an
56.Ql l
57appended.
58As an example, the
59.Vt float
60and
61.Vt "long double"
62counterparts of
63.Ft double
64.Fn acos "double x"
65are
66.Ft float
67.Fn acosf "float x"
68and
69.Ft "long double"
70.Fn acosl "long double x" ,
71respectively.
72.de Cl
73.Bl -column "isgreaterequal" "bessel function of the second kind of the order 0"
74.Em "Name	Description"
75..
76.Ss Algebraic Functions
77.Cl
78cbrt	cube root
79fma	fused multiply-add
80hypot	Euclidean distance
81sqrt	square root
82.El
83.Ss Classification Functions
84.Cl
85fpclassify	classify a floating-point value
86isfinite	determine whether a value is finite
87isinf	determine whether a value is infinite
88isnan	determine whether a value is \*(Na
89isnormal	determine whether a value is normalized
90.El
91.Ss Exponent Manipulation Functions
92.Cl
93frexp	extract exponent and mantissa
94ilogb	extract exponent
95ldexp	multiply by power of 2
96logb	extract exponent
97scalbln	adjust exponent
98scalbn	adjust exponent
99.El
100.Ss Extremum- and Sign-Related Functions
101.Cl
102copysign	copy sign bit
103fabs	absolute value
104fdim	positive difference
105fmax	maximum function
106fmin	minimum function
107signbit	extract sign bit
108.El
109.\" .Ss Not a Number
110.\" .Cl
111.\" nan	return quiet \*(Na)	0
112.\" .El
113.Ss Residue and Rounding Functions
114.Cl
115ceil	integer no less than
116floor	integer no greater than
117fmod	positive remainder
118llrint	round to integer in fixed-point format
119llround	round to nearest integer in fixed-point format
120lrint	round to integer in fixed-point format
121lround	round to nearest integer in fixed-point format
122modf	extract integer and fractional parts
123nearbyint	round to integer (silent)
124nextafter	next representable value
125nexttoward	next representable value
126remainder	remainder
127remquo	remainder with partial quotient
128rint	round to integer
129round	round to nearest integer
130trunc	integer no greater in magnitude than
131.El
132.Pp
133The
134.Fn ceil ,
135.Fn floor ,
136.Fn llround ,
137.Fn lround ,
138.Fn round ,
139and
140.Fn trunc
141functions round in predetermined directions, whereas
142.Fn llrint ,
143.Fn lrint ,
144and
145.Fn rint
146round according to the current (dynamic) rounding mode.
147For more information on controlling the dynamic rounding mode, see
148.Xr fenv 3
149and
150.Xr fesetround 3 .
151.Ss Silent Order Predicates
152.Cl
153isgreater	greater than relation
154isgreaterequal	greater than or equal to relation
155isless	less than relation
156islessequal	less than or equal to relation
157islessgreater	less than or greater than relation
158isunordered	unordered relation
159.El
160.Ss Transcendental Functions
161.Cl
162acos	inverse cosine
163acosh	inverse hyperbolic cosine
164asin	inverse sine
165asinh	inverse hyperbolic sine
166atan	inverse tangent
167atanh	inverse hyperbolic tangent
168atan2	atan(y/x); complex argument
169cos	cosine
170cosh	hyperbolic cosine
171erf	error function
172erfc	complementary error function
173exp	exponential base e
174exp2	exponential base 2
175expm1	exp(x)\-1
176j0	Bessel function of the first kind of the order 0
177j1	Bessel function of the first kind of the order 1
178jn	Bessel function of the first kind of the order n
179lgamma	log gamma function
180log	natural logarithm
181log10	logarithm to base 10
182log1p	log(1+x)
183.\" log2	base 2 logarithm
184pow	exponential x**y
185sin	trigonometric function
186sinh	hyperbolic function
187tan	trigonometric function
188tanh	hyperbolic function
189tgamma	gamma function
190y0	Bessel function of the second kind of the order 0
191y1	Bessel function of the second kind of the order 1
192yn	Bessel function of the second kind of the order n
193.El
194.Pp
195Unlike the algebraic functions listed earlier, the routines
196in this section may not produce a result that is correctly rounded,
197so reproducible results cannot be guaranteed across platforms.
198For most of these functions, however, incorrect rounding occurs
199rarely, and then only in very-close-to-halfway cases.
200.Sh SEE ALSO
201.Xr fenv 3 ,
202.Xr ieee 3
203.Sh HISTORY
204A math library with many of the present functions appeared in
205.At v7 .
206The library was substantially rewritten for
207.Bx 4.3
208to provide
209better accuracy and speed on machines supporting either VAX
210or IEEE 754 floating-point.
211Most of this library was replaced with FDLIBM, developed at Sun
212Microsystems, in
213.Fx 1.1.5 .
214Additional routines, including ones for
215.Vt float
216and
217.Vt long double
218values, were written for or imported into subsequent versions of FreeBSD.
219.Sh BUGS
220The
221.Fn log2
222and
223.Fn nan
224functions are missing, and many functions are not available in their
225.Vt "long double"
226variants.
227.Pp
228Many of the routines to compute transcendental functions produce
229inaccurate results in other than the default rounding mode.
230.Pp
231On some architectures, trigonometric argument reduction is not
232performed accurately, resulting in errors greater than 1
233.Em ulp
234for large arguments to
235.Fn cos ,
236.Fn sin ,
237and
238.Fn tan .
239