Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / math / doc / html / math_toolkit / c99.html
1 <html>
2 <head>
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.79.1">
7 <link rel="home" href="../index.html" title="Math Toolkit 2.11.0">
8 <link rel="up" href="../extern_c.html" title='Chapter&#160;9.&#160;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">
11 </head>
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>
20 </tr></table>
21 <hr>
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>
24 </div>
25 <div class="section">
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>
29 <h5>
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
32       C99 Functions</a>
33     </h5>
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>
35
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>
38
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>
42
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>
46
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>
50
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>
54
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>
58
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>
62
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>
66
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>
70
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>
74
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>
78
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>
82
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>
86
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>
90
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>
94
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>
98
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>
102
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>
106
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>
110
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>
114
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>
118
119 <span class="special">}}}}</span> <span class="comment">// namespaces</span>
120 </pre>
121 <p>
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>.
128     </p>
129 <p>
130       For example:
131     </p>
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>
138 </pre>
139 <h5>
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
142       Reference</a>
143     </h5>
144 <p>
145       More detailed descriptions of these functions are available in the C99 standard.
146     </p>
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>
149 </pre>
150 <p>
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:
156     </p>
157 <div class="informaltable"><table class="table">
158 <colgroup>
159 <col>
160 <col>
161 <col>
162 </colgroup>
163 <thead><tr>
164 <th>
165               <p>
166                 FLT_EVAL_METHOD
167               </p>
168             </th>
169 <th>
170               <p>
171                 float_t
172               </p>
173             </th>
174 <th>
175               <p>
176                 double_t
177               </p>
178             </th>
179 </tr></thead>
180 <tbody>
181 <tr>
182 <td>
183               <p>
184                 0
185               </p>
186             </td>
187 <td>
188               <p>
189                 float
190               </p>
191             </td>
192 <td>
193               <p>
194                 double
195               </p>
196             </td>
197 </tr>
198 <tr>
199 <td>
200               <p>
201                 1
202               </p>
203             </td>
204 <td>
205               <p>
206                 double
207               </p>
208             </td>
209 <td>
210               <p>
211                 double
212               </p>
213             </td>
214 </tr>
215 <tr>
216 <td>
217               <p>
218                 2
219               </p>
220             </td>
221 <td>
222               <p>
223                 long double
224               </p>
225             </td>
226 <td>
227               <p>
228                 long double
229               </p>
230             </td>
231 </tr>
232 </tbody>
233 </table></div>
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>
237 </pre>
238 <p>
239       Returns the inverse hyperbolic cosine of <span class="emphasis"><em>x</em></span>.
240     </p>
241 <p>
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.
244     </p>
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>
248 </pre>
249 <p>
250       Returns the inverse hyperbolic sine of <span class="emphasis"><em>x</em></span>.
251     </p>
252 <p>
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.
255     </p>
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>
259 </pre>
260 <p>
261       Returns the inverse hyperbolic tangent of <span class="emphasis"><em>x</em></span>.
262     </p>
263 <p>
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.
266     </p>
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>
270 </pre>
271 <p>
272       Returns the cubed root of <span class="emphasis"><em>x</em></span>.
273     </p>
274 <p>
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.
277     </p>
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>
281 </pre>
282 <p>
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>.
285     </p>
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>
289 </pre>
290 <p>
291       Returns the error function of <span class="emphasis"><em>x</em></span>:
292     </p>
293 <div class="blockquote"><blockquote class="blockquote"><p>
294         <span class="inlinemediaobject"><img src="../../equations/erf1.svg"></span>
295
296       </p></blockquote></div>
297 <p>
298       See also <a class="link" href="sf_erf/error_function.html" title="Error Function erf and complement erfc">erf</a> for
299       the full template (header only) version of this function.
300     </p>
301 <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>
302 <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>
303 <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>
304 </pre>
305 <p>
306       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>
307       without the loss of precision implied by the subtraction.
308     </p>
309 <p>
310       See also <a class="link" href="sf_erf/error_function.html" title="Error Function erf and complement erfc">erfc</a> for
311       the full template (header only) version of this function.
312     </p>
313 <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>
314 <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>
315 <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>
316 </pre>
317 <p>
318       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>
319       without the loss of precision implied by the subtraction.
320     </p>
321 <p>
322       See also <a class="link" href="powers/expm1.html" title="expm1">expm1</a> for the full
323       template (header only) version of this function.
324     </p>
325 <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>
326 <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>
327 <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>
328 </pre>
329 <p>
330       Returns the larger (most positive) of <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>.
331     </p>
332 <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>
333 <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>
334 <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>
335 </pre>
336 <p>
337       Returns the smaller (most negative) of <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>.
338     </p>
339 <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>
340 <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>
341 <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>
342 </pre>
343 <p>
344       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>
345       <span class="special">+</span> <span class="identifier">y</span><span class="special">*</span><span class="identifier">y</span><span class="special">)</span></code>
346       without the danger of numeric overflow implied by that formulation.
347     </p>
348 <p>
349       See also <a class="link" href="powers/hypot.html" title="hypot">hypot</a> for the full
350       template (header only) version of this function.
351     </p>
352 <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>
353 <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>
354 <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>
355 </pre>
356 <p>
357       Returns the log of the gamma function of <span class="emphasis"><em>x</em></span>.
358     </p>
359 <div class="blockquote"><blockquote class="blockquote"><p>
360         <span class="inlinemediaobject"><img src="../../equations/lgamm1.svg"></span>
361
362       </p></blockquote></div>
363 <p>
364       See also <a class="link" href="sf_gamma/lgamma.html" title="Log Gamma">lgamma</a> for the
365       full template (header only) version of this function.
366     </p>
367 <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>
368 <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>
369 <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 </pre>
371 <p>
372       Returns the value <span class="emphasis"><em>x</em></span> rounded to the nearest integer as
373       a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>:
374       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     </p>
376 <p>
377       See also <a class="link" href="rounding/round.html" title="Rounding Functions">round</a> for the full
378       template (header only) version of this function.
379     </p>
380 <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>
381 <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>
382 <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 </pre>
384 <p>
385       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
386       formulation.
387     </p>
388 <p>
389       See also <a class="link" href="powers/log1p.html" title="log1p">log1p</a> for the full
390       template (header only) version of this function.
391     </p>
392 <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>
393 <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>
394 <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 </pre>
396 <p>
397       Returns the value <span class="emphasis"><em>x</em></span> rounded to the nearest integer as
398       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>
399       <span class="special">+</span> <span class="number">0.5</span><span class="special">)</span></code>
400     </p>
401 <p>
402       See also <a class="link" href="rounding/round.html" title="Rounding Functions">round</a> for the full
403       template (header only) version of this function.
404     </p>
405 <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>
406 <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>
407 <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 </pre>
409 <p>
410       Returns the next representable floating point number after <span class="emphasis"><em>x</em></span>
411       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>.
412     </p>
413 <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>
414 <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>
415 <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 </pre>
417 <p>
418       As <code class="computeroutput"><span class="identifier">nextafter</span></code>, but with <span class="emphasis"><em>y</em></span>
419       always expressed as a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
420     </p>
421 <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>
422 <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>
423 <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 </pre>
425 <p>
426       Returns the value <span class="emphasis"><em>x</em></span> rounded to the nearest integer: equivalent
427       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     </p>
429 <p>
430       See also <a class="link" href="rounding/round.html" title="Rounding Functions">round</a> for the full
431       template (header only) version of this function.
432     </p>
433 <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>
434 <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>
435 <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 </pre>
437 <p>
438       Returns the gamma function of <span class="emphasis"><em>x</em></span>:
439     </p>
440 <div class="blockquote"><blockquote class="blockquote"><p>
441         <span class="inlinemediaobject"><img src="../../equations/gamm1.svg"></span>
442
443       </p></blockquote></div>
444 <p>
445       See also <a class="link" href="sf_gamma/tgamma.html" title="Gamma">tgamma</a> for the
446       full template (header only) version of this function.
447     </p>
448 <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>
449 <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>
450 <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>
451 </pre>
452 <p>
453       Returns <span class="emphasis"><em>x</em></span> truncated to the nearest integer.
454     </p>
455 <p>
456       See also <a class="link" href="rounding/trunc.html" title="Truncation Functions">trunc</a> for the full
457       template (header only) version of this function.
458     </p>
459 <p>
460       See also <a href="http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf" target="_top">C99
461       ISO Standard</a>
462     </p>
463 </div>
464 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
465 <td align="left"></td>
466 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2019 Nikhar
467       Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
468       Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
469       R&#229;de, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
470       Daryle Walker and Xiaogang Zhang<p>
471         Distributed under the Boost Software License, Version 1.0. (See accompanying
472         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       </p>
474 </div></td>
475 </tr></table>
476 <hr>
477 <div class="spirit-nav">
478 <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>
479 </div>
480 </body>
481 </html>