math.3 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  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: src/lib/msun/man/math.3,v 1.34 2011/10/17 06:10:32 das Exp $
  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
  42. The 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
  49. The rest of this manual page describes the functions provided by
  50. .In math.h .
  51. Please consult
  52. .Xr complex 3 ,
  53. .Xr tgmath 3 ,
  54. and
  55. .Xr fenv 3
  56. for information on the other components.
  57. .Sh "LIST OF FUNCTIONS"
  58. Each of the following
  59. .Vt double
  60. functions has a
  61. .Vt float
  62. counterpart with an
  63. .Ql f
  64. appended to the name and a
  65. .Vt "long double"
  66. counterpart with an
  67. .Ql l
  68. appended.
  69. As an example, the
  70. .Vt float
  71. and
  72. .Vt "long double"
  73. counterparts of
  74. .Ft double
  75. .Fn acos "double x"
  76. are
  77. .Ft float
  78. .Fn acosf "float x"
  79. and
  80. .Ft "long double"
  81. .Fn acosl "long double x" ,
  82. respectively.
  83. The classification macros and silent order predicates are type generic and
  84. should not be suffixed with
  85. .Ql f
  86. or
  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
  94. cbrt cube root
  95. fma fused multiply-add
  96. hypot Euclidean distance
  97. sqrt square root
  98. .El
  99. .Ss Classification Macros
  100. .Cl
  101. fpclassify classify a floating-point value
  102. isfinite determine whether a value is finite
  103. isinf determine whether a value is infinite
  104. isnan determine whether a value is \*(Na
  105. isnormal determine whether a value is normalized
  106. .El
  107. .Ss Exponent Manipulation Functions
  108. .Cl
  109. frexp extract exponent and mantissa
  110. ilogb extract exponent
  111. ldexp multiply by power of 2
  112. logb extract exponent
  113. scalbln adjust exponent
  114. scalbn adjust exponent
  115. .El
  116. .Ss Extremum- and Sign-Related Functions
  117. .Cl
  118. copysign copy sign bit
  119. fabs absolute value
  120. fdim positive difference
  121. fmax maximum function
  122. fmin minimum function
  123. signbit extract sign bit
  124. .El
  125. .Ss Not a Number Functions
  126. .Cl
  127. nan generate a quiet \*(Na
  128. .El
  129. .Ss Residue and Rounding Functions
  130. .Cl
  131. ceil integer no less than
  132. floor integer no greater than
  133. fmod positive remainder
  134. llrint round to integer in fixed-point format
  135. llround round to nearest integer in fixed-point format
  136. lrint round to integer in fixed-point format
  137. lround round to nearest integer in fixed-point format
  138. modf extract integer and fractional parts
  139. nearbyint round to integer (silent)
  140. nextafter next representable value
  141. nexttoward next representable value
  142. remainder remainder
  143. remquo remainder with partial quotient
  144. rint round to integer
  145. round round to nearest integer
  146. trunc integer no greater in magnitude than
  147. .El
  148. .Pp
  149. The
  150. .Fn ceil ,
  151. .Fn floor ,
  152. .Fn llround ,
  153. .Fn lround ,
  154. .Fn round ,
  155. and
  156. .Fn trunc
  157. functions round in predetermined directions, whereas
  158. .Fn llrint ,
  159. .Fn lrint ,
  160. and
  161. .Fn rint
  162. round according to the current (dynamic) rounding mode.
  163. For more information on controlling the dynamic rounding mode, see
  164. .Xr fenv 3
  165. and
  166. .Xr fesetround 3 .
  167. .Ss Silent Order Predicates
  168. .Cl
  169. isgreater greater than relation
  170. isgreaterequal greater than or equal to relation
  171. isless less than relation
  172. islessequal less than or equal to relation
  173. islessgreater less than or greater than relation
  174. isunordered unordered relation
  175. .El
  176. .Ss Transcendental Functions
  177. .Cl
  178. acos inverse cosine
  179. acosh inverse hyperbolic cosine
  180. asin inverse sine
  181. asinh inverse hyperbolic sine
  182. atan inverse tangent
  183. atanh inverse hyperbolic tangent
  184. atan2 atan(y/x); complex argument
  185. cos cosine
  186. cosh hyperbolic cosine
  187. erf error function
  188. erfc complementary error function
  189. exp exponential base e
  190. exp2 exponential base 2
  191. expm1 exp(x)\-1
  192. j0 Bessel function of the first kind of the order 0
  193. j1 Bessel function of the first kind of the order 1
  194. jn Bessel function of the first kind of the order n
  195. lgamma log gamma function
  196. log natural logarithm
  197. log10 logarithm to base 10
  198. log1p log(1+x)
  199. log2 base 2 logarithm
  200. pow exponential x**y
  201. sin trigonometric function
  202. sinh hyperbolic function
  203. tan trigonometric function
  204. tanh hyperbolic function
  205. tgamma gamma function
  206. y0 Bessel function of the second kind of the order 0
  207. y1 Bessel function of the second kind of the order 1
  208. yn Bessel function of the second kind of the order n
  209. .El
  210. .Pp
  211. The routines
  212. in this section might not produce a result that is correctly rounded,
  213. so reproducible results cannot be guaranteed across platforms.
  214. For most of these functions, however, incorrect rounding occurs
  215. rarely, 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
  222. A math library with many of the present functions appeared in
  223. .At v7 .
  224. The library was substantially rewritten for
  225. .Bx 4.3
  226. to provide
  227. better accuracy and speed on machines supporting either VAX
  228. or IEEE 754 floating-point.
  229. Most of this library was replaced with FDLIBM, developed at Sun
  230. Microsystems, in
  231. .Fx 1.1.5 .
  232. Additional routines, including ones for
  233. .Vt float
  234. and
  235. .Vt long double
  236. values, were written for or imported into subsequent versions of FreeBSD.
  237. .Sh BUGS
  238. Some of the
  239. .Vt "long double"
  240. math functions in
  241. .St -isoC-99
  242. are not available.
  243. .Pp
  244. Many of the routines to compute transcendental functions produce
  245. inaccurate results in other than the default rounding mode.
  246. .Pp
  247. On the i386 platform, trigonometric argument reduction is not
  248. performed accurately for huge arguments, resulting in
  249. large errors
  250. for such arguments to
  251. .Fn cos ,
  252. .Fn sin ,
  253. and
  254. .Fn tan .