3 <meta http-equiv=
"Content-Type" content=
"text/html; charset=US-ASCII">
4 <title>C99 C Functions
</title>
5 <link rel=
"stylesheet" href=
"../math.css" type=
"text/css">
6 <meta name=
"generator" content=
"DocBook XSL Stylesheets V1.77.1">
7 <link rel=
"home" href=
"../index.html" title=
"Math Toolkit 2.5.1">
8 <link rel=
"up" href=
"../extern_c.html" title='Chapter
 7.
 TR1 and C99 external
"C" Functions'
>
9 <link rel=
"prev" href=
"main_tr1.html" title=
"C99 and TR1 C Functions Overview">
10 <link rel=
"next" href=
"tr1_ref.html" title=
"TR1 C Functions Quick Reference">
12 <body bgcolor=
"white" text=
"black" link=
"#0000FF" vlink=
"#840084" alink=
"#0000FF">
13 <table cellpadding=
"2" width=
"100%"><tr>
14 <td valign=
"top"><img alt=
"Boost C++ Libraries" width=
"277" height=
"86" src=
"../../../../../boost.png"></td>
15 <td align=
"center"><a href=
"../../../../../index.html">Home
</a></td>
16 <td align=
"center"><a href=
"../../../../../libs/libraries.htm">Libraries
</a></td>
17 <td align=
"center"><a href=
"http://www.boost.org/users/people.html">People
</a></td>
18 <td align=
"center"><a href=
"http://www.boost.org/users/faq.html">FAQ
</a></td>
19 <td align=
"center"><a href=
"../../../../../more/index.htm">More
</a></td>
22 <div class=
"spirit-nav">
23 <a accesskey=
"p" href=
"main_tr1.html"><img src=
"../../../../../doc/src/images/prev.png" alt=
"Prev"></a><a accesskey=
"u" href=
"../extern_c.html"><img src=
"../../../../../doc/src/images/up.png" alt=
"Up"></a><a accesskey=
"h" href=
"../index.html"><img src=
"../../../../../doc/src/images/home.png" alt=
"Home"></a><a accesskey=
"n" href=
"tr1_ref.html"><img src=
"../../../../../doc/src/images/next.png" alt=
"Next"></a>
26 <div class=
"titlepage"><div><div><h2 class=
"title" style=
"clear: both">
27 <a name=
"math_toolkit.c99"></a><a class=
"link" href=
"c99.html" title=
"C99 C Functions">C99 C Functions
</a>
28 </h2></div></div></div>
30 <a name=
"math_toolkit.c99.h0"></a>
31 <span class=
"phrase"><a name=
"math_toolkit.c99.supported_c99_functions"></a></span><a class=
"link" href=
"c99.html#math_toolkit.c99.supported_c99_functions">Supported
34 <pre class=
"programlisting"><span class=
"keyword">namespace
</span> <span class=
"identifier">boost
</span><span class=
"special">{
</span> <span class=
"keyword">namespace
</span> <span class=
"identifier">math
</span><span class=
"special">{
</span> <span class=
"keyword">namespace
</span> <span class=
"identifier">tr1
</span><span class=
"special">{
</span> <span class=
"keyword">extern
</span> <span class=
"string">"C"</span><span class=
"special">{
</span>
36 <span class=
"keyword">typedef
</span> <span class=
"identifier">unspecified
</span> <span class=
"identifier">float_t
</span><span class=
"special">;
</span>
37 <span class=
"keyword">typedef
</span> <span class=
"identifier">unspecified
</span> <span class=
"identifier">double_t
</span><span class=
"special">;
</span>
39 <span class=
"keyword">double
</span> <span class=
"identifier">acosh
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
40 <span class=
"keyword">float
</span> <span class=
"identifier">acoshf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
41 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">acoshl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
43 <span class=
"keyword">double
</span> <span class=
"identifier">asinh
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
44 <span class=
"keyword">float
</span> <span class=
"identifier">asinhf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
45 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">asinhl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
47 <span class=
"keyword">double
</span> <span class=
"identifier">atanh
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
48 <span class=
"keyword">float
</span> <span class=
"identifier">atanhf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
49 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">atanhl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
51 <span class=
"keyword">double
</span> <span class=
"identifier">cbrt
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
52 <span class=
"keyword">float
</span> <span class=
"identifier">cbrtf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
53 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">cbrtl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
55 <span class=
"keyword">double
</span> <span class=
"identifier">copysign
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
56 <span class=
"keyword">float
</span> <span class=
"identifier">copysignf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
57 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">copysignl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
59 <span class=
"keyword">double
</span> <span class=
"identifier">erf
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
60 <span class=
"keyword">float
</span> <span class=
"identifier">erff
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
61 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">erfl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
63 <span class=
"keyword">double
</span> <span class=
"identifier">erfc
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
64 <span class=
"keyword">float
</span> <span class=
"identifier">erfcf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
65 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">erfcl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
67 <span class=
"keyword">double
</span> <span class=
"identifier">expm1
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
68 <span class=
"keyword">float
</span> <span class=
"identifier">expm1f
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
69 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">expm1l
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
71 <span class=
"keyword">double
</span> <span class=
"identifier">fmax
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
72 <span class=
"keyword">float
</span> <span class=
"identifier">fmaxf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
73 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">fmaxl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
75 <span class=
"keyword">double
</span> <span class=
"identifier">fmin
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
76 <span class=
"keyword">float
</span> <span class=
"identifier">fminf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
77 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">fminl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
79 <span class=
"keyword">double
</span> <span class=
"identifier">hypot
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
80 <span class=
"keyword">float
</span> <span class=
"identifier">hypotf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
81 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">hypotl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
83 <span class=
"keyword">double
</span> <span class=
"identifier">lgamma
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
84 <span class=
"keyword">float
</span> <span class=
"identifier">lgammaf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
85 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">lgammal
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
87 <span class=
"keyword">long
</span> <span class=
"keyword">long
</span> <span class=
"identifier">llround
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
88 <span class=
"keyword">long
</span> <span class=
"keyword">long
</span> <span class=
"identifier">llroundf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
89 <span class=
"keyword">long
</span> <span class=
"keyword">long
</span> <span class=
"identifier">llroundl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
91 <span class=
"keyword">double
</span> <span class=
"identifier">log1p
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
92 <span class=
"keyword">float
</span> <span class=
"identifier">log1pf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
93 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">log1pl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
95 <span class=
"keyword">long
</span> <span class=
"identifier">lround
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
96 <span class=
"keyword">long
</span> <span class=
"identifier">lroundf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
97 <span class=
"keyword">long
</span> <span class=
"identifier">lroundl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
99 <span class=
"keyword">double
</span> <span class=
"identifier">nextafter
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
100 <span class=
"keyword">float
</span> <span class=
"identifier">nextafterf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
101 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">nextafterl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
103 <span class=
"keyword">double
</span> <span class=
"identifier">nexttoward
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
104 <span class=
"keyword">float
</span> <span class=
"identifier">nexttowardf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
105 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">nexttowardl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
107 <span class=
"keyword">double
</span> <span class=
"identifier">round
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
108 <span class=
"keyword">float
</span> <span class=
"identifier">roundf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
109 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">roundl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
111 <span class=
"keyword">double
</span> <span class=
"identifier">tgamma
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
112 <span class=
"keyword">float
</span> <span class=
"identifier">tgammaf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
113 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">tgammal
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
115 <span class=
"keyword">double
</span> <span class=
"identifier">trunc
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
116 <span class=
"keyword">float
</span> <span class=
"identifier">truncf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
117 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">truncl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
119 <span class=
"special">}}}}
</span> <span class=
"comment">// namespaces
</span>
122 In addition sufficient additional overloads of the
<code class=
"computeroutput"><span class=
"keyword">double
</span></code>
123 versions of the above functions are provided, so that calling the function
124 with any mixture of
<code class=
"computeroutput"><span class=
"keyword">float
</span></code>,
<code class=
"computeroutput"><span class=
"keyword">double
</span></code>,
<code class=
"computeroutput"><span class=
"keyword">long
</span>
125 <span class=
"keyword">double
</span></code>, or
<span class=
"emphasis"><em>integer
</em></span>
126 arguments is supported, with the return type determined by the
<a class=
"link" href=
"result_type.html" title=
"Calculation of the Type of the Result"><span class=
"emphasis"><em>result
127 type calculation rules
</em></span></a>.
132 <pre class=
"programlisting"><span class=
"identifier">acoshf
</span><span class=
"special">(
</span><span class=
"number">2.0f
</span><span class=
"special">);
</span> <span class=
"comment">// float version, returns float.
</span>
133 <span class=
"identifier">acosh
</span><span class=
"special">(
</span><span class=
"number">2.0f
</span><span class=
"special">);
</span> <span class=
"comment">// also calls the float version and returns float.
</span>
134 <span class=
"identifier">acosh
</span><span class=
"special">(
</span><span class=
"number">2.0</span><span class=
"special">);
</span> <span class=
"comment">// double version, returns double.
</span>
135 <span class=
"identifier">acoshl
</span><span class=
"special">(
</span><span class=
"number">2.0L</span><span class=
"special">);
</span> <span class=
"comment">// long double version, returns a long double.
</span>
136 <span class=
"identifier">acosh
</span><span class=
"special">(
</span><span class=
"number">2.0L</span><span class=
"special">);
</span> <span class=
"comment">// also calls the long double version.
</span>
137 <span class=
"identifier">acosh
</span><span class=
"special">(
</span><span class=
"number">2</span><span class=
"special">);
</span> <span class=
"comment">// integer argument is treated as a double, returns double.
</span>
140 <a name=
"math_toolkit.c99.h1"></a>
141 <span class=
"phrase"><a name=
"math_toolkit.c99.quick_reference"></a></span><a class=
"link" href=
"c99.html#math_toolkit.c99.quick_reference">Quick
145 More detailed descriptions of these functions are available in the C99 standard.
147 <pre class=
"programlisting"><span class=
"keyword">typedef
</span> <span class=
"identifier">unspecified
</span> <span class=
"identifier">float_t
</span><span class=
"special">;
</span>
148 <span class=
"keyword">typedef
</span> <span class=
"identifier">unspecified
</span> <span class=
"identifier">double_t
</span><span class=
"special">;
</span>
151 In this implementation
<code class=
"computeroutput"><span class=
"identifier">float_t
</span></code>
152 is the same as type
<code class=
"computeroutput"><span class=
"keyword">float
</span></code>, and
153 <code class=
"computeroutput"><span class=
"identifier">double_t
</span></code> the same as type
154 <code class=
"computeroutput"><span class=
"keyword">double
</span></code> unless the preprocessor
155 symbol FLT_EVAL_METHOD is defined, in which case these are set as follows:
157 <div class=
"informaltable"><table class=
"table">
234 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">acosh
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
235 <span class=
"keyword">float
</span> <span class=
"identifier">acoshf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
236 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">acoshl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
239 Returns the inverse hyperbolic cosine of
<span class=
"emphasis"><em>x
</em></span>.
242 See also
<a class=
"link" href=
"inv_hyper/acosh.html" title=
"acosh">acosh
</a> for the
243 full template (header only) version of this function.
245 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">asinh
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
246 <span class=
"keyword">float
</span> <span class=
"identifier">asinhf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
247 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">asinhl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
250 Returns the inverse hyperbolic sine of
<span class=
"emphasis"><em>x
</em></span>.
253 See also
<a class=
"link" href=
"inv_hyper/asinh.html" title=
"asinh">asinh
</a> for the
254 full template (header only) version of this function.
256 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">atanh
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
257 <span class=
"keyword">float
</span> <span class=
"identifier">atanhf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
258 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">atanhl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
261 Returns the inverse hyperbolic tangent of
<span class=
"emphasis"><em>x
</em></span>.
264 See also
<a class=
"link" href=
"inv_hyper/atanh.html" title=
"atanh">atanh
</a> for the
265 full template (header only) version of this function.
267 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">cbrt
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
268 <span class=
"keyword">float
</span> <span class=
"identifier">cbrtf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
269 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">cbrtl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
272 Returns the cubed root of
<span class=
"emphasis"><em>x
</em></span>.
275 See also
<a class=
"link" href=
"powers/cbrt.html" title=
"cbrt">cbrt
</a> for the full
276 template (header only) version of this function.
278 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">copysign
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
279 <span class=
"keyword">float
</span> <span class=
"identifier">copysignf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
280 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">copysignl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
283 Returns a value with the magnitude of
<span class=
"emphasis"><em>x
</em></span> and the sign of
284 <span class=
"emphasis"><em>y
</em></span>.
286 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">erf
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
287 <span class=
"keyword">float
</span> <span class=
"identifier">erff
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
288 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">erfl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
291 Returns the error function of
<span class=
"emphasis"><em>x
</em></span>:
294 <span class=
"inlinemediaobject"><img src=
"../../equations/erf1.svg"></span>
297 See also
<a class=
"link" href=
"sf_erf/error_function.html" title=
"Error Functions">erf
</a> for
298 the full template (header only) version of this function.
300 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">erfc
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
301 <span class=
"keyword">float
</span> <span class=
"identifier">erfcf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
302 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">erfcl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
305 Returns the complementary error function of
<span class=
"emphasis"><em>x
</em></span> <code class=
"computeroutput"><span class=
"number">1</span><span class=
"special">-
</span><span class=
"identifier">erf
</span><span class=
"special">(
</span><span class=
"identifier">x
</span><span class=
"special">)
</span></code>
306 without the loss of precision implied by the subtraction.
309 See also
<a class=
"link" href=
"sf_erf/error_function.html" title=
"Error Functions">erfc
</a> for
310 the full template (header only) version of this function.
312 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">expm1
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
313 <span class=
"keyword">float
</span> <span class=
"identifier">expm1f
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
314 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">expm1l
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
317 Returns
<code class=
"computeroutput"><span class=
"identifier">exp
</span><span class=
"special">(
</span><span class=
"identifier">x
</span><span class=
"special">)-
</span><span class=
"number">1</span></code>
318 without the loss of precision implied by the subtraction.
321 See also
<a class=
"link" href=
"powers/expm1.html" title=
"expm1">expm1
</a> for the full
322 template (header only) version of this function.
324 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">fmax
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
325 <span class=
"keyword">float
</span> <span class=
"identifier">fmaxf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
326 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">fmaxl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
329 Returns the larger (most positive) of
<span class=
"emphasis"><em>x
</em></span> and
<span class=
"emphasis"><em>y
</em></span>.
331 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">fmin
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
332 <span class=
"keyword">float
</span> <span class=
"identifier">fminf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
333 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">fminl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
336 Returns the smaller (most negative) of
<span class=
"emphasis"><em>x
</em></span> and
<span class=
"emphasis"><em>y
</em></span>.
338 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">hypot
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
339 <span class=
"keyword">float
</span> <span class=
"identifier">hypotf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
340 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">hypotl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
343 Returns
<code class=
"computeroutput"><span class=
"identifier">sqrt
</span><span class=
"special">(
</span><span class=
"identifier">x
</span><span class=
"special">*
</span><span class=
"identifier">x
</span>
344 <span class=
"special">+
</span> <span class=
"identifier">y
</span><span class=
"special">*
</span><span class=
"identifier">y
</span><span class=
"special">)
</span></code>
345 without the danger of numeric overflow implied by that formulation.
348 See also
<a class=
"link" href=
"powers/hypot.html" title=
"hypot">hypot
</a> for the full
349 template (header only) version of this function.
351 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">lgamma
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
352 <span class=
"keyword">float
</span> <span class=
"identifier">lgammaf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
353 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">lgammal
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
356 Returns the log of the gamma function of
<span class=
"emphasis"><em>x
</em></span>.
359 <span class=
"inlinemediaobject"><img src=
"../../equations/lgamm1.svg"></span>
362 See also
<a class=
"link" href=
"sf_gamma/lgamma.html" title=
"Log Gamma">lgamma
</a> for the
363 full template (header only) version of this function.
365 <pre class=
"programlisting"><span class=
"keyword">long
</span> <span class=
"keyword">long
</span> <span class=
"identifier">llround
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
366 <span class=
"keyword">long
</span> <span class=
"keyword">long
</span> <span class=
"identifier">llroundf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
367 <span class=
"keyword">long
</span> <span class=
"keyword">long
</span> <span class=
"identifier">llroundl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
370 Returns the value
<span class=
"emphasis"><em>x
</em></span> rounded to the nearest integer as
371 a
<code class=
"computeroutput"><span class=
"keyword">long
</span> <span class=
"keyword">long
</span></code>:
372 equivalent to
<code class=
"computeroutput"><span class=
"identifier">floor
</span><span class=
"special">(
</span><span class=
"identifier">x
</span> <span class=
"special">+
</span> <span class=
"number">0.5</span><span class=
"special">)
</span></code>
375 See also
<a class=
"link" href=
"rounding/round.html" title=
"Rounding Functions">round
</a> for the full
376 template (header only) version of this function.
378 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">log1p
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
379 <span class=
"keyword">float
</span> <span class=
"identifier">log1pf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
380 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">log1pl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
383 Returns the
<code class=
"computeroutput"><span class=
"identifier">log
</span><span class=
"special">(
</span><span class=
"identifier">x
</span><span class=
"special">+
</span><span class=
"number">1</span><span class=
"special">)
</span></code> without the loss of precision implied by that
387 See also
<a class=
"link" href=
"powers/log1p.html" title=
"log1p">log1p
</a> for the full
388 template (header only) version of this function.
390 <pre class=
"programlisting"><span class=
"keyword">long
</span> <span class=
"identifier">lround
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
391 <span class=
"keyword">long
</span> <span class=
"identifier">lroundf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
392 <span class=
"keyword">long
</span> <span class=
"identifier">lroundl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
395 Returns the value
<span class=
"emphasis"><em>x
</em></span> rounded to the nearest integer as
396 a
<code class=
"computeroutput"><span class=
"keyword">long
</span></code>: equivalent to
<code class=
"computeroutput"><span class=
"identifier">floor
</span><span class=
"special">(
</span><span class=
"identifier">x
</span>
397 <span class=
"special">+
</span> <span class=
"number">0.5</span><span class=
"special">)
</span></code>
400 See also
<a class=
"link" href=
"rounding/round.html" title=
"Rounding Functions">round
</a> for the full
401 template (header only) version of this function.
403 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">nextafter
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
404 <span class=
"keyword">float
</span> <span class=
"identifier">nextafterf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">float
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
405 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">nextafterl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
408 Returns the next representable floating point number after
<span class=
"emphasis"><em>x
</em></span>
409 in the direction of
<span class=
"emphasis"><em>y
</em></span>, or
<span class=
"emphasis"><em>x
</em></span> if
<code class=
"computeroutput"><span class=
"identifier">x
</span> <span class=
"special">==
</span> <span class=
"identifier">y
</span></code>.
411 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">nexttoward
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
412 <span class=
"keyword">float
</span> <span class=
"identifier">nexttowardf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
413 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">nexttowardl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">,
</span> <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">y
</span><span class=
"special">);
</span>
416 As
<code class=
"computeroutput"><span class=
"identifier">nextafter
</span></code>, but with
<span class=
"emphasis"><em>y
</em></span>
417 always expressed as a
<code class=
"computeroutput"><span class=
"keyword">long
</span> <span class=
"keyword">double
</span></code>.
419 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">round
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
420 <span class=
"keyword">float
</span> <span class=
"identifier">roundf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
421 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">roundl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
424 Returns the value
<span class=
"emphasis"><em>x
</em></span> rounded to the nearest integer: equivalent
425 to
<code class=
"computeroutput"><span class=
"identifier">floor
</span><span class=
"special">(
</span><span class=
"identifier">x
</span> <span class=
"special">+
</span> <span class=
"number">0.5</span><span class=
"special">)
</span></code>
428 See also
<a class=
"link" href=
"rounding/round.html" title=
"Rounding Functions">round
</a> for the full
429 template (header only) version of this function.
431 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">tgamma
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
432 <span class=
"keyword">float
</span> <span class=
"identifier">tgammaf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
433 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">tgammal
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
436 Returns the gamma function of
<span class=
"emphasis"><em>x
</em></span>:
439 <span class=
"inlinemediaobject"><img src=
"../../equations/gamm1.svg"></span>
442 See also
<a class=
"link" href=
"sf_gamma/tgamma.html" title=
"Gamma">tgamma
</a> for the
443 full template (header only) version of this function.
445 <pre class=
"programlisting"><span class=
"keyword">double
</span> <span class=
"identifier">trunc
</span><span class=
"special">(
</span><span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
446 <span class=
"keyword">float
</span> <span class=
"identifier">truncf
</span><span class=
"special">(
</span><span class=
"keyword">float
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
447 <span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">truncl
</span><span class=
"special">(
</span><span class=
"keyword">long
</span> <span class=
"keyword">double
</span> <span class=
"identifier">x
</span><span class=
"special">);
</span>
450 Returns
<span class=
"emphasis"><em>x
</em></span> truncated to the nearest integer.
453 See also
<a class=
"link" href=
"rounding/trunc.html" title=
"Truncation Functions">trunc
</a> for the full
454 template (header only) version of this function.
457 See also
<a href=
"http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf" target=
"_top">C99
461 <table xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width=
"100%"><tr>
462 <td align=
"left"></td>
463 <td align=
"right"><div class=
"copyright-footer">Copyright
© 2006-
2010,
2012-
2014 Nikhar Agrawal,
464 Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert
465 Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Johan R
åde, Gautam Sewani,
466 Benjamin Sobotta, Thijs van den Berg, Daryle Walker and Xiaogang Zhang
<p>
467 Distributed under the Boost Software License, Version
1.0. (See accompanying
468 file LICENSE_1_0.txt or copy at
<a href=
"http://www.boost.org/LICENSE_1_0.txt" target=
"_top">http://www.boost.org/LICENSE_1_0.txt
</a>)
473 <div class=
"spirit-nav">
474 <a accesskey=
"p" href=
"main_tr1.html"><img src=
"../../../../../doc/src/images/prev.png" alt=
"Prev"></a><a accesskey=
"u" href=
"../extern_c.html"><img src=
"../../../../../doc/src/images/up.png" alt=
"Up"></a><a accesskey=
"h" href=
"../index.html"><img src=
"../../../../../doc/src/images/home.png" alt=
"Home"></a><a accesskey=
"n" href=
"tr1_ref.html"><img src=
"../../../../../doc/src/images/next.png" alt=
"Next"></a>