]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | [section:c99 C99 C Functions] |
2 | ||
3 | [h4 Supported C99 Functions] | |
4 | ||
5 | namespace boost{ namespace math{ namespace tr1{ extern "C"{ | |
6 | ||
7 | typedef unspecified float_t; | |
8 | typedef unspecified double_t; | |
9 | ||
10 | double acosh(double x); | |
11 | float acoshf(float x); | |
12 | long double acoshl(long double x); | |
13 | ||
14 | double asinh(double x); | |
15 | float asinhf(float x); | |
16 | long double asinhl(long double x); | |
17 | ||
18 | double atanh(double x); | |
19 | float atanhf(float x); | |
20 | long double atanhl(long double x); | |
21 | ||
22 | double cbrt(double x); | |
23 | float cbrtf(float x); | |
24 | long double cbrtl(long double x); | |
25 | ||
26 | double copysign(double x, double y); | |
27 | float copysignf(float x, float y); | |
28 | long double copysignl(long double x, long double y); | |
29 | ||
30 | double erf(double x); | |
31 | float erff(float x); | |
32 | long double erfl(long double x); | |
33 | ||
34 | double erfc(double x); | |
35 | float erfcf(float x); | |
36 | long double erfcl(long double x); | |
37 | ||
38 | double expm1(double x); | |
39 | float expm1f(float x); | |
40 | long double expm1l(long double x); | |
41 | ||
42 | double fmax(double x, double y); | |
43 | float fmaxf(float x, float y); | |
44 | long double fmaxl(long double x, long double y); | |
45 | ||
46 | double fmin(double x, double y); | |
47 | float fminf(float x, float y); | |
48 | long double fminl(long double x, long double y); | |
49 | ||
50 | double hypot(double x, double y); | |
51 | float hypotf(float x, float y); | |
52 | long double hypotl(long double x, long double y); | |
53 | ||
54 | double lgamma(double x); | |
55 | float lgammaf(float x); | |
56 | long double lgammal(long double x); | |
57 | ||
58 | long long llround(double x); | |
59 | long long llroundf(float x); | |
60 | long long llroundl(long double x); | |
61 | ||
62 | double log1p(double x); | |
63 | float log1pf(float x); | |
64 | long double log1pl(long double x); | |
65 | ||
66 | long lround(double x); | |
67 | long lroundf(float x); | |
68 | long lroundl(long double x); | |
69 | ||
70 | double nextafter(double x, double y); | |
71 | float nextafterf(float x, float y); | |
72 | long double nextafterl(long double x, long double y); | |
73 | ||
74 | double nexttoward(double x, long double y); | |
75 | float nexttowardf(float x, long double y); | |
76 | long double nexttowardl(long double x, long double y); | |
77 | ||
78 | double round(double x); | |
79 | float roundf(float x); | |
80 | long double roundl(long double x); | |
81 | ||
82 | double tgamma(double x); | |
83 | float tgammaf(float x); | |
84 | long double tgammal(long double x); | |
85 | ||
86 | double trunc(double x); | |
87 | float truncf(float x); | |
88 | long double truncl(long double x); | |
89 | ||
90 | }}}} // namespaces | |
91 | ||
92 | In addition sufficient additional overloads of the `double` versions of the | |
93 | above functions are provided, so that calling the function with any mixture | |
94 | of `float`, `double`, `long double`, or /integer/ arguments is supported, with the | |
95 | return type determined by the __arg_promotion_rules. | |
96 | ||
97 | For example: | |
98 | ||
99 | acoshf(2.0f); // float version, returns float. | |
100 | acosh(2.0f); // also calls the float version and returns float. | |
101 | acosh(2.0); // double version, returns double. | |
102 | acoshl(2.0L); // long double version, returns a long double. | |
103 | acosh(2.0L); // also calls the long double version. | |
104 | acosh(2); // integer argument is treated as a double, returns double. | |
105 | ||
106 | [h4 Quick Reference] | |
107 | ||
108 | More detailed descriptions of these functions are available in the | |
109 | C99 standard. | |
110 | ||
111 | typedef unspecified float_t; | |
112 | typedef unspecified double_t; | |
113 | ||
114 | In this implementation `float_t` is the same as type `float`, and | |
115 | `double_t` the same as type `double` unless the preprocessor symbol | |
116 | FLT_EVAL_METHOD is defined, in which case these are set as follows: | |
117 | ||
118 | [table | |
119 | [[FLT_EVAL_METHOD][float_t][double_t]] | |
120 | [[0][float][double]] | |
121 | [[1][double][double]] | |
122 | [[2][long double][long double]] | |
123 | ] | |
124 | ||
125 | double acosh(double x); | |
126 | float acoshf(float x); | |
127 | long double acoshl(long double x); | |
128 | ||
129 | Returns the inverse hyperbolic cosine of /x/. | |
130 | ||
131 | See also __acosh for the full template (header only) version of this function. | |
132 | ||
133 | double asinh(double x); | |
134 | float asinhf(float x); | |
135 | long double asinhl(long double x); | |
136 | ||
137 | Returns the inverse hyperbolic sine of /x/. | |
138 | ||
139 | See also __asinh for the full template (header only) version of this function. | |
140 | ||
141 | double atanh(double x); | |
142 | float atanhf(float x); | |
143 | long double atanhl(long double x); | |
144 | ||
145 | Returns the inverse hyperbolic tangent of /x/. | |
146 | ||
147 | See also __atanh for the full template (header only) version of this function. | |
148 | ||
149 | double cbrt(double x); | |
150 | float cbrtf(float x); | |
151 | long double cbrtl(long double x); | |
152 | ||
153 | Returns the cubed root of /x/. | |
154 | ||
155 | See also __cbrt for the full template (header only) version of this function. | |
156 | ||
157 | double copysign(double x, double y); | |
158 | float copysignf(float x, float y); | |
159 | long double copysignl(long double x, long double y); | |
160 | ||
161 | Returns a value with the magnitude of /x/ and the sign of /y/. | |
162 | ||
163 | double erf(double x); | |
164 | float erff(float x); | |
165 | long double erfl(long double x); | |
166 | ||
167 | Returns the error function of /x/: | |
168 | ||
169 | [equation erf1] | |
170 | ||
171 | See also __erf for the full template (header only) version of this function. | |
172 | ||
173 | double erfc(double x); | |
174 | float erfcf(float x); | |
175 | long double erfcl(long double x); | |
176 | ||
177 | Returns the complementary error function of /x/ `1-erf(x)` without the loss | |
178 | of precision implied by the subtraction. | |
179 | ||
180 | See also __erfc for the full template (header only) version of this function. | |
181 | ||
182 | double expm1(double x); | |
183 | float expm1f(float x); | |
184 | long double expm1l(long double x); | |
185 | ||
186 | Returns `exp(x)-1` without the loss | |
187 | of precision implied by the subtraction. | |
188 | ||
189 | See also __expm1 for the full template (header only) version of this function. | |
190 | ||
191 | double fmax(double x, double y); | |
192 | float fmaxf(float x, float y); | |
193 | long double fmaxl(long double x, long double y); | |
194 | ||
195 | Returns the larger (most positive) of /x/ and /y/. | |
196 | ||
197 | double fmin(double x, double y); | |
198 | float fminf(float x, float y); | |
199 | long double fminl(long double x, long double y); | |
200 | ||
201 | Returns the smaller (most negative) of /x/ and /y/. | |
202 | ||
203 | double hypot(double x, double y); | |
204 | float hypotf(float x, float y); | |
205 | long double hypotl(long double x, long double y); | |
206 | ||
207 | Returns `sqrt(x*x + y*y)` without the danger of numeric overflow | |
208 | implied by that formulation. | |
209 | ||
210 | See also __hypot for the full template (header only) version of this function. | |
211 | ||
212 | double lgamma(double x); | |
213 | float lgammaf(float x); | |
214 | long double lgammal(long double x); | |
215 | ||
216 | Returns the log of the gamma function of /x/. | |
217 | ||
218 | [equation lgamm1] | |
219 | ||
220 | See also __lgamma for the full template (header only) version of this function. | |
221 | ||
222 | long long llround(double x); | |
223 | long long llroundf(float x); | |
224 | long long llroundl(long double x); | |
225 | ||
226 | Returns the value /x/ rounded to the nearest integer as a `long long`: | |
227 | equivalent to `floor(x + 0.5)` | |
228 | ||
229 | See also __llround for the full template (header only) version of this function. | |
230 | ||
231 | double log1p(double x); | |
232 | float log1pf(float x); | |
233 | long double log1pl(long double x); | |
234 | ||
235 | Returns the `log(x+1)` without the loss of precision | |
236 | implied by that formulation. | |
237 | ||
238 | See also __log1p for the full template (header only) version of this function. | |
239 | ||
240 | long lround(double x); | |
241 | long lroundf(float x); | |
242 | long lroundl(long double x); | |
243 | ||
244 | Returns the value /x/ rounded to the nearest integer as a `long`: | |
245 | equivalent to `floor(x + 0.5)` | |
246 | ||
247 | See also __lround for the full template (header only) version of this function. | |
248 | ||
249 | double nextafter(double x, double y); | |
250 | float nextafterf(float x, float y); | |
251 | long double nextafterl(long double x, long double y); | |
252 | ||
253 | Returns the next representable floating point number after /x/ | |
254 | in the direction of /y/, or /x/ if `x == y`. | |
255 | ||
256 | double nexttoward(double x, long double y); | |
257 | float nexttowardf(float x, long double y); | |
258 | long double nexttowardl(long double x, long double y); | |
259 | ||
260 | As `nextafter`, but with /y/ always expressed as a `long double`. | |
261 | ||
262 | double round(double x); | |
263 | float roundf(float x); | |
264 | long double roundl(long double x); | |
265 | ||
266 | Returns the value /x/ rounded to the nearest integer: | |
267 | equivalent to `floor(x + 0.5)` | |
268 | ||
269 | See also __round for the full template (header only) version of this function. | |
270 | ||
271 | double tgamma(double x); | |
272 | float tgammaf(float x); | |
273 | long double tgammal(long double x); | |
274 | ||
275 | Returns the gamma function of /x/: | |
276 | ||
277 | [equation gamm1] | |
278 | ||
279 | See also __tgamma for the full template (header only) version of this function. | |
280 | ||
281 | double trunc(double x); | |
282 | float truncf(float x); | |
283 | long double truncl(long double x); | |
284 | ||
285 | Returns /x/ truncated to the nearest integer. | |
286 | ||
287 | See also __trunc for the full template (header only) version of this function. | |
288 | ||
289 | See also [@http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf C99 ISO Standard] | |
290 | ||
291 | [endsect] | |
292 | ||
293 | [/ | |
294 | Copyright 2008 John Maddock and Paul A. Bristow. | |
295 | Distributed under the Boost Software License, Version 1.0. | |
296 | (See accompanying file LICENSE_1_0.txt or copy at | |
297 | http://www.boost.org/LICENSE_1_0.txt). | |
298 | ] | |
299 |