|
1 /** @file ../include/math.h |
|
2 @internalComponent |
|
3 */ |
|
4 |
|
5 /** @fn nanval(void ) |
|
6 |
|
7 Not a number value. |
|
8 @publishedAll |
|
9 @released |
|
10 */ |
|
11 |
|
12 /** @fn finite(double x) |
|
13 @param x |
|
14 |
|
15 The finite finitef and finitel functions return a non-zero value if value is neither |
|
16 infinite nor a "not-a-number" (NaN) value, and 0 otherwise. |
|
17 |
|
18 - Examples |
|
19 @code |
|
20 #include <math.h> |
|
21 int main( void ) |
|
22 { |
|
23 double x; |
|
24 int y; |
|
25 x = 1.34565; |
|
26 y = finite( x ); |
|
27 printf( "finite( %f ) = %d |
|
28 ", x, y ); |
|
29 y = finitef( x ); |
|
30 printf( "finitef( %f ) = %d |
|
31 ",x, y ); |
|
32 y = finitel( x ); |
|
33 printf( "finitel( %f ) = %d |
|
34 ",x, y ); |
|
35 } |
|
36 |
|
37 @endcode |
|
38 Output |
|
39 @code |
|
40 finite ( 1.34565 ) = 1 |
|
41 finitef( 1.34565 ) = 1 |
|
42 finitel( 1.34565 ) = |
|
43 @endcode |
|
44 |
|
45 |
|
46 @publishedAll |
|
47 @released |
|
48 */ |
|
49 |
|
50 /** @fn finitef(float x) |
|
51 @param x |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 @publishedAll |
|
57 @released |
|
58 */ |
|
59 |
|
60 /** @fn acos(double x) |
|
61 @param x |
|
62 @return The acos, acosf, and acosl functions return the arc cosine in the range [0, pi] |
|
63 radians. |
|
64 If: | x | \> 1 , acos (x); returns an NaN. |
|
65 |
|
66 - Detailed description |
|
67 |
|
68 |
|
69 The acos, acosf, and acosl functions compute the principal value of the arc cosine of x . |
|
70 |
|
71 - Examples |
|
72 @code |
|
73 #include <math.h> |
|
74 int main( ) |
|
75 { |
|
76 double x = -1; |
|
77 double y = acos( x ); |
|
78 printf( "acos(%f) = %f |
|
79 ", x, y ); |
|
80 y = acosf( x ); |
|
81 printf( "acosf(%f) = %f |
|
82 ", x, y ); |
|
83 y = acosl( x ); |
|
84 printf( "acosl(%f) = %f |
|
85 ", x, y ); |
|
86 } |
|
87 |
|
88 @endcode |
|
89 Output |
|
90 @code |
|
91 acos( -1.000000 ) = 3.14159 |
|
92 acosf(-1.000000 ) = 3.14159 |
|
93 acosl(-1.000000 ) = 3.14159 |
|
94 |
|
95 @endcode |
|
96 @see asin() |
|
97 @see atan() |
|
98 @see atan2() |
|
99 @see cos() |
|
100 @see cosh() |
|
101 @see math() |
|
102 @see sin() |
|
103 @see sinh() |
|
104 @see tan() |
|
105 @see tanh() |
|
106 |
|
107 |
|
108 |
|
109 |
|
110 @publishedAll |
|
111 @externallyDefinedApi |
|
112 */ |
|
113 |
|
114 /** @fn asin(double x) |
|
115 @param x |
|
116 @return The asin, asinf, and asinl functions return the arc sine in the range |
|
117 -words [-pi/2, +pi/2] |
|
118 radians. |
|
119 If: | x | \> 1 asin (x); returns an NaN. |
|
120 |
|
121 - Detailed description |
|
122 The asin and asinf functions compute the principal value of the arc sine of x . |
|
123 The function asinl is an alias to the function asin. A domain error occurs for arguments not in the range [-1, +1]. |
|
124 |
|
125 - Examples |
|
126 @code |
|
127 #include <math.h> |
|
128 int main( ) |
|
129 { |
|
130 double x = 0.5; |
|
131 double y = asin( x ); |
|
132 printf( "asin(%f) = %f |
|
133 ", x, y ); |
|
134 y = asinf( x ); |
|
135 printf( "asinf(%f) = %f |
|
136 ", x, y ); |
|
137 y = asinl( x ); |
|
138 printf( "asinl(%f) = %f |
|
139 ", x, y ); |
|
140 } |
|
141 |
|
142 @endcode |
|
143 Output |
|
144 @code |
|
145 asin( 0.500000 ) = 0.523599 |
|
146 asinf(0.500000 ) = 0.523599 |
|
147 asinl(0.500000 ) = 0.523599 |
|
148 |
|
149 @endcode |
|
150 @see acos() |
|
151 @see atan() |
|
152 @see atan2() |
|
153 @see cos() |
|
154 @see cosh() |
|
155 @see math() |
|
156 @see sin() |
|
157 @see sinh() |
|
158 @see tan() |
|
159 @see tanh() |
|
160 |
|
161 |
|
162 |
|
163 |
|
164 @publishedAll |
|
165 @externallyDefinedApi |
|
166 */ |
|
167 |
|
168 /** @fn atan(double x) |
|
169 @param x |
|
170 @see acos() |
|
171 @see asin() |
|
172 @see atan2() |
|
173 @see cos() |
|
174 @see cosh() |
|
175 @see math() |
|
176 @see sin() |
|
177 @see sinh() |
|
178 @see tan() |
|
179 @see tanh() |
|
180 |
|
181 |
|
182 |
|
183 |
|
184 @publishedAll |
|
185 @externallyDefinedApi |
|
186 */ |
|
187 |
|
188 /** @fn atan2(double y, double x) |
|
189 @param y |
|
190 @param x |
|
191 @see acos() |
|
192 @see asin() |
|
193 @see atan() |
|
194 @see cos() |
|
195 @see cosh() |
|
196 @see math() |
|
197 @see sin() |
|
198 @see sinh() |
|
199 @see tan() |
|
200 @see tanh() |
|
201 |
|
202 |
|
203 |
|
204 |
|
205 @publishedAll |
|
206 @externallyDefinedApi |
|
207 */ |
|
208 |
|
209 /** @fn cos(double x) |
|
210 @param x |
|
211 @see acos() |
|
212 @see asin() |
|
213 @see atan() |
|
214 @see atan2() |
|
215 @see cosh() |
|
216 @see math() |
|
217 @see sin() |
|
218 @see sinh() |
|
219 @see tan() |
|
220 @see tanh() |
|
221 |
|
222 |
|
223 |
|
224 |
|
225 @publishedAll |
|
226 @externallyDefinedApi |
|
227 */ |
|
228 |
|
229 /** @fn sin(double x) |
|
230 @param x |
|
231 @return The sin and the sinf functions return the sine value. |
|
232 |
|
233 - Detailed description |
|
234 The sin and the sinf functions compute the sine of x (measured in radians). |
|
235 A large magnitude argument may yield a result with little |
|
236 or no significance. sinl is just an alias to the function sin |
|
237 |
|
238 - Examples |
|
239 @code |
|
240 #include <math.h> |
|
241 int main( ) |
|
242 { |
|
243 double pi_by_6 = 0.52359877559829887307710723054658383 ; |
|
244 double y; |
|
245 y = sin( pi_by_6 ); |
|
246 printf( "sin( %f) = %f |
|
247 ", x1, y ); |
|
248 y = sinf( pi_by_6); |
|
249 printf( "sinf( %f) = %f |
|
250 ", pi_by_6, y ); |
|
251 y = sinl( pi_by_6); |
|
252 printf( "sinl( %f) = %f |
|
253 ", pi_by_6, y ); |
|
254 } |
|
255 |
|
256 @endcode |
|
257 Output |
|
258 @code |
|
259 sin ( 0.52359877559829887307710723054658383 ) = 0.500000 |
|
260 sinf( 0.52359877559829887307710723054658383 ) = 0.500000 |
|
261 sinl( 0.52359877559829887307710723054658383 ) = 0.500000 |
|
262 |
|
263 @endcode |
|
264 @see acos() |
|
265 @see asin() |
|
266 @see atan() |
|
267 @see atan2() |
|
268 @see cos() |
|
269 @see cosh() |
|
270 @see math() |
|
271 @see sinh() |
|
272 @see tan() |
|
273 @see tanh() |
|
274 |
|
275 |
|
276 |
|
277 |
|
278 @publishedAll |
|
279 @externallyDefinedApi |
|
280 */ |
|
281 |
|
282 /** @fn tan(double x) |
|
283 @param x |
|
284 @return The tan function returns the tangent value. |
|
285 |
|
286 - Detailed description |
|
287 The tan and tanf functions compute the tangent of x (measured in radians). |
|
288 A large magnitude argument may yield a result |
|
289 with little or no significance. |
|
290 The function tanl is an alias to the function tan |
|
291 |
|
292 - Examples |
|
293 @code |
|
294 #include <math.h> |
|
295 int main( ) |
|
296 { |
|
297 double pi_by_4 = 0.7853981633974483096156608458198757; |
|
298 double y; |
|
299 y = tan( pi_by_4 ); |
|
300 printf( "tan( %f) = %f |
|
301 ", pi_by_4, y ); |
|
302 y = tanf( pi_by_4); |
|
303 printf( "tanf( %f) = %f |
|
304 ", pi_by_4, y ); |
|
305 y = tanl( pi_by_4); |
|
306 printf( "tanl( %f) = %f |
|
307 |
|
308 ", pi_by_4, y ); |
|
309 } |
|
310 |
|
311 @endcode |
|
312 Output |
|
313 @code |
|
314 tan ( 0.7853981633974483096156608458198757 ) = 1.000000 |
|
315 tanf( 0.7853981633974483096156608458198757 ) = 1.000000 |
|
316 tanl( 0.7853981633974483096156608458198757; ) =1.000000 |
|
317 |
|
318 @endcode |
|
319 @see acos() |
|
320 @see asin() |
|
321 @see atan() |
|
322 @see atan2() |
|
323 @see cos() |
|
324 @see cosh() |
|
325 @see math() |
|
326 @see sin() |
|
327 @see sinh() |
|
328 @see tanh() |
|
329 |
|
330 |
|
331 |
|
332 |
|
333 @publishedAll |
|
334 @externallyDefinedApi |
|
335 */ |
|
336 |
|
337 /** @fn cosh(double x) |
|
338 @param x |
|
339 @see acos() |
|
340 @see asin() |
|
341 @see atan() |
|
342 @see atan2() |
|
343 @see cos() |
|
344 @see math() |
|
345 @see sin() |
|
346 @see sinh() |
|
347 @see tan() |
|
348 @see tanh() |
|
349 |
|
350 |
|
351 |
|
352 |
|
353 @publishedAll |
|
354 @externallyDefinedApi |
|
355 */ |
|
356 |
|
357 /** @fn sinh(double x) |
|
358 @param x |
|
359 - Detailed description |
|
360 The sinh and the sinhf functions compute the hyperbolic sine of x . |
|
361 The function sinhl is an alias to the function sinh |
|
362 |
|
363 - Examples |
|
364 @code |
|
365 #include <math.h> |
|
366 int main( ) |
|
367 { |
|
368 double inp = 0.75; |
|
369 double y; |
|
370 y = sinh( inp ); |
|
371 printf( "sinh( %f) = %f |
|
372 ", inp, y ); |
|
373 y = sinhf( inp); |
|
374 printf( "sinhf( %f) = %f |
|
375 ", inp, y ); |
|
376 y = sinhl( inp); |
|
377 printf( "sinhl( %f) = %f |
|
378 ", inp, y ); |
|
379 } |
|
380 |
|
381 @endcode |
|
382 Output |
|
383 @code |
|
384 sinh ( 0.75 ) = 0.8223167 |
|
385 sinhf( 0.75 ) = 0.8223167 |
|
386 sinhl( 0.75 ) = 0.8223167 |
|
387 |
|
388 @endcode |
|
389 @see acos() |
|
390 @see asin() |
|
391 @see atan() |
|
392 @see atan2() |
|
393 @see cos() |
|
394 @see cosh() |
|
395 @see math() |
|
396 @see sin() |
|
397 @see tan() |
|
398 @see tanh() |
|
399 |
|
400 |
|
401 |
|
402 |
|
403 @publishedAll |
|
404 @externallyDefinedApi |
|
405 */ |
|
406 |
|
407 /** @fn tanh(double x) |
|
408 @param x |
|
409 @return The tanh, tanhf and tanhl functions return the hyperbolic tangent value. |
|
410 |
|
411 - Detailed description |
|
412 The tanh and tanhf functions compute the hyperbolic tangent of x . tanhl is an alias to the function tanh. |
|
413 |
|
414 - Examples |
|
415 @code |
|
416 #include <math.h> |
|
417 int main( ) |
|
418 { |
|
419 double inp = 1.0; |
|
420 double y; |
|
421 y = tanh( inp ); |
|
422 printf( "tanh( %f) = %f |
|
423 ", inp, y ); |
|
424 y = tanhf( inp); |
|
425 printf( "tanhf( %f) = %f |
|
426 ", inp, y ); |
|
427 y = tanhl( inp); |
|
428 printf( "tanhl( %f) = %f |
|
429 |
|
430 ", inp, y ); |
|
431 inp = 2209.0; |
|
432 y = sqrt( inp); |
|
433 printf( "sqrt( %f) = %d |
|
434 ", inp, y ); |
|
435 y = sqrtf( inp); |
|
436 printf( "sqrtf( %f) = %d |
|
437 ", inp, y ); |
|
438 y = sqrtl( inp); |
|
439 printf( "sqrtl( %f) = %d |
|
440 ", inp, y ); |
|
441 } |
|
442 |
|
443 @endcode |
|
444 Output |
|
445 @code |
|
446 tanh ( 1.000000 ) = 0.7615941 |
|
447 tanhf( 1.000000 ) = 0.7615941 |
|
448 tanhl( 1.000000 ) = 0.7615941 |
|
449 |
|
450 @endcode |
|
451 @see acos() |
|
452 @see asin() |
|
453 @see atan() |
|
454 @see atan2() |
|
455 @see cos() |
|
456 @see cosh() |
|
457 @see math() |
|
458 @see sin() |
|
459 @see sinh() |
|
460 @see tan() |
|
461 |
|
462 |
|
463 |
|
464 |
|
465 @publishedAll |
|
466 @externallyDefinedApi |
|
467 */ |
|
468 |
|
469 /** @fn exp(double x) |
|
470 @param x |
|
471 @return These functions will return the appropriate computation unless an error |
|
472 occurs or an argument is out of range. |
|
473 The functions pow (x, y); and powf (x, y); return an NaN if x \< 0 and y is not an integer. |
|
474 An attempt to take the logarithm of ±0 will return infinity. |
|
475 An attempt to take the logarithm of a negative number will |
|
476 return a NaN. |
|
477 |
|
478 - Detailed description |
|
479 The exp and expf functions compute the base e exponential value of the given argument x . |
|
480 |
|
481 The exp2 and exp2f functions compute the base 2 exponential of the given argument x . |
|
482 |
|
483 The expm1 and expm1f functions compute the value exp(x)-1 accurately even for tiny argument x . |
|
484 |
|
485 The log and logf functions compute the value of the natural logarithm of argument x . |
|
486 |
|
487 The log10 and log10f functions compute the value of the logarithm of argument x to base 10. |
|
488 |
|
489 The log1p and log1pf functions compute |
|
490 the value of log(1+x) accurately even for tiny argument x . |
|
491 |
|
492 The pow and powf functions compute the value |
|
493 of x to the exponent y . |
|
494 |
|
495 Here the long double version APIs are aliases to the double version APIs. |
|
496 All apis \<function\>l behaves similiar to that \<function\>. |
|
497 |
|
498 - Examples |
|
499 @code |
|
500 #include <math.h> |
|
501 int main( void ) |
|
502 { |
|
503 double x, y; |
|
504 x = 1.0; |
|
505 y = exp( x ); |
|
506 printf( "exp( %f ) = %f |
|
507 ", x, y ); |
|
508 y = expf( x ); |
|
509 printf( "expf( %f ) = %f |
|
510 ",x, y ); |
|
511 y = expl( x ); |
|
512 printf( "expl( %f ) = %f |
|
513 ",x, y ); |
|
514 x = 0.0; |
|
515 y = exp2( x ); |
|
516 printf( "exp2( %f ) = %f |
|
517 ", x, y ); |
|
518 y = exp2f( x ); |
|
519 printf( "exp2f( %f ) = %f |
|
520 ",x, y ); |
|
521 y = exp2l( x ); |
|
522 printf( "exp2l( %f ) = %f |
|
523 ",x, y ); |
|
524 x = 1.0 ; |
|
525 y = expm1( x ); |
|
526 printf( "expm1( %f ) = %f |
|
527 ", x, y ); |
|
528 y = expm1f( x ); |
|
529 printf( "expm1f( %f ) = %f |
|
530 ",x, y ); |
|
531 y = expm1l( x ); |
|
532 printf( "expm1l( %f ) = %f |
|
533 ",x, y ); |
|
534 } |
|
535 |
|
536 @endcode |
|
537 Output |
|
538 @code |
|
539 exp ( 1.0 ) = 2.718282 |
|
540 expf ( 1.0 ) = 2.718282 |
|
541 expl ( 1.0 ) = 2.718282 |
|
542 exp2 ( 0.0 ) = 1.000000 |
|
543 exp2f ( 0.0 ) = 1.000000 |
|
544 exp2l ( 0.0 ) = 1.000000 |
|
545 expm1 ( 1.0 ) = 1.718281 |
|
546 expm1f( 1.0 ) = 1.718281 |
|
547 expm1l( 1.0 ) = 1.718281 |
|
548 |
|
549 @endcode |
|
550 |
|
551 Notes: |
|
552 |
|
553 The functions exp(x)-1 and log(1+x) are called |
|
554 expm1 and logp1 in BASIC on the Hewlett-Packard HP -71B and APPLE Macintosh, EXP1 and LN1 in Pascal, exp1 and log1 in C |
|
555 on APPLE Macintoshes, where they have been provided to make |
|
556 sure financial calculations of ((1+x)**n-1)/x, namely |
|
557 expm1(n*log1p(x))/x, will be accurate when x is tiny. |
|
558 They also provide accurate inverse hyperbolic functions. The function pow (x, 0); returns x**0 = 1 for all x including x = 0, oo, and NaN . |
|
559 Previous implementations of pow may |
|
560 have defined x**0 to be undefined in some or all of these |
|
561 cases. |
|
562 Here are reasons for returning x**0 = 1 always: Any program that already tests whether x is zero (or |
|
563 infinite or NaN) before computing x**0 cannot care |
|
564 whether 0**0 = 1 or not. |
|
565 Any program that depends |
|
566 upon 0**0 to be invalid is dubious anyway since that |
|
567 expression's meaning and, if invalid, its consequences |
|
568 vary from one computer system to another. Some Algebra texts (e.g. Sigler's) define x**0 = 1 for |
|
569 all x, including x = 0. |
|
570 This is compatible with the convention that accepts a[0] |
|
571 as the value of polynomial |
|
572 @code |
|
573 p(x) = a[0]*x**0 + a[1]*x**1 + a[2]*x**2 +...+ a[n]*x**n |
|
574 |
|
575 @endcode |
|
576 at x = 0 rather than reject a[0]*0**0 as invalid. Analysts will accept 0**0 = 1 despite that x**y can |
|
577 approach anything or nothing as x and y approach 0 |
|
578 independently. |
|
579 The reason for setting 0**0 = 1 anyway is this: |
|
580 @code |
|
581 If x(z) and y(z) are |
|
582 |
|
583 any |
|
584 functions analytic (expandable |
|
585 in power series) in z around z = 0, and if there |
|
586 x(0) = y(0) = 0, then x(z)**y(z) -> 1 as z -> 0. |
|
587 |
|
588 @endcode |
|
589 If 0**0 = 1, then |
|
590 oo**0 = 1/0**0 = 1 too; and |
|
591 then NaN**0 = 1 too because x**0 = 1 for all finite |
|
592 and infinite x, i.e., independently of x. |
|
593 @see math() |
|
594 |
|
595 |
|
596 |
|
597 |
|
598 @publishedAll |
|
599 @externallyDefinedApi |
|
600 */ |
|
601 |
|
602 /** @fn frexp(double x, int *eptr) |
|
603 @param x |
|
604 @param eptr |
|
605 @return These functions return the value y , |
|
606 such that y is a double with magnitude in the interval [1/2, 1] |
|
607 or zero, and x equals y times 2 raised to the power *eptr . |
|
608 If x is zero, both parts of the result are zero. |
|
609 |
|
610 - Detailed description |
|
611 The frexp , frexpf, and frexpl functions break a floating-point number into a normalized |
|
612 fraction and an integral power of 2. |
|
613 They store the integer in the int object pointed to by eptr . |
|
614 As there is no long double is not supported by Symbian, frexpl (is, aliased, to, the); frexp |
|
615 |
|
616 |
|
617 |
|
618 - Examples |
|
619 @code |
|
620 void main( void ) |
|
621 { |
|
622 double x1 = 4.0 , y; |
|
623 int res; |
|
624 y = frexp( x1, &res; ); |
|
625 printf( "frexp(%f , &res;):: Int Part: %d and Fractional Part: %f |
|
626 ", x1, res, y ); |
|
627 y = frexpf( x1, &res; ); |
|
628 printf( "frexpf(%f , &res;):: Int Part: %d and Fractional Part: %f |
|
629 ", x1, res, y ); |
|
630 y = frexpl( x1, &res; ); |
|
631 printf( "frexpl(%f , &res;):: Int Part: %d and Fractional Part: %f |
|
632 ", x1, res, y ); |
|
633 } |
|
634 |
|
635 @endcode |
|
636 Output |
|
637 @code |
|
638 frexp ( 4.0 , &res; ) :: Int Part: 3 and Fractional Part: 0.5 |
|
639 frexpf( 4.0, &res; ) :: Int Part: 3 and Fractional Part: 0.5 |
|
640 frexpl( 4.0, &res; ) :: Int Part: 3 and Fractional Part: 0.5 |
|
641 |
|
642 @endcode |
|
643 |
|
644 |
|
645 @publishedAll |
|
646 @externallyDefinedApi |
|
647 */ |
|
648 |
|
649 /** @fn ldexp(double x, int n) |
|
650 @param x |
|
651 @param n |
|
652 @return These functions return the value of x times 2 raised to the power n . |
|
653 |
|
654 - Detailed description |
|
655 The ldexp, ldexpf, and ldexpl functions multiply a floating-point number by an integral |
|
656 power of 2. |
|
657 |
|
658 - Examples |
|
659 @code |
|
660 #include <math.h> |
|
661 int main( void ) |
|
662 { |
|
663 double x1 = 0.8, x2 = 4, y; |
|
664 y = ldexp( x1, x2 ); |
|
665 printf( "ldexp(%f , %f) = %f |
|
666 ", x1, x2, y ); |
|
667 y = ldexpf( x1, x2 ); |
|
668 printf( "ldexpf(%f , %f) = %f |
|
669 ", x1, x2, y ); |
|
670 y = ldexpl( x1, x2 ); |
|
671 printf( "ldexpl(%f , %f) = %f |
|
672 ", x1, x2, y ); |
|
673 } |
|
674 |
|
675 @endcode |
|
676 Output |
|
677 @code |
|
678 ldexp ( 0.8, 4 ) = 12.8 |
|
679 ldexpf( 0.8, 4 ) = 12.8 |
|
680 ldexpl( 0.8, 4 ) = 12.8 |
|
681 |
|
682 @endcode |
|
683 @see frexp() |
|
684 @see math() |
|
685 @see modf() |
|
686 |
|
687 |
|
688 |
|
689 |
|
690 @publishedAll |
|
691 @externallyDefinedApi |
|
692 */ |
|
693 |
|
694 /** @fn log(double x) |
|
695 @param x |
|
696 @see math() |
|
697 |
|
698 |
|
699 |
|
700 |
|
701 @publishedAll |
|
702 @externallyDefinedApi |
|
703 */ |
|
704 |
|
705 /** @fn log10(double x) |
|
706 @param x |
|
707 @see math() |
|
708 |
|
709 |
|
710 |
|
711 |
|
712 @publishedAll |
|
713 @externallyDefinedApi |
|
714 */ |
|
715 |
|
716 /** @fn modf(double x, double *iptr) |
|
717 @param x |
|
718 @param iptr |
|
719 @return The modf, modff and modfl functions return the signed fractional part of a value . |
|
720 |
|
721 - Detailed description |
|
722 The modf function breaks the argument x into integral and fractional parts, each of which has the |
|
723 same sign as the argument. |
|
724 It stores the integral part as a double |
|
725 in the object pointed to by iptr . |
|
726 The function modff (is, the, float, version, of, modf().); The function modfl is an alias to the function modf. |
|
727 |
|
728 - Examples |
|
729 @code |
|
730 #include <math.h> |
|
731 #include <stdio.h> |
|
732 int main() |
|
733 { |
|
734 double x1 = 123.456703 , y; |
|
735 double iptr; |
|
736 float fptr; |
|
737 y = modf( x1, &iptr; ); |
|
738 printf( "modf(%f , &iptr;):: Int Part: %f and Fractional Part: %f 0, x1, iptr, y ); |
|
739 y = modff( x1, &fptr; ); |
|
740 printf( "modff(%f , &iptr;):: Int Part: %f and Fractional Part: %f 0, x1, fptr, y ); |
|
741 y = modfl( x1, &iptr; ); |
|
742 printf( "modfl(%f , &iptr;):: Int Part: %f and Fractional Part: %f 0, x1, iptr, y ); |
|
743 } |
|
744 |
|
745 @endcode |
|
746 Output |
|
747 @code |
|
748 modf ( 123.456703 , &iptr; ) :: Int Part: 123 and Fractional Part: 0.456703 |
|
749 modff( 123.456703, &iptr; ) :: Int Part: 123 and Fractional Part: 0.456703 |
|
750 modfl( 123.456703, &iptr; ) :: Int Part: 123 and Fractional Part: 0.456703 |
|
751 |
|
752 @endcode |
|
753 @see frexp() |
|
754 @see ldexp() |
|
755 @see math() |
|
756 |
|
757 |
|
758 |
|
759 |
|
760 @publishedAll |
|
761 @externallyDefinedApi |
|
762 */ |
|
763 |
|
764 /** @fn pow(double x, double y) |
|
765 @param x |
|
766 @param y |
|
767 @see math() |
|
768 |
|
769 |
|
770 |
|
771 |
|
772 @publishedAll |
|
773 @externallyDefinedApi |
|
774 */ |
|
775 |
|
776 /** @fn sqrt(double x) |
|
777 @param x |
|
778 @see math() |
|
779 |
|
780 |
|
781 |
|
782 |
|
783 @publishedAll |
|
784 @externallyDefinedApi |
|
785 */ |
|
786 |
|
787 /** @fn ceil(double x) |
|
788 @param x |
|
789 @return x is integral or infinite, x itself is returned. |
|
790 |
|
791 |
|
792 The ceil , ceilf, and ceill functions return the smallest integral value |
|
793 greater than or equal to x , |
|
794 expressed as a floating-point number. |
|
795 |
|
796 - Examples |
|
797 @code |
|
798 #include <math.h> |
|
799 int main( void ) |
|
800 { |
|
801 double y; |
|
802 y = ceil( 2.8 ); |
|
803 printf( "The ceil of 2.8 is %f |
|
804 ", y ); |
|
805 y = ceil( -2.8 ); |
|
806 printf( "The ceil of -2.8 is %f |
|
807 ", y ); |
|
808 y = ceilf( 2.8 ); |
|
809 printf( "The ceilf of 2.8 is %f |
|
810 ", y ); |
|
811 y = ceilf( -2.8 ); |
|
812 printf( "The ceilf of -2.8 is %f |
|
813 ", y ); |
|
814 y = ceill( 2.8 ); |
|
815 printf( "The ceill of 2.8 is %f |
|
816 ", y ); |
|
817 y = ceill( -2.8 ); |
|
818 printf( "The ceill of -2.8 is %f |
|
819 ", y ); |
|
820 } |
|
821 |
|
822 @endcode |
|
823 Output |
|
824 @code |
|
825 The ceil of 2.8 is 3.000000 |
|
826 The ceil of -2.8 is -2.000000 |
|
827 The ceilf of 2.8 is 3.000000 |
|
828 The ceilf of -2.8 is -2.000000 |
|
829 The ceill of 2.8 is 3.000000 |
|
830 The ceill of -2.8 is -2.000000 |
|
831 |
|
832 @endcode |
|
833 @see abs() |
|
834 @see fabs() |
|
835 @see floor() |
|
836 @see ieee() |
|
837 @see math() |
|
838 @see rint() |
|
839 @see round() |
|
840 @see trunc() |
|
841 |
|
842 |
|
843 |
|
844 |
|
845 @publishedAll |
|
846 @externallyDefinedApi |
|
847 */ |
|
848 |
|
849 /** @fn ceilf(float x) |
|
850 @param x |
|
851 @see abs() |
|
852 @see fabs() |
|
853 @see floor() |
|
854 @see ieee() |
|
855 @see math() |
|
856 @see rint() |
|
857 @see round() |
|
858 @see trunc() |
|
859 |
|
860 |
|
861 |
|
862 |
|
863 @publishedAll |
|
864 @externallyDefinedApi |
|
865 */ |
|
866 |
|
867 /** @fn fabs(double x) |
|
868 @param x |
|
869 @return The fabs , fabsf and fabsl functions return the absolute value of x . |
|
870 |
|
871 The fabs , fabsf and fabsl functions compute the absolute value of a floating-point number x . |
|
872 |
|
873 Examples |
|
874 @code |
|
875 #include <stdio.h> |
|
876 #include <math.h> |
|
877 int main( void ) |
|
878 { |
|
879 double dx = -3.141593, dy; |
|
880 dy = fabs( dx ); |
|
881 printf( "fabs( %f ) = %f |
|
882 ", dx, dy ); |
|
883 dy = fabsf( dx ); |
|
884 printf( "fabsf( %f ) = %f |
|
885 ", dx, dy ); |
|
886 dy = fabsl( dx ); |
|
887 printf( "fabsl( %f ) = %f |
|
888 ", dx, dy ); |
|
889 } |
|
890 |
|
891 @endcode |
|
892 Output |
|
893 @code |
|
894 fabs( -3.141593 ) = 3.141593 |
|
895 fabsf( -3.141593 ) = 3.141593 |
|
896 fabsl( -3.141593 ) = 3.141593 |
|
897 |
|
898 @endcode |
|
899 @see abs() |
|
900 @see ceil() |
|
901 @see floor() |
|
902 @see ieee() |
|
903 @see math() |
|
904 @see rint() |
|
905 |
|
906 |
|
907 |
|
908 |
|
909 @publishedAll |
|
910 @externallyDefinedApi |
|
911 */ |
|
912 |
|
913 /** @fn fabsf(float x) |
|
914 @param x |
|
915 @see abs() |
|
916 @see ceil() |
|
917 @see floor() |
|
918 @see ieee() |
|
919 @see math() |
|
920 @see rint() |
|
921 |
|
922 |
|
923 |
|
924 |
|
925 @publishedAll |
|
926 @externallyDefinedApi |
|
927 */ |
|
928 |
|
929 /** @fn fabsl(long double x) |
|
930 @param x |
|
931 @see abs() |
|
932 @see ceil() |
|
933 @see floor() |
|
934 @see ieee() |
|
935 @see math() |
|
936 @see rint() |
|
937 |
|
938 |
|
939 |
|
940 |
|
941 @publishedAll |
|
942 @externallyDefinedApi |
|
943 */ |
|
944 |
|
945 /** @fn floor(double x) |
|
946 @param x |
|
947 @return x is integral or infinite, x itself is returned. |
|
948 |
|
949 |
|
950 The floor , floorf, and floorl functions return the largest integral value |
|
951 less than or equal to x , |
|
952 expressed as a floating-point number. |
|
953 |
|
954 - Examples |
|
955 @code |
|
956 #include <math.h> |
|
957 int main( void ) |
|
958 { |
|
959 double y; |
|
960 y = floor( 2.8 ); |
|
961 printf( "The floor of 2.8 is %f |
|
962 ", y ); |
|
963 y = floorf( 2.8 ); |
|
964 printf( "The floorf of 2.8 is %f |
|
965 ", y ); |
|
966 y = floorl( 2.8 ); |
|
967 printf( "The floorl of 2.8 is %f |
|
968 ", y ); |
|
969 } |
|
970 |
|
971 @endcode |
|
972 Output |
|
973 @code |
|
974 The floor of 2.8 is 2.000000 |
|
975 The floorf of 2.8 is 2.000000 |
|
976 The floorl of 2.8 is 2.000000 |
|
977 |
|
978 @endcode |
|
979 @see abs() |
|
980 @see ceil() |
|
981 @see fabs() |
|
982 @see ieee() |
|
983 @see math() |
|
984 @see rint() |
|
985 @see round() |
|
986 @see trunc() |
|
987 |
|
988 |
|
989 |
|
990 |
|
991 @publishedAll |
|
992 @externallyDefinedApi |
|
993 */ |
|
994 |
|
995 /** @fn floorf(float x) |
|
996 @param x |
|
997 @see abs() |
|
998 @see ceil() |
|
999 @see fabs() |
|
1000 @see ieee() |
|
1001 @see math() |
|
1002 @see rint() |
|
1003 @see round() |
|
1004 @see trunc() |
|
1005 |
|
1006 |
|
1007 |
|
1008 |
|
1009 @publishedAll |
|
1010 @externallyDefinedApi |
|
1011 */ |
|
1012 |
|
1013 /** @fn fmod(double x, double y) |
|
1014 @param x |
|
1015 @param y |
|
1016 @return The fmod, fmodf, and fmodl functions return the value x - i * y , for some integer i such that, if y is non-zero, the result has the same sign as x and magnitude less than the magnitude of y . |
|
1017 If y is zero, whether a domain error occurs or the fmod and fmodf function returns zero is implementation-defined. |
|
1018 |
|
1019 |
|
1020 The fmod, fmodf, and fmodl functions compute the floating-point remainder of x / y . fmodl is an alias to the function fmod. |
|
1021 |
|
1022 Examples |
|
1023 @code |
|
1024 #include <math.h> |
|
1025 int main() |
|
1026 { |
|
1027 double x1 = 6.5, x2 = 2.25, y; |
|
1028 y = fmod( x1, x2 ); |
|
1029 printf( "fmod(%f , %f) = %f |
|
1030 ", x1, x2, y ); |
|
1031 y = fmodf( x1, x2 ); |
|
1032 printf( "fmodf(%f , %f) = %f |
|
1033 ", x1, x2, y ); |
|
1034 y = fmodl( x1, x2 ); |
|
1035 printf( "fmodl(%f , %f) = %f |
|
1036 ", x1, x2, y ); |
|
1037 } |
|
1038 |
|
1039 @endcode |
|
1040 Output |
|
1041 @code |
|
1042 fmod ( 6.4, 2 ) = 2.0 |
|
1043 fmodf( 6.4, 2 ) = 2.0 |
|
1044 fmodl( 6.4, 2 ) = 2.0 |
|
1045 |
|
1046 @endcode |
|
1047 @see math() |
|
1048 |
|
1049 |
|
1050 |
|
1051 |
|
1052 @publishedAll |
|
1053 @externallyDefinedApi |
|
1054 */ |
|
1055 |
|
1056 /** @fn fmodf(float x, float y) |
|
1057 @param x |
|
1058 @param y |
|
1059 @see math() |
|
1060 |
|
1061 |
|
1062 |
|
1063 |
|
1064 @publishedAll |
|
1065 @externallyDefinedApi |
|
1066 */ |
|
1067 |
|
1068 /** @fn acosh(double x) |
|
1069 @param x |
|
1070 @return The acosh , acoshf , |
|
1071 and acoshl functions |
|
1072 return the inverse hyperbolic cosine of x . |
|
1073 If the argument is less than 1, acosh returns an NaN. |
|
1074 |
|
1075 |
|
1076 The acosh and acoshf functions compute the inverse hyperbolic cosine |
|
1077 of the real |
|
1078 argument x . |
|
1079 The function acoshl is an alias to the function acosh . |
|
1080 |
|
1081 - Examples |
|
1082 @code |
|
1083 #include <math.h> |
|
1084 int main( ) |
|
1085 { |
|
1086 double x = 1; |
|
1087 double y = acosh( x ); |
|
1088 printf( "acosh(%f) = %f |
|
1089 ", x, y ); |
|
1090 y = acoshf( x ); |
|
1091 printf( "acoshf(%f) = %f |
|
1092 ", x, y ); |
|
1093 y = acoshl( x ); |
|
1094 printf( "acoshl(%f) = %f |
|
1095 ", x, y ); |
|
1096 } |
|
1097 |
|
1098 @endcode |
|
1099 Output |
|
1100 @code |
|
1101 acosh( 1.000000 ) = 0.0 |
|
1102 acoshf(1.000000 ) = 0.0 |
|
1103 acoshl(1.000000 ) = 0.0 |
|
1104 |
|
1105 @endcode |
|
1106 @see asinh() |
|
1107 @see atanh() |
|
1108 @see exp() |
|
1109 @see math() |
|
1110 |
|
1111 |
|
1112 |
|
1113 |
|
1114 @publishedAll |
|
1115 @externallyDefinedApi |
|
1116 */ |
|
1117 |
|
1118 /** @fn acoshf(float x) |
|
1119 @param x |
|
1120 @see asinh() |
|
1121 @see atanh() |
|
1122 @see exp() |
|
1123 @see math() |
|
1124 |
|
1125 |
|
1126 |
|
1127 |
|
1128 @publishedAll |
|
1129 @externallyDefinedApi |
|
1130 */ |
|
1131 |
|
1132 /** @fn asinh(double x) |
|
1133 @param x |
|
1134 @see acosh() |
|
1135 @see atanh() |
|
1136 @see exp() |
|
1137 @see math() |
|
1138 |
|
1139 |
|
1140 |
|
1141 |
|
1142 @publishedAll |
|
1143 @externallyDefinedApi |
|
1144 */ |
|
1145 |
|
1146 /** @fn asinhf(float x) |
|
1147 @param x |
|
1148 @see acosh() |
|
1149 @see atanh() |
|
1150 @see exp() |
|
1151 @see math() |
|
1152 |
|
1153 |
|
1154 |
|
1155 |
|
1156 @publishedAll |
|
1157 @externallyDefinedApi |
|
1158 */ |
|
1159 |
|
1160 /** @fn atanh(double x) |
|
1161 @param x |
|
1162 @see acosh() |
|
1163 @see asinh() |
|
1164 @see exp() |
|
1165 @see math() |
|
1166 |
|
1167 |
|
1168 |
|
1169 |
|
1170 @publishedAll |
|
1171 @externallyDefinedApi |
|
1172 */ |
|
1173 |
|
1174 /** @fn atanhf(float x) |
|
1175 @param x |
|
1176 @see acosh() |
|
1177 @see asinh() |
|
1178 @see exp() |
|
1179 @see math() |
|
1180 |
|
1181 |
|
1182 |
|
1183 |
|
1184 @publishedAll |
|
1185 @externallyDefinedApi |
|
1186 */ |
|
1187 |
|
1188 /** @fn cbrt(double x) |
|
1189 @param x |
|
1190 @return The cbrt and cbrtf functions return the requested cube root. |
|
1191 The sqrt and sqrtf functions return the requested square root |
|
1192 unless an error occurs. |
|
1193 An attempt to take the sqrt of negative x causes an NaN to be returned. |
|
1194 |
|
1195 |
|
1196 The cbrt and cbrtf functions compute |
|
1197 the cube root of x . |
|
1198 The function cbrtl is an alias to the function cbrt. |
|
1199 |
|
1200 The sqrt and sqrtf functions compute the |
|
1201 non-negative square root of x. |
|
1202 The function sqrtl is an alias to the function sqrt. |
|
1203 |
|
1204 - Examples |
|
1205 @code |
|
1206 #include <math.h> |
|
1207 int main( ) |
|
1208 { |
|
1209 double inp = -0.001; |
|
1210 double y; |
|
1211 y = cbrt( inp ); |
|
1212 printf( "cbrt( %f) = %f |
|
1213 ", x1, y ); |
|
1214 y = cbrtf( inp); |
|
1215 printf( "cbrtf( %f) = %f |
|
1216 ", inp, y ); |
|
1217 y = cbrtl( inp); |
|
1218 printf( "cbrtl( %f) = %f |
|
1219 |
|
1220 ", inp, y ); |
|
1221 inp = 2209.0; |
|
1222 y = sqrt( inp); |
|
1223 printf( "sqrt( %f) = %d |
|
1224 ", inp, y ); |
|
1225 y = sqrtf( inp); |
|
1226 printf( "sqrtf( %f) = %d |
|
1227 ", inp, y ); |
|
1228 y = sqrtl( inp); |
|
1229 printf( "sqrtl( %f) = %d |
|
1230 ", inp, y ); |
|
1231 } |
|
1232 |
|
1233 @endcode |
|
1234 Output |
|
1235 @code |
|
1236 cbrt ( -0.001 ) = -0.100000 |
|
1237 cbrtf( -0.001 ) = -0.100000 |
|
1238 cbrtl( -0.001 ) = -0.100000 |
|
1239 sqrt ( 2209.0 ) = 47.0 |
|
1240 sqrtf( 2209.0 ) = 47.0 |
|
1241 sqrtl( 2209.0 ) = 47.0 |
|
1242 |
|
1243 @endcode |
|
1244 @see math() |
|
1245 |
|
1246 |
|
1247 |
|
1248 |
|
1249 @publishedAll |
|
1250 @externallyDefinedApi |
|
1251 */ |
|
1252 |
|
1253 /** @fn erf(double x) |
|
1254 @param x |
|
1255 @see math() |
|
1256 |
|
1257 |
|
1258 |
|
1259 |
|
1260 @publishedAll |
|
1261 @externallyDefinedApi |
|
1262 */ |
|
1263 |
|
1264 /** @fn erfc(double x) |
|
1265 @param x |
|
1266 @see math() |
|
1267 |
|
1268 |
|
1269 |
|
1270 |
|
1271 @publishedAll |
|
1272 @externallyDefinedApi |
|
1273 */ |
|
1274 |
|
1275 /** @fn erff(float x) |
|
1276 @param x |
|
1277 @see math() |
|
1278 |
|
1279 |
|
1280 |
|
1281 |
|
1282 @publishedAll |
|
1283 @externallyDefinedApi |
|
1284 */ |
|
1285 |
|
1286 /** @fn erfcf(float x) |
|
1287 @param x |
|
1288 @see math() |
|
1289 |
|
1290 |
|
1291 |
|
1292 |
|
1293 @publishedAll |
|
1294 @externallyDefinedApi |
|
1295 */ |
|
1296 |
|
1297 /** @fn exp2(double x) |
|
1298 @param x |
|
1299 @see math() |
|
1300 |
|
1301 |
|
1302 |
|
1303 |
|
1304 @publishedAll |
|
1305 @externallyDefinedApi |
|
1306 */ |
|
1307 |
|
1308 /** @fn exp2f(float x) |
|
1309 @param x |
|
1310 @see math() |
|
1311 |
|
1312 |
|
1313 |
|
1314 |
|
1315 @publishedAll |
|
1316 @externallyDefinedApi |
|
1317 */ |
|
1318 |
|
1319 /** @fn expm1(double) |
|
1320 |
|
1321 The expm1 and expm1f functions compute the value exp(x)-1 accurately even for tiny argument x . |
|
1322 |
|
1323 @publishedAll |
|
1324 @externallyDefinedApi |
|
1325 */ |
|
1326 |
|
1327 /** @fn expm1f(float x) |
|
1328 |
|
1329 The expm1 and expm1f functions compute the value exp(x)-1 accurately even for tiny argument x . |
|
1330 |
|
1331 @param x |
|
1332 @see math() |
|
1333 |
|
1334 |
|
1335 |
|
1336 |
|
1337 @publishedAll |
|
1338 @externallyDefinedApi |
|
1339 */ |
|
1340 |
|
1341 /** @fn fma(double x, double y, double z) |
|
1342 @param x |
|
1343 @param y |
|
1344 @param z |
|
1345 |
|
1346 @code |
|
1347 |
|
1348 The fma, fmaf, and fmal functions return (x * y) + z, computed with only one rounding error. Using the ordinary multiplication and addition operators, by contrast, results in two roundings: one for the intermediate product and one for the final result. |
|
1349 For instance, the expression 1.2e100 * 2.0e208 - 1.4e308 produces oo due to overflow in the intermediate product, whereas fma(1.2e100, 2.0e208, -1.4e308) returns approximately 1.0e308. |
|
1350 |
|
1351 The fused multiply-add operation is often used to improve the accuracy of calculations such as dot products. It may also be used to improve performance on machines that implement it natively. The macros FP_FAST_FMA, FP_FAST_FMAF and FP_FAST_FMAL may be defined in #include \<math.h\>to indicate that fma, fmaf, and fmal (respectively) have comparable or faster speed than a multiply operation followed by an add operation. |
|
1352 @endcode |
|
1353 |
|
1354 |
|
1355 |
|
1356 - Examples |
|
1357 @code |
|
1358 #include <math.h> |
|
1359 int main() |
|
1360 { |
|
1361 double x1 = 1, x2 = 2, x3 =3, y; |
|
1362 y = fma( x1, x2, x3 ); |
|
1363 printf( "fma(%f , %f , %f) = %f |
|
1364 ", x1, x2, x3, y ); |
|
1365 y = fmaf( x1, x2, x3 ); |
|
1366 printf( "fmaf(%f , %f , %f) = %f |
|
1367 ", x1, x2, x3, y ); |
|
1368 y = fmal( x1, x2, x3 ); |
|
1369 printf( "fmal(%f , %f , %f) = %f |
|
1370 ", x1, x2, x3, y ); |
|
1371 } |
|
1372 |
|
1373 @endcode |
|
1374 Output |
|
1375 @code |
|
1376 fma ( 1, 2, 3 ) = 5 |
|
1377 fmaf( 1, 2, 3 ) = 5 |
|
1378 fmal( 1, 2, 3 ) = 5 |
|
1379 |
|
1380 @endcode |
|
1381 Implementation notes In general, these routines will behave as one would expect if x * y + z |
|
1382 were computed with unbounded precision and range, |
|
1383 then rounded to the precision of the return type. |
|
1384 However, on some platforms, |
|
1385 |
|
1386 @see math() |
|
1387 |
|
1388 |
|
1389 |
|
1390 |
|
1391 @publishedAll |
|
1392 @externallyDefinedApi |
|
1393 */ |
|
1394 |
|
1395 /** @fn fmaf(float x, float y, float z) |
|
1396 @param x |
|
1397 @param y |
|
1398 @param z |
|
1399 @see math() |
|
1400 |
|
1401 |
|
1402 |
|
1403 |
|
1404 @publishedAll |
|
1405 @externallyDefinedApi |
|
1406 */ |
|
1407 |
|
1408 /** @fn fmax(double x, double y) |
|
1409 @param x |
|
1410 @param y |
|
1411 |
|
1412 The fmax, fmaxf, and fmaxl functions return the larger of x and y , |
|
1413 and likewise, the fmin, fminf, and fminl functions return the smaller of x and y . |
|
1414 They treat +0.0 |
|
1415 as being larger than -0.0. |
|
1416 If one argument is an NaN(Not a Number), then the other argument is returned. |
|
1417 If both arguments are NaN(Not a Number)s, then the result is an NaN(Not a Number). |
|
1418 |
|
1419 - Examples |
|
1420 @code |
|
1421 #include <math.h> |
|
1422 int main( void ) |
|
1423 { |
|
1424 double y; |
|
1425 y = fmax( 0, -9 ); |
|
1426 printf( "fmax ( 0, -9) = %f |
|
1427 ", y ); |
|
1428 y = fmaxf( 0, -9 ); |
|
1429 printf( "fmaxf( 0, -9) = %f |
|
1430 ", y ); |
|
1431 y = fmaxl( 0, -9 ); |
|
1432 printf( "fmaxl( 0, -9) = %f |
|
1433 ", y ); |
|
1434 y = fmin( 0, -9 ); |
|
1435 printf( "fmin ( 0, -9) = %f |
|
1436 ", y ); |
|
1437 y = fminf( 0, -9 ); |
|
1438 printf( "fminf ( 0, -9) = %f |
|
1439 ", y ); |
|
1440 y = fminl( 0, -9 ); |
|
1441 printf( "fminl ( 0, -9) = %f |
|
1442 ", y ); |
|
1443 } |
|
1444 |
|
1445 @endcode |
|
1446 Output |
|
1447 @code |
|
1448 fmax( 0, -9 ) = 0 |
|
1449 fmaxf( 0, -9 ) = 0 |
|
1450 fmaxl( 0, -9 ) = 0 |
|
1451 fmin( 0, -9 ) = -9 |
|
1452 fminf( 0, -9 ) = -9 |
|
1453 fminl( 0, -9 ) = -9 |
|
1454 |
|
1455 @endcode |
|
1456 @see fabs() |
|
1457 @see fdim() |
|
1458 @see math() |
|
1459 |
|
1460 |
|
1461 |
|
1462 |
|
1463 @publishedAll |
|
1464 @externallyDefinedApi |
|
1465 */ |
|
1466 |
|
1467 /** @fn fmaxf(float x, float y) |
|
1468 @param x |
|
1469 @param y |
|
1470 @see fabs() |
|
1471 @see fdim() |
|
1472 @see math() |
|
1473 |
|
1474 |
|
1475 |
|
1476 |
|
1477 @publishedAll |
|
1478 @externallyDefinedApi |
|
1479 */ |
|
1480 |
|
1481 /** @fn fmaxl(long double x, long double y) |
|
1482 @param x |
|
1483 @param y |
|
1484 @see fabs() |
|
1485 @see fdim() |
|
1486 @see math() |
|
1487 |
|
1488 |
|
1489 |
|
1490 |
|
1491 @publishedAll |
|
1492 @externallyDefinedApi |
|
1493 */ |
|
1494 |
|
1495 /** @fn hypot(double x, double y) |
|
1496 @param x |
|
1497 @param y |
|
1498 |
|
1499 @code |
|
1500 The hypot and hypotf functions |
|
1501 compute the |
|
1502 sqrt(x*x+y*y) |
|
1503 in such a way that underflow will not happen, and overflow |
|
1504 occurs only if the final result deserves it. |
|
1505 @endcode |
|
1506 |
|
1507 Examples |
|
1508 @code |
|
1509 void main( void ) |
|
1510 { |
|
1511 double x1 = 3.0 , x2 = 4.0, y; |
|
1512 y = hypot( x1, x2 ); |
|
1513 printf( "atan2(%f , %f) = %f |
|
1514 ", x1, x2, y ); |
|
1515 y = hypotf( x1, x2 ); |
|
1516 printf( "atan2f(%f , %f) = %f |
|
1517 ", x1, x2, y ); |
|
1518 y = hypotl( x1, x2 ); |
|
1519 printf( "hypotl(%f , %f) = %f |
|
1520 ", x1, x2, y ); |
|
1521 } |
|
1522 |
|
1523 @endcode |
|
1524 Output |
|
1525 @code |
|
1526 hypot ( 3.0, 4.0 ) = 5.000000 |
|
1527 hypotf( 3.0, 4.0 ) = 5.000000 |
|
1528 hypotl( 3.0, 4.0 ) = 5.000000 |
|
1529 |
|
1530 @endcode |
|
1531 |
|
1532 Notes: |
|
1533 |
|
1534 As might be expected, hypot (v, NaN); |
|
1535 and hypot (NaN, v); |
|
1536 are NaN for all finite v. But programmers might be surprised at first to discover that hypot (±oo, NaN); |
|
1537 = +oo. This is intentional; it happens because hypot (oo, v); |
|
1538 = +oo for all v, finite or infinite. Hence hypot (oo, v); |
|
1539 is independent of v. Unlike the reserved operand fault on a VAX, the IEEE NaN is designed to disappear when it turns out to be irrelevant, as it does in hypot (oo, NaN); |
|
1540 hypot. |
|
1541 |
|
1542 hypot (oo, v); |
|
1543 = hypot (v, oo); |
|
1544 = +oo for all v, including NaN. |
|
1545 |
|
1546 @see math() |
|
1547 @see sqrt() |
|
1548 |
|
1549 |
|
1550 |
|
1551 |
|
1552 @publishedAll |
|
1553 @externallyDefinedApi |
|
1554 */ |
|
1555 |
|
1556 /** @fn hypotf(float x, float y) |
|
1557 @param x |
|
1558 @param y |
|
1559 @see math() |
|
1560 @see sqrt() |
|
1561 |
|
1562 |
|
1563 |
|
1564 |
|
1565 @publishedAll |
|
1566 @externallyDefinedApi |
|
1567 */ |
|
1568 |
|
1569 /** @fn ilogb(double x) |
|
1570 @param x |
|
1571 |
|
1572 The functions ilogb, ilogbf, and ilogbl return x ’s exponent, in integer format. ilogb (±oo); |
|
1573 @code |
|
1574 returns INT_MAX, ilogb (±NaN); |
|
1575 returns FP_ILOGBNAN and ilogb (0); |
|
1576 returns FP_ILOGB0. |
|
1577 @endcode |
|
1578 |
|
1579 Examples |
|
1580 @code |
|
1581 #include <math.h> |
|
1582 int main( ) |
|
1583 { |
|
1584 double e = 1024; |
|
1585 /*iLogb(), ilogbf() and ilogbl() */ |
|
1586 y = ilogb( e ); |
|
1587 printf( "ilogb( %f) = %f |
|
1588 ", e, y ); |
|
1589 y = ilogbf( e ); |
|
1590 printf( "ilogbf( %f) = %f |
|
1591 ", e, y ); |
|
1592 y = ilogbl( e ); |
|
1593 printf( "ilogbl( %f) = %f |
|
1594 |
|
1595 ", e, y ); |
|
1596 } |
|
1597 |
|
1598 @endcode |
|
1599 Output |
|
1600 @code |
|
1601 ilogb (1024) = 10.000000 |
|
1602 ilogbf(1024) = 10.000000 |
|
1603 ilogbl(1024) = 10.000000 |
|
1604 |
|
1605 @endcode |
|
1606 @see frexp() |
|
1607 @see ieee() |
|
1608 @see math() |
|
1609 @see scalbn() |
|
1610 |
|
1611 |
|
1612 |
|
1613 |
|
1614 @publishedAll |
|
1615 @externallyDefinedApi |
|
1616 */ |
|
1617 |
|
1618 /** @fn ilogbf(float x) |
|
1619 @param x |
|
1620 @see frexp() |
|
1621 @see ieee() |
|
1622 @see math() |
|
1623 @see scalbn() |
|
1624 |
|
1625 |
|
1626 |
|
1627 |
|
1628 @publishedAll |
|
1629 @externallyDefinedApi |
|
1630 */ |
|
1631 |
|
1632 /** @fn ilogbl(long double x) |
|
1633 @param x |
|
1634 @see frexp() |
|
1635 @see ieee() |
|
1636 @see math() |
|
1637 @see scalbn() |
|
1638 |
|
1639 |
|
1640 |
|
1641 |
|
1642 @publishedAll |
|
1643 @externallyDefinedApi |
|
1644 */ |
|
1645 |
|
1646 /** @fn lgamma(double x) |
|
1647 @param x |
|
1648 @see math() |
|
1649 |
|
1650 |
|
1651 |
|
1652 |
|
1653 @publishedAll |
|
1654 @externallyDefinedApi |
|
1655 */ |
|
1656 |
|
1657 /** @fn lgamma_r(double x, int *signgamp) |
|
1658 @param x |
|
1659 @param signgamp |
|
1660 @see math() |
|
1661 |
|
1662 |
|
1663 |
|
1664 |
|
1665 @publishedAll |
|
1666 @externallyDefinedApi |
|
1667 */ |
|
1668 |
|
1669 /** @fn lgammaf(float x) |
|
1670 @param x |
|
1671 @see math() |
|
1672 |
|
1673 |
|
1674 |
|
1675 |
|
1676 @publishedAll |
|
1677 @externallyDefinedApi |
|
1678 */ |
|
1679 |
|
1680 /** @fn lgammaf_r(float x, int *signgamp) |
|
1681 @param x |
|
1682 @param signgamp |
|
1683 @see math() |
|
1684 |
|
1685 |
|
1686 |
|
1687 |
|
1688 @publishedAll |
|
1689 @externallyDefinedApi |
|
1690 */ |
|
1691 |
|
1692 /** @fn llrint(double x) |
|
1693 @param x |
|
1694 @return |
|
1695 |
|
1696 - Detailed description |
|
1697 The lrint function returns the integer nearest to its argument x according to the current rounding mode. |
|
1698 When the rounded result is representable as a long , |
|
1699 the expression |
|
1700 |
|
1701 The llrint , llrintf and lrintf functions differ from lrint only in their input and output types. lrintf and llrintl is just an aliases to the functions lrint (and); llrint respectively |
|
1702 |
|
1703 - Examples |
|
1704 @code |
|
1705 #include <math.h> |
|
1706 int main( void ) |
|
1707 { |
|
1708 double x1 = 1.4; |
|
1709 long long y; |
|
1710 int res ; |
|
1711 y = llrint( x1 ); |
|
1712 printf( "llrint(%f) = %d |
|
1713 ", x1, y ); |
|
1714 y = llrintf( x1 ); |
|
1715 printf( "llrintf(%f) = %d |
|
1716 ", x1, y ); |
|
1717 y = llrintl( x1 ); |
|
1718 printf( "llrintl(%f) = %d |
|
1719 ", x1, y ); |
|
1720 res = lrint( x1 ); |
|
1721 printf( "lrint(%f) = %d |
|
1722 ", x1, res ); |
|
1723 res = lrintf( x1 ); |
|
1724 printf( "lrintf(%f) = %d |
|
1725 ", x1, res ); |
|
1726 res = lrintl( x1 ); |
|
1727 printf( "lrintl(%f) = %d |
|
1728 ", x1, res ); |
|
1729 } |
|
1730 |
|
1731 @endcode |
|
1732 Output |
|
1733 @code |
|
1734 llrint ( 1.4 ) = 1.000000 |
|
1735 llrintf( 1.4 ) = 1.000000 |
|
1736 llrintl( 1.4 ) = 1.000000 |
|
1737 lrint ( 1.4 ) = 1.000000 |
|
1738 lrintf( 1.4 ) = 1.000000 |
|
1739 lrintl( 0.0 ) = 1.000000 |
|
1740 |
|
1741 @endcode |
|
1742 @see lround() |
|
1743 @see math() |
|
1744 @see rint() |
|
1745 @see round() |
|
1746 |
|
1747 |
|
1748 |
|
1749 |
|
1750 @publishedAll |
|
1751 @externallyDefinedApi |
|
1752 */ |
|
1753 |
|
1754 /** @fn llrintf(float x) |
|
1755 @param x |
|
1756 @see lround() |
|
1757 @see math() |
|
1758 @see rint() |
|
1759 @see round() |
|
1760 |
|
1761 |
|
1762 |
|
1763 |
|
1764 @publishedAll |
|
1765 @externallyDefinedApi |
|
1766 */ |
|
1767 |
|
1768 /** @fn llround(double x) |
|
1769 @param x |
|
1770 |
|
1771 |
|
1772 The lround function returns the integer nearest to its argument x , |
|
1773 rounding away from zero in halfway cases. |
|
1774 If the rounded result is too large to be represented as a long |
|
1775 value, the return value is undefined. |
|
1776 When the rounded result is representable as a long , |
|
1777 the expression lround (x); is equivalent to round (x);( long) (although the former may be more efficient). |
|
1778 |
|
1779 The llround , llroundf , llroundl , lroundf and lroundl functions differ from lround only in their input and output types. |
|
1780 |
|
1781 Examples |
|
1782 @code |
|
1783 #include <math.h> |
|
1784 int main( void ) |
|
1785 { |
|
1786 double x1 = 1.5; |
|
1787 long long y; |
|
1788 int res ; |
|
1789 y = llround( x1 ); |
|
1790 printf( "llround(%f) = %d |
|
1791 ", x1, y ); |
|
1792 y = llroundf( x1 ); |
|
1793 printf( "llroundf(%f) = %d |
|
1794 ", x1, y ); |
|
1795 y = llroundl( x1 ); |
|
1796 printf( "llroundl(%f) = %d |
|
1797 |
|
1798 ", x1, y ); |
|
1799 res = lround( x1 ); |
|
1800 printf( "lround(%f) = %d |
|
1801 ", x1, res ); |
|
1802 res = lroundf( x1 ); |
|
1803 printf( "lroundf(%f) = %d |
|
1804 ", x1, res ); |
|
1805 res = lroundl( x1 ); |
|
1806 printf( "lroundl(%f) = %d |
|
1807 ", x1, res ); |
|
1808 } |
|
1809 |
|
1810 @endcode |
|
1811 Output |
|
1812 @code |
|
1813 llround ( 1.5 ) = 2.000000 |
|
1814 llroundf( 1.5 ) = 2.000000 |
|
1815 llroundl( 1.5 ) = 2.000000 |
|
1816 lround ( 1.5 ) = 2.000000 |
|
1817 lroundf( 1.5 ) = 2.000000 |
|
1818 lroundl( 1.5 ) = 2.000000 |
|
1819 |
|
1820 @endcode |
|
1821 @see lrint() |
|
1822 @see math() |
|
1823 @see rint() |
|
1824 @see round() |
|
1825 |
|
1826 |
|
1827 |
|
1828 |
|
1829 @publishedAll |
|
1830 @externallyDefinedApi |
|
1831 */ |
|
1832 |
|
1833 /** @fn llroundf(float x) |
|
1834 @param x |
|
1835 @see lrint() |
|
1836 @see math() |
|
1837 @see rint() |
|
1838 @see round() |
|
1839 |
|
1840 |
|
1841 |
|
1842 |
|
1843 @publishedAll |
|
1844 @externallyDefinedApi |
|
1845 */ |
|
1846 |
|
1847 /** @fn log1p(double x) |
|
1848 @param x |
|
1849 @see math() |
|
1850 |
|
1851 |
|
1852 |
|
1853 |
|
1854 @publishedAll |
|
1855 @externallyDefinedApi |
|
1856 */ |
|
1857 |
|
1858 /** @fn log1pf(float x) |
|
1859 @param x |
|
1860 @see math() |
|
1861 |
|
1862 |
|
1863 |
|
1864 |
|
1865 @publishedAll |
|
1866 @externallyDefinedApi |
|
1867 */ |
|
1868 |
|
1869 /** @fn logb(double x) |
|
1870 @param x |
|
1871 - Detailed description |
|
1872 |
|
1873 These functions allow users to test conformance to -ieee754 . |
|
1874 Their use is not otherwise recommended. |
|
1875 @code |
|
1876 logb (x); and logbf (x); return x 's exponent n , |
|
1877 a signed integer converted to double-precision floating-point. logb (±oo); = +oo; logb (0); = -oo |
|
1878 |
|
1879 scalb (x, n); and scalbf (x, n); return x *(2** n ) |
|
1880 computed by exponent manipulation. |
|
1881 |
|
1882 significand (x); and significandf (x); return sig , |
|
1883 where x = sig * 2** n with 1 <= sig <2. significand (x); and significandf (x); are not defined when x is 0, ±oo, or NaN. |
|
1884 Here , long double version function are just aliases to |
|
1885 their corresponding double version apis. |
|
1886 @endcode |
|
1887 |
|
1888 - Examples |
|
1889 @code |
|
1890 #include <math.h> |
|
1891 int main( ) |
|
1892 { |
|
1893 double e = 2.718282; |
|
1894 /*Logb(), logbf() and logbl() */ |
|
1895 y = logb( e ); |
|
1896 printf( "logb( %f) = %f |
|
1897 ", e, y ); |
|
1898 y = logbf( e ); |
|
1899 printf( "logbf( %f) = %f |
|
1900 ", e, y ); |
|
1901 y = logbl( e ); |
|
1902 printf( "logbl( %f) = %f |
|
1903 |
|
1904 ", e, y ); |
|
1905 /*scalb(), scalbf() and scalbl()*/ |
|
1906 double x1 = 0.8, x2 = 4.0 ; |
|
1907 y = scalb( x1, x2 ); |
|
1908 printf( "scalb( %f, %f) = %f |
|
1909 ", x1, x2, y ); |
|
1910 y = scalbf( x1, x2 ); |
|
1911 printf( "scalbf( %f, %f) = %f |
|
1912 ", x1, x2, y ); |
|
1913 y = scalbl( x1, x2 ); |
|
1914 printf( "scalbl( %f, %f) = %f |
|
1915 ", x1, x2, y ); |
|
1916 /*significand(), significandf() and significandl()*/ |
|
1917 x2 = 4.0 ; |
|
1918 y = significand( x2 ); |
|
1919 printf( "significand(%f) = %f |
|
1920 ", x2, y ); |
|
1921 y = significandf( x2 ); |
|
1922 printf( "significandf(%f) = %f |
|
1923 ",x2, y ); |
|
1924 y = significandl( x2 ); |
|
1925 printf( "significandl(%f) = %f |
|
1926 ",x2, y ); |
|
1927 } |
|
1928 |
|
1929 @endcode |
|
1930 Output |
|
1931 @code |
|
1932 logb( 2.718282) = 1.000000 |
|
1933 logbf( 2.718282) = 1.000000 |
|
1934 logbl( 2.718282) = 1.000000 |
|
1935 scalb( 0.8, 4.0 ) = 12.800000 |
|
1936 scalbf( 0.8, 4.0 ) = 12.800000 |
|
1937 scalbl( 0.8, 4.0 ) = 12.800000 |
|
1938 significand ( 4.0) = 1.000000 |
|
1939 significandf( 4.0) = 1.000000 |
|
1940 significandl( 4.0) = 1.000000 |
|
1941 |
|
1942 @endcode |
|
1943 @see ieee() |
|
1944 @see math() |
|
1945 |
|
1946 |
|
1947 |
|
1948 |
|
1949 @publishedAll |
|
1950 @externallyDefinedApi |
|
1951 */ |
|
1952 |
|
1953 /** @fn logbf(float x) |
|
1954 @param x |
|
1955 @see ieee() |
|
1956 @see math() |
|
1957 |
|
1958 |
|
1959 |
|
1960 |
|
1961 @publishedAll |
|
1962 @externallyDefinedApi |
|
1963 */ |
|
1964 |
|
1965 /** @fn lrint(double x) |
|
1966 @param x |
|
1967 @see lround() |
|
1968 @see math() |
|
1969 @see rint() |
|
1970 @see round() |
|
1971 |
|
1972 |
|
1973 |
|
1974 |
|
1975 @publishedAll |
|
1976 @externallyDefinedApi |
|
1977 */ |
|
1978 |
|
1979 /** @fn lrintf(float x) |
|
1980 @param x |
|
1981 @see lround() |
|
1982 @see math() |
|
1983 @see rint() |
|
1984 @see round() |
|
1985 |
|
1986 |
|
1987 |
|
1988 |
|
1989 @publishedAll |
|
1990 @externallyDefinedApi |
|
1991 */ |
|
1992 |
|
1993 /** @fn lround(double x) |
|
1994 @param x |
|
1995 @see lrint() |
|
1996 @see math() |
|
1997 @see rint() |
|
1998 @see round() |
|
1999 |
|
2000 |
|
2001 |
|
2002 |
|
2003 @publishedAll |
|
2004 @externallyDefinedApi |
|
2005 */ |
|
2006 |
|
2007 /** @fn lroundf(float x) |
|
2008 @param x |
|
2009 @see lrint() |
|
2010 @see math() |
|
2011 @see rint() |
|
2012 @see round() |
|
2013 |
|
2014 |
|
2015 |
|
2016 |
|
2017 @publishedAll |
|
2018 @externallyDefinedApi |
|
2019 */ |
|
2020 |
|
2021 /** @fn nextafter(double x, double y) |
|
2022 @param x |
|
2023 @param y |
|
2024 - Detailed description |
|
2025 These functions |
|
2026 return the next machine representable number from x in direction y . |
|
2027 |
|
2028 - Examples |
|
2029 @code |
|
2030 #include <math.h> |
|
2031 int main( ) |
|
2032 { |
|
2033 double inp1 = 1.3; |
|
2034 double inp2 = 2; |
|
2035 double y; |
|
2036 y = nextafter( inp1, inp2 ); |
|
2037 printf( "nextafter(%f , %f) = %f |
|
2038 ", inp1, inp2, y ); |
|
2039 y = nextafterf( inp1, inp2 ); |
|
2040 printf( "nextafterf(%f , %f) = %f |
|
2041 ", inp1, inp2, y ); |
|
2042 y = nextafterl( inp1, inp2 ); |
|
2043 printf( "nextafterl(%f , %f) = %f |
|
2044 |
|
2045 ", inp1, inp2, y ); |
|
2046 inp1 = 9; |
|
2047 inp2 = 9; |
|
2048 y = nexttoward( inp1, inp2 ); |
|
2049 printf( "nexttoward(%f , %f) = %f |
|
2050 ", inp1, inp2, y ); |
|
2051 y = nexttowardf( inp1, inp2 ); |
|
2052 printf( "nexttowardf(%f , %f) = %f |
|
2053 ", inp1, inp2, y ); |
|
2054 y = nexttowardl( inp1, inp2 ); |
|
2055 printf( "nexttowardl(%f , %f) = %f |
|
2056 ", inp1, inp2, y ); |
|
2057 } |
|
2058 |
|
2059 @endcode |
|
2060 Output |
|
2061 @code |
|
2062 nextafter ( 1.3, 2.0 ) = 1.3 |
|
2063 nextafterf ( 1.3, 2.0 ) = 1.3 |
|
2064 nextafterl ( 1.3, 2.0 ) = 1.3 |
|
2065 nexttoward ( 9, 9 ) = 9 |
|
2066 nexttowardf ( 9, 9 ) = 9 |
|
2067 nexttowardl ( 9, 9 ) = 9 |
|
2068 |
|
2069 @endcode |
|
2070 @see ieee() |
|
2071 @see math() |
|
2072 |
|
2073 |
|
2074 |
|
2075 |
|
2076 @publishedAll |
|
2077 @externallyDefinedApi |
|
2078 */ |
|
2079 |
|
2080 /** @fn nextafterf(float x, float y) |
|
2081 @param x |
|
2082 @param y |
|
2083 @see ieee() |
|
2084 @see math() |
|
2085 |
|
2086 |
|
2087 |
|
2088 |
|
2089 @publishedAll |
|
2090 @externallyDefinedApi |
|
2091 */ |
|
2092 |
|
2093 /** @fn remainder(double x, double p) |
|
2094 @param x |
|
2095 @param p |
|
2096 @see fmod() |
|
2097 @see ieee() |
|
2098 @see math() |
|
2099 |
|
2100 |
|
2101 |
|
2102 |
|
2103 @publishedAll |
|
2104 @externallyDefinedApi |
|
2105 */ |
|
2106 |
|
2107 /** @fn remainderf(float x, float p) |
|
2108 @param x |
|
2109 @param p |
|
2110 @see fmod() |
|
2111 @see ieee() |
|
2112 @see math() |
|
2113 |
|
2114 |
|
2115 |
|
2116 |
|
2117 @publishedAll |
|
2118 @externallyDefinedApi |
|
2119 */ |
|
2120 |
|
2121 /** @fn remquo(double x, double y, int *quo) |
|
2122 @param x |
|
2123 @param y |
|
2124 @param quo |
|
2125 @see fmod() |
|
2126 @see ieee() |
|
2127 @see math() |
|
2128 |
|
2129 |
|
2130 |
|
2131 |
|
2132 @publishedAll |
|
2133 @externallyDefinedApi |
|
2134 */ |
|
2135 |
|
2136 /** @fn remquof(float x, float y, int *quo) |
|
2137 @param x |
|
2138 @param y |
|
2139 @param quo |
|
2140 @see fmod() |
|
2141 @see ieee() |
|
2142 @see math() |
|
2143 |
|
2144 |
|
2145 |
|
2146 |
|
2147 @publishedAll |
|
2148 @externallyDefinedApi |
|
2149 */ |
|
2150 |
|
2151 /** @fn rint(double x) |
|
2152 @param x |
|
2153 @see abs() |
|
2154 @see ceil() |
|
2155 @see fabs() |
|
2156 @see floor() |
|
2157 @see ieee() |
|
2158 @see lrint() |
|
2159 @see lround() |
|
2160 @see math() |
|
2161 @see round() |
|
2162 |
|
2163 |
|
2164 |
|
2165 |
|
2166 @publishedAll |
|
2167 @externallyDefinedApi |
|
2168 */ |
|
2169 |
|
2170 /** @fn rintf(float x) |
|
2171 @param x |
|
2172 @see abs() |
|
2173 @see ceil() |
|
2174 @see fabs() |
|
2175 @see floor() |
|
2176 @see ieee() |
|
2177 @see lrint() |
|
2178 @see lround() |
|
2179 @see math() |
|
2180 @see round() |
|
2181 |
|
2182 |
|
2183 |
|
2184 |
|
2185 @publishedAll |
|
2186 @externallyDefinedApi |
|
2187 */ |
|
2188 |
|
2189 /** @fn j0(double x) |
|
2190 @param x |
|
2191 @return If these functions are successful, |
|
2192 the computed value is returned. |
|
2193 |
|
2194 - Detailed description |
|
2195 The functions j0 , j0f , j1 and j1f compute the Bessel function of the first kind of the order 0 and the order 1, respectively, |
|
2196 for the |
|
2197 real value x ; |
|
2198 the functions jn and jnf compute the Bessel function of the first kind of the integer order n for the real value x . |
|
2199 |
|
2200 The functions y0 , y0f , y1 , |
|
2201 and y1f compute the linearly independent Bessel function of the second kind of the order 0 and the order 1, respectively, |
|
2202 for the |
|
2203 positive real value x ; |
|
2204 the functions yn and ynf compute the Bessel function of the second kind for the integer order n for the positive real value x . |
|
2205 |
|
2206 Here the long double version APIs are aliases the double version APIs. |
|
2207 All APIs \<Function\>l behaves similiar to that of \<Function\>. |
|
2208 |
|
2209 - Examples |
|
2210 @code |
|
2211 #include <math.h> |
|
2212 int main( ) |
|
2213 { |
|
2214 double x = 1.0; |
|
2215 /*J0(), j0f() and j0l() */ |
|
2216 double y = j0( x ); |
|
2217 printf( "j0( %f) = %f |
|
2218 ", x, y ); |
|
2219 y = j0f( x ); |
|
2220 printf( "j0f( %f) = %f |
|
2221 ", x, y ); |
|
2222 y = j0l( x ); |
|
2223 printf( "j0l( %f) = %f |
|
2224 |
|
2225 ", x, y ); |
|
2226 /*J1(), j1f() and j1l() */ |
|
2227 y = j1( x ); |
|
2228 printf( "j1( %f) = %f |
|
2229 ", x, y ); |
|
2230 y = j1f( x ); |
|
2231 printf( "j1f( %f) = %f |
|
2232 ", x, y ); |
|
2233 y = j1l( x ); |
|
2234 printf( "j1l( %f) = %f |
|
2235 |
|
2236 ", x, y ); |
|
2237 /*jn(), jnf() and jnl() */ |
|
2238 y = jn( 3, x ); |
|
2239 printf( "jn( 2, %f) = %f |
|
2240 ", x, y ); |
|
2241 y = jnf( 1, x ); |
|
2242 printf( "jnf( 1, %f) = %f |
|
2243 ", x, y ); |
|
2244 y = jnl( 10, 0.75 ); |
|
2245 printf( "jnl(10, %f) = %f |
|
2246 |
|
2247 ", 0.75, y ); |
|
2248 /*y0(), y0f() and y0l() */ |
|
2249 y = y0( x ); |
|
2250 printf( "y0( %f) = %f |
|
2251 ", x, y ); |
|
2252 y = y0f( x ); |
|
2253 printf( "y0f( %f) = %f |
|
2254 ", x, y ); |
|
2255 y = y0l( x ); |
|
2256 printf( "y0l( %f) = %f |
|
2257 |
|
2258 ", x, y ); |
|
2259 /*y1(), y1f() and y1l() */ |
|
2260 y = y1( x ); |
|
2261 printf( "y1( %f) = %f |
|
2262 ", x, y ); |
|
2263 y = y1f( x ); |
|
2264 printf( "y1f( %f) = %f |
|
2265 ", x, y ); |
|
2266 y = y1l( x ); |
|
2267 printf( "y1l( %f) = %f |
|
2268 |
|
2269 ", x, y ); |
|
2270 /*yn(), ynf() and ynl() */ |
|
2271 y = yn( 3, x ); |
|
2272 printf( "yn( 2, %f) = %f |
|
2273 ", x, y ); |
|
2274 y = ynf( 1, x ); |
|
2275 printf( "ynf( 1, %f) = %f |
|
2276 ", x, y ); |
|
2277 y = ynl( 10, 0.75 ); |
|
2278 printf( "ynl(10, %f) = %f |
|
2279 |
|
2280 ", 0.75, y ); |
|
2281 } |
|
2282 |
|
2283 @endcode |
|
2284 Output |
|
2285 @code |
|
2286 j0( 1.000) = 0.76519768 |
|
2287 j0f( 1.000) = 0.76519768 |
|
2288 j0l( 1.000) = 0.76519768 |
|
2289 j1 ( 1.000) = 0.4400505 |
|
2290 j1f( 1.000) = 0.4400505 |
|
2291 j1l( 1.000) = 0.4400505 |
|
2292 jn ( 3, 1.000) = 0.0195633 |
|
2293 jnf( 1, 1.000) = 0.4400505 |
|
2294 jnl( 10, 0.75) = 0.1496212 |
|
2295 y0 ( 1.000) = 0.0882569 |
|
2296 y0f( 1.000) = 0.0882569 |
|
2297 y0l( 1.000) = 0.0882569 |
|
2298 y1 ( 1.000) = -0.7812128 |
|
2299 y1f( 1.000) = -0.7812128 |
|
2300 y1l( 1.000) = -0.7812128 |
|
2301 yn ( 3, 1.000) = -5.8215176 |
|
2302 ynf( 1, 1.000) = -0.781212 |
|
2303 ynl( 10, 0.75) = -2133501638.9 |
|
2304 |
|
2305 @endcode |
|
2306 @see math() |
|
2307 |
|
2308 |
|
2309 |
|
2310 |
|
2311 @publishedAll |
|
2312 @externallyDefinedApi |
|
2313 */ |
|
2314 |
|
2315 /** @fn j0f(float x) |
|
2316 @param x |
|
2317 @see math() |
|
2318 |
|
2319 |
|
2320 |
|
2321 |
|
2322 @publishedAll |
|
2323 @externallyDefinedApi |
|
2324 */ |
|
2325 |
|
2326 /** @fn j1(double x) |
|
2327 @param x |
|
2328 @see math() |
|
2329 |
|
2330 |
|
2331 |
|
2332 |
|
2333 @publishedAll |
|
2334 @externallyDefinedApi |
|
2335 */ |
|
2336 |
|
2337 /** @fn j1f(float x) |
|
2338 @param x |
|
2339 @see math() |
|
2340 |
|
2341 |
|
2342 |
|
2343 |
|
2344 @publishedAll |
|
2345 @externallyDefinedApi |
|
2346 */ |
|
2347 |
|
2348 /** @fn jn(int n, double x) |
|
2349 @param n |
|
2350 @param x |
|
2351 @see math() |
|
2352 |
|
2353 |
|
2354 |
|
2355 |
|
2356 @publishedAll |
|
2357 @externallyDefinedApi |
|
2358 */ |
|
2359 |
|
2360 /** @fn jnf(int n, float x) |
|
2361 @param n |
|
2362 @param x |
|
2363 @see math() |
|
2364 |
|
2365 |
|
2366 |
|
2367 |
|
2368 @publishedAll |
|
2369 @externallyDefinedApi |
|
2370 */ |
|
2371 |
|
2372 /** @fn scalb(double x, double fn) |
|
2373 @param x |
|
2374 @param fn |
|
2375 @see ieee() |
|
2376 @see math() |
|
2377 |
|
2378 |
|
2379 |
|
2380 |
|
2381 @publishedAll |
|
2382 @externallyDefinedApi |
|
2383 */ |
|
2384 |
|
2385 /** @fn scalbf(float x, float fn) |
|
2386 @param x |
|
2387 @param fn |
|
2388 @see ieee() |
|
2389 @see math() |
|
2390 |
|
2391 |
|
2392 |
|
2393 |
|
2394 @publishedAll |
|
2395 @externallyDefinedApi |
|
2396 */ |
|
2397 |
|
2398 /** @fn scalbln(double x, long n) |
|
2399 @param x |
|
2400 @param n |
|
2401 @return x (*, FLT_RADIX**n); ±HUGE_VAL, (±HUGE_VALF,, and, ±HUGE_VALL); (according to the sign of x ) as appropriate for the return type of the function. x is NaN , a shall be returned. x is ±0 or ±Inf, x shall be returned. n is 0, x shall be returned. |
|
2402 |
|
2403 - Detailed description |
|
2404 These routines return x *(2** n ) |
|
2405 computed by exponent manipulation. |
|
2406 |
|
2407 - Examples |
|
2408 @code |
|
2409 #include <math.h> |
|
2410 int main( ) |
|
2411 { |
|
2412 /*scalbn(), scalbnf() and scalbnl()*/ |
|
2413 double x1 = 0.8, x2 = 4.0 ; |
|
2414 y = scalbn( x1, x2 ); |
|
2415 printf( "scalbn( %f, %f) = %f |
|
2416 ", x1, x2, y ); |
|
2417 y = scalbnf( x1, x2 ); |
|
2418 printf( "scalbnf( %f, %f) = %f |
|
2419 ", x1, x2, y ); |
|
2420 y = scalbnl( x1, x2 ); |
|
2421 printf( "scalbnl( %f, %f) = %f |
|
2422 ", x1, x2, y ); |
|
2423 /*scalbln(), scalblnf() and scalblnl()*/ |
|
2424 x1 = 0.8, x2 = 4.0 ; |
|
2425 y = scalbln( x1, x2 ); |
|
2426 printf( "scalbln( %f, %f) = %f |
|
2427 ", x1, x2, y ); |
|
2428 y = scalblnf( x1, x2 ); |
|
2429 printf( "scalblnf( %f, %f) = %f |
|
2430 ", x1, x2, y ); |
|
2431 y = scalblnl( x1, x2 ); |
|
2432 printf( "scalblnl( %f, %f) = %f |
|
2433 ", x1, x2, y ); |
|
2434 } |
|
2435 |
|
2436 @endcode |
|
2437 Output |
|
2438 @code |
|
2439 scalbn ( 0.8, 4.0 ) = 12.800000 |
|
2440 scalbnf( 0.8, 4.0 ) = 12.800000 |
|
2441 scalbnl( 0.8, 4.0 ) = 12.800000 |
|
2442 scalbln ( 0.8, 4.0 ) = 12.800000 |
|
2443 scalblnf( 0.8, 4.0 ) = 12.800000 |
|
2444 scalblnl( 0.8, 4.0 ) = 12.800000 |
|
2445 |
|
2446 @endcode |
|
2447 @see ieee() |
|
2448 @see math() |
|
2449 |
|
2450 |
|
2451 |
|
2452 |
|
2453 @publishedAll |
|
2454 @externallyDefinedApi |
|
2455 */ |
|
2456 |
|
2457 /** @fn scalblnf(float x, long n) |
|
2458 @param x |
|
2459 @param n |
|
2460 @see ieee() |
|
2461 @see math() |
|
2462 |
|
2463 |
|
2464 |
|
2465 |
|
2466 @publishedAll |
|
2467 @externallyDefinedApi |
|
2468 */ |
|
2469 |
|
2470 /** @fn scalblnl(long double x, long n) |
|
2471 @param x |
|
2472 @param n |
|
2473 @see ieee() |
|
2474 @see math() |
|
2475 |
|
2476 |
|
2477 |
|
2478 |
|
2479 @publishedAll |
|
2480 @externallyDefinedApi |
|
2481 */ |
|
2482 |
|
2483 /** @fn scalbn(double x, int n) |
|
2484 @param x |
|
2485 @param n |
|
2486 @see ieee() |
|
2487 @see math() |
|
2488 |
|
2489 |
|
2490 |
|
2491 |
|
2492 @publishedAll |
|
2493 @externallyDefinedApi |
|
2494 */ |
|
2495 |
|
2496 /** @fn scalbnf(float x, int n) |
|
2497 @param x |
|
2498 @param n |
|
2499 @see ieee() |
|
2500 @see math() |
|
2501 |
|
2502 |
|
2503 |
|
2504 |
|
2505 @publishedAll |
|
2506 @externallyDefinedApi |
|
2507 */ |
|
2508 |
|
2509 /** @fn y0(double x) |
|
2510 @param x |
|
2511 @see math() |
|
2512 |
|
2513 |
|
2514 |
|
2515 |
|
2516 @publishedAll |
|
2517 @externallyDefinedApi |
|
2518 */ |
|
2519 |
|
2520 /** @fn y0f(float x) |
|
2521 @param x |
|
2522 @see math() |
|
2523 |
|
2524 |
|
2525 |
|
2526 |
|
2527 @publishedAll |
|
2528 @externallyDefinedApi |
|
2529 */ |
|
2530 |
|
2531 /** @fn y1(double x) |
|
2532 @param x |
|
2533 @see math() |
|
2534 |
|
2535 |
|
2536 |
|
2537 |
|
2538 @publishedAll |
|
2539 @externallyDefinedApi |
|
2540 */ |
|
2541 |
|
2542 /** @fn y1f(float x) |
|
2543 @param x |
|
2544 @see math() |
|
2545 |
|
2546 |
|
2547 |
|
2548 |
|
2549 @publishedAll |
|
2550 @externallyDefinedApi |
|
2551 */ |
|
2552 |
|
2553 /** @fn yn(int n, double x) |
|
2554 @param n |
|
2555 @param x |
|
2556 @see math() |
|
2557 |
|
2558 |
|
2559 |
|
2560 |
|
2561 @publishedAll |
|
2562 @externallyDefinedApi |
|
2563 */ |
|
2564 |
|
2565 /** @fn ynf(int n, float x) |
|
2566 @param n |
|
2567 @param x |
|
2568 @see math() |
|
2569 |
|
2570 |
|
2571 |
|
2572 |
|
2573 @publishedAll |
|
2574 @externallyDefinedApi |
|
2575 */ |
|
2576 |
|
2577 /** @fn gamma(double x) |
|
2578 @param x |
|
2579 @see math() |
|
2580 |
|
2581 |
|
2582 |
|
2583 |
|
2584 @publishedAll |
|
2585 @externallyDefinedApi |
|
2586 */ |
|
2587 |
|
2588 /** @fn gammaf(float x) |
|
2589 @param x |
|
2590 @see math() |
|
2591 |
|
2592 |
|
2593 |
|
2594 |
|
2595 @publishedAll |
|
2596 @externallyDefinedApi |
|
2597 */ |
|
2598 |
|
2599 /** @fn copysign(double x, double y) |
|
2600 @param x |
|
2601 @param y |
|
2602 - Detailed description |
|
2603 The copysign , copysignf, and copysignl functions |
|
2604 return x with its sign changed to y 's . |
|
2605 |
|
2606 - Examples |
|
2607 @code |
|
2608 #include <math.h> |
|
2609 void main( void ) |
|
2610 { |
|
2611 double x1 = 0, x2 = -4, y; |
|
2612 y = copysign( x1, x2 ); |
|
2613 printf( "copysign(%f , %f) = %f |
|
2614 ", x1, x2, y ); |
|
2615 y = copysignf( x1, x2 ); |
|
2616 printf( "copysignf(%f , %f) = %f |
|
2617 ", x1, x2, y ); |
|
2618 y = copysignl( x1, x2 ); |
|
2619 printf( "copysignl(%f , %f) = %f |
|
2620 ", x1, x2, y ); |
|
2621 } |
|
2622 |
|
2623 @endcode |
|
2624 Output |
|
2625 @code |
|
2626 copysign ( 0, -4 ) = -0.0 |
|
2627 copysignf( 0, -4 ) = -0.0 |
|
2628 copysignl( 0, -4 ) = -0.0 |
|
2629 |
|
2630 @endcode |
|
2631 @see fabs() |
|
2632 @see fdim() |
|
2633 @see ieee() |
|
2634 @see math() |
|
2635 |
|
2636 |
|
2637 |
|
2638 |
|
2639 @publishedAll |
|
2640 @externallyDefinedApi |
|
2641 */ |
|
2642 |
|
2643 /** @fn copysignf(float x, float y) |
|
2644 @param x |
|
2645 @param y |
|
2646 @see fabs() |
|
2647 @see fdim() |
|
2648 @see ieee() |
|
2649 @see math() |
|
2650 |
|
2651 |
|
2652 |
|
2653 |
|
2654 @publishedAll |
|
2655 @externallyDefinedApi |
|
2656 */ |
|
2657 |
|
2658 /** @fn copysignl(long double x, long double y) |
|
2659 @param x |
|
2660 @param y |
|
2661 @see fabs() |
|
2662 @see fdim() |
|
2663 @see ieee() |
|
2664 @see math() |
|
2665 |
|
2666 |
|
2667 |
|
2668 |
|
2669 @publishedAll |
|
2670 @externallyDefinedApi |
|
2671 */ |
|
2672 |
|
2673 /** @fn fdim(double x, double y) |
|
2674 @param x |
|
2675 @param y |
|
2676 - Detailed description |
|
2677 The fdim, fdimf, and fdiml functions return the positive difference between x and y . |
|
2678 That is, if x- y is positive, then x- y is returned. |
|
2679 If either x or y is an NaN, then an NaN is returned. |
|
2680 Otherwise, the result is +0.0. |
|
2681 |
|
2682 - Examples |
|
2683 @code |
|
2684 #include <math.h> |
|
2685 int main( void ) |
|
2686 { |
|
2687 double x1 = 0, x2 = -9, y; |
|
2688 y = fdim( x1, x2 ); |
|
2689 printf( "fdim(%f , %f) = %f |
|
2690 ", x1, x2, y ); |
|
2691 y = fdimf( x1, x2 ); |
|
2692 printf( "fdimf(%f , %f) = %f |
|
2693 ", x1, x2, y ); |
|
2694 y = fdiml( x1, x2 ); |
|
2695 printf( "fdiml(%f , %f) = %f |
|
2696 ", x1, x2, y ); |
|
2697 } |
|
2698 |
|
2699 @endcode |
|
2700 Output |
|
2701 @code |
|
2702 fdim ( 0, -9 ) = 9 |
|
2703 fdimf( 0, -9 ) = 9 |
|
2704 fdiml( 0, -9 ) = 9 |
|
2705 |
|
2706 @endcode |
|
2707 @see fabs() |
|
2708 @see fmax() |
|
2709 @see math() |
|
2710 |
|
2711 |
|
2712 |
|
2713 |
|
2714 @publishedAll |
|
2715 @externallyDefinedApi |
|
2716 */ |
|
2717 |
|
2718 /** @fn fdimf(float x, float y) |
|
2719 @param x |
|
2720 @param y |
|
2721 @see fabs() |
|
2722 @see fmax() |
|
2723 @see math() |
|
2724 |
|
2725 |
|
2726 |
|
2727 |
|
2728 @publishedAll |
|
2729 @externallyDefinedApi |
|
2730 */ |
|
2731 |
|
2732 /** @fn fdiml(long double x, long double y) |
|
2733 @param x |
|
2734 @param y |
|
2735 @see fabs() |
|
2736 @see fmax() |
|
2737 @see math() |
|
2738 |
|
2739 |
|
2740 |
|
2741 |
|
2742 @publishedAll |
|
2743 @externallyDefinedApi |
|
2744 */ |
|
2745 |
|
2746 /** @fn fmin(double x, double y) |
|
2747 @param x |
|
2748 @param y |
|
2749 @see fabs() |
|
2750 @see fdim() |
|
2751 @see math() |
|
2752 |
|
2753 |
|
2754 |
|
2755 |
|
2756 @publishedAll |
|
2757 @externallyDefinedApi |
|
2758 */ |
|
2759 |
|
2760 /** @fn fminf(float x, float y) |
|
2761 @param x |
|
2762 @param y |
|
2763 @see fabs() |
|
2764 @see fdim() |
|
2765 @see math() |
|
2766 |
|
2767 |
|
2768 |
|
2769 |
|
2770 @publishedAll |
|
2771 @externallyDefinedApi |
|
2772 */ |
|
2773 |
|
2774 /** @fn nearbyint(double x) |
|
2775 @param x |
|
2776 @return x is integral or infinite, x itself is returned. |
|
2777 |
|
2778 - Detailed description |
|
2779 The rint and rintf functions return the integral value nearest to x according to the prevailing rounding mode. |
|
2780 |
|
2781 The nearbyint and nearbyintf functions perform the same operation. |
|
2782 The functions nearbyintl and rintl are aliases to the functions nearbyint and rint respectively. |
|
2783 |
|
2784 - Examples |
|
2785 @code |
|
2786 #include <math.h> |
|
2787 int main( ) |
|
2788 { |
|
2789 double inp = 1.5; |
|
2790 double y; |
|
2791 y = nearbyint( inp ); |
|
2792 printf( "nearbyint(%f ) = %f |
|
2793 ", inp, y ); |
|
2794 y = nearbyintf( inp ); |
|
2795 printf( "nearbyintf(%f ) = %f |
|
2796 ", inp, y ); |
|
2797 y = nearbyintl( inp ); |
|
2798 printf( "nearbyintl(%f ) = %f |
|
2799 |
|
2800 ", inp, y ); |
|
2801 y = rint( inp ); |
|
2802 printf( "rint(%f ) = %f |
|
2803 ", inp, y ); |
|
2804 y = rintf( inp ); |
|
2805 printf( "rintf(%f ) = %f |
|
2806 ", inp, y ); |
|
2807 y = rintl( inp ); |
|
2808 printf( "rintl(%f ) = %f |
|
2809 |
|
2810 ", inp, y ); |
|
2811 } |
|
2812 |
|
2813 @endcode |
|
2814 Output |
|
2815 @code |
|
2816 nearbyint ( 1.5 ) = 2.000000 |
|
2817 nearbyintf ( 1.5 ) = 2.000000 |
|
2818 nearbyintl ( 1.5 ) = 2.000000 |
|
2819 rint ( 1.5 ) = 2.000000 |
|
2820 rintf( 1.5 ) = 2.000000 |
|
2821 rintl( 1.5 ) = 2.000000 |
|
2822 |
|
2823 @endcode |
|
2824 @see abs() |
|
2825 @see ceil() |
|
2826 @see fabs() |
|
2827 @see floor() |
|
2828 @see ieee() |
|
2829 @see lrint() |
|
2830 @see lround() |
|
2831 @see math() |
|
2832 @see round() |
|
2833 |
|
2834 |
|
2835 |
|
2836 |
|
2837 @publishedAll |
|
2838 @externallyDefinedApi |
|
2839 */ |
|
2840 |
|
2841 /** @fn nearbyintf(float x) |
|
2842 @param x |
|
2843 @see abs() |
|
2844 @see ceil() |
|
2845 @see fabs() |
|
2846 @see floor() |
|
2847 @see ieee() |
|
2848 @see lrint() |
|
2849 @see lround() |
|
2850 @see math() |
|
2851 @see round() |
|
2852 |
|
2853 |
|
2854 |
|
2855 |
|
2856 @publishedAll |
|
2857 @externallyDefinedApi |
|
2858 */ |
|
2859 |
|
2860 /** @fn round(double x) |
|
2861 @param x |
|
2862 @return x is integral or infinite, x itself is returned. |
|
2863 |
|
2864 - Detailed description |
|
2865 The round , roundf , |
|
2866 and roundl functions return the nearest integral value to x ; |
|
2867 if x lies halfway between two integral values, then these |
|
2868 functions return the integral value with the larger |
|
2869 absolute value (i.e., they round away from zero). |
|
2870 |
|
2871 - Examples |
|
2872 @code |
|
2873 #include <math.h> |
|
2874 int main( ) |
|
2875 { |
|
2876 double inp = 0.5; |
|
2877 double y; |
|
2878 y = round( inp ); |
|
2879 printf( "round(%f ) = %f |
|
2880 ", inp, y ); |
|
2881 y = roundf( inp ); |
|
2882 printf( "roundf(%f ) = %f |
|
2883 ", inp, y ); |
|
2884 y = roundl( inp ); |
|
2885 printf( "roundl(%f ) = %f |
|
2886 |
|
2887 ", inp, y ); |
|
2888 } |
|
2889 |
|
2890 @endcode |
|
2891 Output |
|
2892 @code |
|
2893 round ( 0.5 ) = 1.000000 |
|
2894 roundf ( 0.5 ) = 1.000000 |
|
2895 roundl ( 0.5 ) = 1.000000 |
|
2896 |
|
2897 @endcode |
|
2898 @see ceil() |
|
2899 @see floor() |
|
2900 @see ieee() |
|
2901 @see lrint() |
|
2902 @see lround() |
|
2903 @see math() |
|
2904 @see rint() |
|
2905 @see trunc() |
|
2906 |
|
2907 |
|
2908 |
|
2909 |
|
2910 @publishedAll |
|
2911 @externallyDefinedApi |
|
2912 */ |
|
2913 |
|
2914 /** @fn roundf(float x) |
|
2915 @param x |
|
2916 @see ceil() |
|
2917 @see floor() |
|
2918 @see ieee() |
|
2919 @see lrint() |
|
2920 @see lround() |
|
2921 @see math() |
|
2922 @see rint() |
|
2923 @see trunc() |
|
2924 |
|
2925 |
|
2926 |
|
2927 |
|
2928 @publishedAll |
|
2929 @externallyDefinedApi |
|
2930 */ |
|
2931 |
|
2932 /** @fn trunc(double x) |
|
2933 @param x |
|
2934 @return x is integral, infinite or NaN , x itself is returned. |
|
2935 |
|
2936 - Detailed description |
|
2937 The trunc , truncf , |
|
2938 and truncl functions return the nearest integral value with magnitude less than |
|
2939 or equal to | x | . |
|
2940 They are equivalent to rint , rintf , |
|
2941 and rintl , |
|
2942 respectively, in the FE_TOWARDZERO rounding mode. |
|
2943 |
|
2944 - Examples |
|
2945 @code |
|
2946 #include <math.h> |
|
2947 int main( ) |
|
2948 { |
|
2949 double inp = 1048580.625; |
|
2950 double y; |
|
2951 y = trunc( inp ); |
|
2952 printf( "trunc( %f) = %f |
|
2953 ", inp, y ); |
|
2954 y = truncf( inp); |
|
2955 printf( "truncf( %f) = %f |
|
2956 ", inp, y ); |
|
2957 y = truncl( inp); |
|
2958 printf( "truncl( %f) = %f |
|
2959 |
|
2960 ", inp, y ); |
|
2961 } |
|
2962 |
|
2963 @endcode |
|
2964 Output |
|
2965 @code |
|
2966 trunc ( 1048580.625 ) = 1048580.000000 |
|
2967 truncf( 1048580.625 ) = 1048580.000000 |
|
2968 truncl( 1048580.625 ) = 1048580.000000 |
|
2969 |
|
2970 @endcode |
|
2971 @see ceil() |
|
2972 @see fegetround() |
|
2973 @see floor() |
|
2974 @see math() |
|
2975 @see nextafter() |
|
2976 @see rint() |
|
2977 @see round() |
|
2978 |
|
2979 |
|
2980 |
|
2981 |
|
2982 @publishedAll |
|
2983 @externallyDefinedApi |
|
2984 */ |
|
2985 |
|
2986 /** @fn truncf(float x) |
|
2987 @param x |
|
2988 @see ceil() |
|
2989 @see fegetround() |
|
2990 @see floor() |
|
2991 @see math() |
|
2992 @see nextafter() |
|
2993 @see rint() |
|
2994 @see round() |
|
2995 |
|
2996 |
|
2997 |
|
2998 |
|
2999 @publishedAll |
|
3000 @externallyDefinedApi |
|
3001 */ |
|
3002 |
|
3003 /** @fn truncl(long double x) |
|
3004 @param x |
|
3005 @see ceil() |
|
3006 @see fegetround() |
|
3007 @see floor() |
|
3008 @see math() |
|
3009 @see nextafter() |
|
3010 @see rint() |
|
3011 @see round() |
|
3012 |
|
3013 |
|
3014 |
|
3015 |
|
3016 @publishedAll |
|
3017 @externallyDefinedApi |
|
3018 */ |
|
3019 |
|
3020 /** @fn drem(double x, double y) |
|
3021 @param x |
|
3022 @param y |
|
3023 @return The drem() function returns the remainder, unless y is zero. |
|
3024 |
|
3025 - Detailed description |
|
3026 The drem dremf and the dreml functions compute the remainder of dividing x by y. The |
|
3027 return value is x - n * y, where n is the quotient of x / y, rounded to |
|
3028 the nearest integer. If the quotient is 1/2, it is rounded to the even |
|
3029 number. |
|
3030 The function dreml an alias to the function drem. |
|
3031 |
|
3032 - Examples |
|
3033 @code |
|
3034 #include <math.h> |
|
3035 void main() |
|
3036 { |
|
3037 double x1 = 6.4, x2 = 2, y; |
|
3038 y = drem( x1, x2 ); |
|
3039 printf( "drem(%f , %f) = %f |
|
3040 ", x1, x2, y ); |
|
3041 y = dremf( x1, x2 ); |
|
3042 printf( "dremf(%f , %f) = %f |
|
3043 ", x1, x2, y ); |
|
3044 y = dreml( x1, x2 ); |
|
3045 printf( "dreml(%f , %f) = %f |
|
3046 ", x1, x2, y ); |
|
3047 } |
|
3048 |
|
3049 @endcode |
|
3050 Output |
|
3051 @code |
|
3052 drem ( 6.4, 2 ) = 0.4 |
|
3053 dremf( 6.4, 2 ) = 0.4 |
|
3054 dreml( 6.4, 2 ) = 0.4 |
|
3055 |
|
3056 @endcode |
|
3057 |
|
3058 |
|
3059 @publishedAll |
|
3060 @externallyDefinedApi |
|
3061 */ |
|
3062 |
|
3063 /** @fn isnanf(float) |
|
3064 |
|
3065 test for infinity or not-a-number |
|
3066 |
|
3067 @publishedAll |
|
3068 @externallyDefinedApi |
|
3069 */ |
|
3070 |
|
3071 /** @fn significand(double x) |
|
3072 @param x |
|
3073 @see ieee() |
|
3074 @see math() |
|
3075 |
|
3076 |
|
3077 |
|
3078 |
|
3079 @publishedAll |
|
3080 @externallyDefinedApi |
|
3081 */ |
|
3082 |
|
3083 /** @fn significandf(float x) |
|
3084 @param x |
|
3085 @see ieee() |
|
3086 @see math() |
|
3087 |
|
3088 |
|
3089 |
|
3090 |
|
3091 @publishedAll |
|
3092 @externallyDefinedApi |
|
3093 */ |
|
3094 |
|
3095 /** @fn acosf(float x) |
|
3096 @param x |
|
3097 @see asin() |
|
3098 @see atan() |
|
3099 @see atan2() |
|
3100 @see cos() |
|
3101 @see cosh() |
|
3102 @see math() |
|
3103 @see sin() |
|
3104 @see sinh() |
|
3105 @see tan() |
|
3106 @see tanh() |
|
3107 |
|
3108 |
|
3109 |
|
3110 |
|
3111 @publishedAll |
|
3112 @externallyDefinedApi |
|
3113 */ |
|
3114 |
|
3115 /** @fn asinf(float x) |
|
3116 @param x |
|
3117 @see acos() |
|
3118 @see atan() |
|
3119 @see atan2() |
|
3120 @see cos() |
|
3121 @see cosh() |
|
3122 @see math() |
|
3123 @see sin() |
|
3124 @see sinh() |
|
3125 @see tan() |
|
3126 @see tanh() |
|
3127 |
|
3128 |
|
3129 |
|
3130 |
|
3131 @publishedAll |
|
3132 @externallyDefinedApi |
|
3133 */ |
|
3134 |
|
3135 /** @fn atanf(float x) |
|
3136 @param x |
|
3137 @see acos() |
|
3138 @see asin() |
|
3139 @see atan2() |
|
3140 @see cos() |
|
3141 @see cosh() |
|
3142 @see math() |
|
3143 @see sin() |
|
3144 @see sinh() |
|
3145 @see tan() |
|
3146 @see tanh() |
|
3147 |
|
3148 |
|
3149 |
|
3150 |
|
3151 @publishedAll |
|
3152 @externallyDefinedApi |
|
3153 */ |
|
3154 |
|
3155 /** @fn atan2f(float y, float x) |
|
3156 @param y |
|
3157 @param x |
|
3158 @see acos() |
|
3159 @see asin() |
|
3160 @see atan() |
|
3161 @see cos() |
|
3162 @see cosh() |
|
3163 @see math() |
|
3164 @see sin() |
|
3165 @see sinh() |
|
3166 @see tan() |
|
3167 @see tanh() |
|
3168 |
|
3169 |
|
3170 |
|
3171 |
|
3172 @publishedAll |
|
3173 @externallyDefinedApi |
|
3174 */ |
|
3175 |
|
3176 /** @fn cosf(float x) |
|
3177 @param x |
|
3178 @see acos() |
|
3179 @see asin() |
|
3180 @see atan() |
|
3181 @see atan2() |
|
3182 @see cosh() |
|
3183 @see math() |
|
3184 @see sin() |
|
3185 @see sinh() |
|
3186 @see tan() |
|
3187 @see tanh() |
|
3188 |
|
3189 |
|
3190 |
|
3191 |
|
3192 @publishedAll |
|
3193 @externallyDefinedApi |
|
3194 */ |
|
3195 |
|
3196 /** @fn sinf(float x) |
|
3197 @param x |
|
3198 @see acos() |
|
3199 @see asin() |
|
3200 @see atan() |
|
3201 @see atan2() |
|
3202 @see cos() |
|
3203 @see cosh() |
|
3204 @see math() |
|
3205 @see sinh() |
|
3206 @see tan() |
|
3207 @see tanh() |
|
3208 |
|
3209 |
|
3210 |
|
3211 |
|
3212 @publishedAll |
|
3213 @externallyDefinedApi |
|
3214 */ |
|
3215 |
|
3216 /** @fn tanf(float x) |
|
3217 @param x |
|
3218 @see acos() |
|
3219 @see asin() |
|
3220 @see atan() |
|
3221 @see atan2() |
|
3222 @see cos() |
|
3223 @see cosh() |
|
3224 @see math() |
|
3225 @see sin() |
|
3226 @see sinh() |
|
3227 @see tanh() |
|
3228 |
|
3229 |
|
3230 |
|
3231 |
|
3232 @publishedAll |
|
3233 @externallyDefinedApi |
|
3234 */ |
|
3235 |
|
3236 /** @fn coshf(float x) |
|
3237 @param x |
|
3238 @see acos() |
|
3239 @see asin() |
|
3240 @see atan() |
|
3241 @see atan2() |
|
3242 @see cos() |
|
3243 @see math() |
|
3244 @see sin() |
|
3245 @see sinh() |
|
3246 @see tan() |
|
3247 @see tanh() |
|
3248 |
|
3249 |
|
3250 |
|
3251 |
|
3252 @publishedAll |
|
3253 @externallyDefinedApi |
|
3254 */ |
|
3255 |
|
3256 /** @fn sinhf(float x) |
|
3257 @param x |
|
3258 @see acos() |
|
3259 @see asin() |
|
3260 @see atan() |
|
3261 @see atan2() |
|
3262 @see cos() |
|
3263 @see cosh() |
|
3264 @see math() |
|
3265 @see sin() |
|
3266 @see tan() |
|
3267 @see tanh() |
|
3268 |
|
3269 |
|
3270 |
|
3271 |
|
3272 @publishedAll |
|
3273 @externallyDefinedApi |
|
3274 */ |
|
3275 |
|
3276 /** @fn tanhf(float x) |
|
3277 @param x |
|
3278 @see acos() |
|
3279 @see asin() |
|
3280 @see atan() |
|
3281 @see atan2() |
|
3282 @see cos() |
|
3283 @see cosh() |
|
3284 @see math() |
|
3285 @see sin() |
|
3286 @see sinh() |
|
3287 @see tan() |
|
3288 |
|
3289 |
|
3290 |
|
3291 |
|
3292 @publishedAll |
|
3293 @externallyDefinedApi |
|
3294 */ |
|
3295 |
|
3296 /** @fn expf(float x) |
|
3297 @param x |
|
3298 @see math() |
|
3299 |
|
3300 |
|
3301 |
|
3302 |
|
3303 @publishedAll |
|
3304 @externallyDefinedApi |
|
3305 */ |
|
3306 |
|
3307 /** @fn frexpf(float x, int *eptr) |
|
3308 @param x |
|
3309 @param eptr |
|
3310 |
|
3311 |
|
3312 |
|
3313 |
|
3314 @publishedAll |
|
3315 @externallyDefinedApi |
|
3316 */ |
|
3317 |
|
3318 /** @fn log10f(float x) |
|
3319 @param x |
|
3320 @see math() |
|
3321 |
|
3322 |
|
3323 |
|
3324 |
|
3325 @publishedAll |
|
3326 @externallyDefinedApi |
|
3327 */ |
|
3328 |
|
3329 /** @fn logf(float x) |
|
3330 @param x |
|
3331 @see math() |
|
3332 |
|
3333 |
|
3334 |
|
3335 |
|
3336 @publishedAll |
|
3337 @externallyDefinedApi |
|
3338 */ |
|
3339 |
|
3340 /** @fn modff(float x, float *iptr) |
|
3341 @param x |
|
3342 @param iptr |
|
3343 @see frexp() |
|
3344 @see ldexp() |
|
3345 @see math() |
|
3346 |
|
3347 |
|
3348 |
|
3349 |
|
3350 @publishedAll |
|
3351 @externallyDefinedApi |
|
3352 */ |
|
3353 |
|
3354 /** @fn powf(float x, float y) |
|
3355 @param x |
|
3356 @param y |
|
3357 @see math() |
|
3358 |
|
3359 |
|
3360 |
|
3361 |
|
3362 @publishedAll |
|
3363 @externallyDefinedApi |
|
3364 */ |
|
3365 |
|
3366 /** @fn sqrtf(float x) |
|
3367 @param x |
|
3368 @see math() |
|
3369 |
|
3370 |
|
3371 |
|
3372 |
|
3373 @publishedAll |
|
3374 @externallyDefinedApi |
|
3375 */ |
|
3376 |
|
3377 /** @fn cbrtf(float x) |
|
3378 @param x |
|
3379 @see math() |
|
3380 |
|
3381 |
|
3382 |
|
3383 |
|
3384 @publishedAll |
|
3385 @externallyDefinedApi |
|
3386 */ |
|
3387 |
|
3388 /** @fn nexttowardf(float x, long double y) |
|
3389 @param x |
|
3390 @param y |
|
3391 @see ieee() |
|
3392 @see math() |
|
3393 |
|
3394 |
|
3395 |
|
3396 |
|
3397 @publishedAll |
|
3398 @externallyDefinedApi |
|
3399 */ |
|
3400 |
|
3401 /** @def HUGE_VAL |
|
3402 |
|
3403 A positive double expression, not necessarily representable as a float. |
|
3404 Used as an error value returned by the mathematics library. HUGE_VAL evaluates to positive infinity on systems supporting the ANSI/IEEE Std 754:1985 standard. |
|
3405 |
|
3406 @publishedAll |
|
3407 @externallyDefinedApi |
|
3408 */ |
|
3409 |
|
3410 /** @def FP_ILOGB0 |
|
3411 |
|
3412 The value of FP_ILOGB0 shall be either INT_MIN or - INT_MAX. |
|
3413 |
|
3414 @publishedAll |
|
3415 @externallyDefinedApi |
|
3416 */ |
|
3417 |
|
3418 /** @def FP_ILOGBNAN |
|
3419 |
|
3420 The value of FP_ILOGBNAN shall be either INT_MAX or INT_MIN. |
|
3421 |
|
3422 @publishedAll |
|
3423 @externallyDefinedApi |
|
3424 */ |
|
3425 |
|
3426 /** @def HUGE_VALL |
|
3427 |
|
3428 A positive long double constant expression. Used as an error value returned by the mathematics library. |
|
3429 |
|
3430 @publishedAll |
|
3431 @externallyDefinedApi |
|
3432 */ |
|
3433 |
|
3434 /** @def HUGE_VALF |
|
3435 |
|
3436 A positive float constant expression. Used as an error value returned by the mathematics library. |
|
3437 |
|
3438 @publishedAll |
|
3439 @externallyDefinedApi |
|
3440 */ |
|
3441 |
|
3442 /** @def INFINITY |
|
3443 |
|
3444 A constant expression of type float representing positive or unsigned infinity, if available; |
|
3445 else a positive constant of type float that overflows at translation time. |
|
3446 |
|
3447 @publishedAll |
|
3448 @externallyDefinedApi |
|
3449 */ |
|
3450 |
|
3451 /** @def NAN |
|
3452 |
|
3453 A constant expression of type float representing a quiet NaN. |
|
3454 This symbolic constant is only defined if the implementation supports quiet NaNs for the float type. |
|
3455 |
|
3456 @publishedAll |
|
3457 @externallyDefinedApi |
|
3458 */ |
|
3459 |
|
3460 /** @def MATH_ERRNO |
|
3461 |
|
3462 macro shall expand to the integer constants 1 |
|
3463 |
|
3464 @publishedAll |
|
3465 @externallyDefinedApi |
|
3466 */ |
|
3467 |
|
3468 /** @def MATH_ERREXCEPT |
|
3469 |
|
3470 macro shall expand to the integer constants 1 |
|
3471 |
|
3472 @publishedAll |
|
3473 @externallyDefinedApi |
|
3474 */ |
|
3475 |
|
3476 /** @def math_errhandling |
|
3477 |
|
3478 Macro shall expand to an expression that has type int and the value MATH_ERRNO, MATH_ERREXCEPT, or the bitwise-inclusive OR of both |
|
3479 |
|
3480 @publishedAll |
|
3481 @externallyDefinedApi |
|
3482 */ |
|
3483 |
|
3484 /** @def FP_INFINITE |
|
3485 |
|
3486 Macro shall be defined for number classification. They represent the mutually-exclusive kinds of floating-point values. |
|
3487 They expand to integer constant expressions with distinct values. |
|
3488 Additional implementation-defined floating-point classifications, with macro definitions beginning with FP_ and an uppercase letter, may also be specified by the implementation. |
|
3489 |
|
3490 @publishedAll |
|
3491 @externallyDefinedApi |
|
3492 */ |
|
3493 |
|
3494 /** @def FP_NAN |
|
3495 |
|
3496 Macro shall be defined for number classification. They represent the mutually-exclusive kinds of floating-point values. |
|
3497 They expand to integer constant expressions with distinct values. |
|
3498 Additional implementation-defined floating-point classifications, with macro definitions beginning with FP_ and an uppercase letter, may also be specified by the implementation. |
|
3499 |
|
3500 @publishedAll |
|
3501 @externallyDefinedApi |
|
3502 */ |
|
3503 |
|
3504 /** @def FP_NORMAL |
|
3505 |
|
3506 Macro shall be defined for number classification. They represent the mutually-exclusive kinds of floating-point values. |
|
3507 They expand to integer constant expressions with distinct values. |
|
3508 Additional implementation-defined floating-point classifications, with macro definitions beginning with FP_ and an uppercase letter, may also be specified by the implementation. |
|
3509 |
|
3510 @publishedAll |
|
3511 @externallyDefinedApi |
|
3512 */ |
|
3513 |
|
3514 /** @def FP_SUBNORMAL |
|
3515 |
|
3516 Macro shall be defined for number classification. They represent the mutually-exclusive kinds of floating-point values. |
|
3517 They expand to integer constant expressions with distinct values. |
|
3518 Additional implementation-defined floating-point classifications, with macro definitions beginning with FP_ and an uppercase letter, may also be specified by the implementation. |
|
3519 |
|
3520 @publishedAll |
|
3521 @externallyDefinedApi |
|
3522 */ |
|
3523 |
|
3524 /** @def FP_ZERO |
|
3525 |
|
3526 Macro shall be defined for number classification. They represent the mutually-exclusive kinds of floating-point values. |
|
3527 They expand to integer constant expressions with distinct values. |
|
3528 Additional implementation-defined floating-point classifications, with macro definitions beginning with FP_ and an uppercase letter, may also be specified by the implementation. |
|
3529 |
|
3530 @publishedAll |
|
3531 @externallyDefinedApi |
|
3532 */ |
|
3533 |
|
3534 /** @def fpclassify(x) |
|
3535 |
|
3536 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3537 |
|
3538 @publishedAll |
|
3539 @externallyDefinedApi |
|
3540 */ |
|
3541 |
|
3542 /** @def isfinite(x) |
|
3543 |
|
3544 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3545 |
|
3546 @publishedAll |
|
3547 @externallyDefinedApi |
|
3548 */ |
|
3549 |
|
3550 /** @def isinf(x) |
|
3551 |
|
3552 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3553 |
|
3554 @publishedAll |
|
3555 @externallyDefinedApi |
|
3556 */ |
|
3557 |
|
3558 /** @def isnan(x) |
|
3559 |
|
3560 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3561 |
|
3562 @publishedAll |
|
3563 @externallyDefinedApi |
|
3564 */ |
|
3565 |
|
3566 /** @def isnormal(x) |
|
3567 |
|
3568 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3569 |
|
3570 @publishedAll |
|
3571 @externallyDefinedApi |
|
3572 */ |
|
3573 |
|
3574 /** @def isgreater(x, y) |
|
3575 |
|
3576 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3577 |
|
3578 @publishedAll |
|
3579 @externallyDefinedApi |
|
3580 */ |
|
3581 |
|
3582 /** @def isless(x, y) |
|
3583 |
|
3584 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3585 |
|
3586 @publishedAll |
|
3587 @externallyDefinedApi |
|
3588 */ |
|
3589 |
|
3590 /** @def islessequal(x, y) |
|
3591 |
|
3592 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3593 |
|
3594 @publishedAll |
|
3595 @externallyDefinedApi |
|
3596 */ |
|
3597 |
|
3598 /** @def islessgreater(x, y) |
|
3599 |
|
3600 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3601 |
|
3602 @publishedAll |
|
3603 @externallyDefinedApi |
|
3604 */ |
|
3605 |
|
3606 /** @def isunordered(x, y) |
|
3607 |
|
3608 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3609 |
|
3610 @publishedAll |
|
3611 @externallyDefinedApi |
|
3612 */ |
|
3613 |
|
3614 /** @def isgreaterequal(x, y) |
|
3615 |
|
3616 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3617 |
|
3618 @publishedAll |
|
3619 @externallyDefinedApi |
|
3620 */ |
|
3621 |
|
3622 /** @def signbit(x) |
|
3623 |
|
3624 The math.h header shall define the following macros, where real floating indicates that the argument shall be an expression of real floating type |
|
3625 |
|
3626 @publishedAll |
|
3627 @externallyDefinedApi |
|
3628 */ |
|
3629 |
|
3630 /** @def M_E |
|
3631 |
|
3632 Defines the Value of e |
|
3633 |
|
3634 @publishedAll |
|
3635 @externallyDefinedApi |
|
3636 */ |
|
3637 |
|
3638 /** @def M_LOG2E |
|
3639 |
|
3640 Defines the Value of log2e |
|
3641 |
|
3642 @publishedAll |
|
3643 @externallyDefinedApi |
|
3644 */ |
|
3645 |
|
3646 /** @def M_LOG10E |
|
3647 |
|
3648 Defines the Value of log10e |
|
3649 |
|
3650 @publishedAll |
|
3651 @externallyDefinedApi |
|
3652 */ |
|
3653 |
|
3654 /** @def M_LN2 |
|
3655 |
|
3656 Defines the Value of loge2 |
|
3657 |
|
3658 @publishedAll |
|
3659 @externallyDefinedApi |
|
3660 */ |
|
3661 |
|
3662 /** @def M_LN10 |
|
3663 |
|
3664 Defines the Value of loge10 |
|
3665 |
|
3666 @publishedAll |
|
3667 @externallyDefinedApi |
|
3668 */ |
|
3669 |
|
3670 /** @def M_PI |
|
3671 |
|
3672 Defines the Value of pi |
|
3673 |
|
3674 @publishedAll |
|
3675 @externallyDefinedApi |
|
3676 */ |
|
3677 |
|
3678 /** @def M_PI_2 |
|
3679 |
|
3680 Defines the Value of pi/2 |
|
3681 |
|
3682 @publishedAll |
|
3683 @externallyDefinedApi |
|
3684 */ |
|
3685 |
|
3686 /** @def M_PI_4 |
|
3687 |
|
3688 Defines the Value of pi/4 |
|
3689 |
|
3690 @publishedAll |
|
3691 @externallyDefinedApi |
|
3692 */ |
|
3693 |
|
3694 /** @def M_1_PI |
|
3695 |
|
3696 Defines the Value of 1/pi |
|
3697 |
|
3698 @publishedAll |
|
3699 @externallyDefinedApi |
|
3700 */ |
|
3701 |
|
3702 /** @def M_2_PI |
|
3703 |
|
3704 Defines the Value of 2/pi |
|
3705 |
|
3706 @publishedAll |
|
3707 @externallyDefinedApi |
|
3708 */ |
|
3709 |
|
3710 /** @def M_2_SQRTPI |
|
3711 |
|
3712 Defines the Value of 2/sqrt(pi) |
|
3713 |
|
3714 @publishedAll |
|
3715 @externallyDefinedApi |
|
3716 */ |
|
3717 |
|
3718 /** @def M_SQRT2 |
|
3719 |
|
3720 Defines the Value of sqrt(2) |
|
3721 |
|
3722 @publishedAll |
|
3723 @externallyDefinedApi |
|
3724 */ |
|
3725 |
|
3726 /** @def M_SQRT1_2 |
|
3727 |
|
3728 Defines the Value of 1/sqrt(2) |
|
3729 |
|
3730 @publishedAll |
|
3731 @externallyDefinedApi |
|
3732 */ |
|
3733 |
|
3734 /** @def MAXFLOAT |
|
3735 |
|
3736 Value of maximum non-infinite single-precision floating point number. |
|
3737 |
|
3738 @publishedAll |
|
3739 @externallyDefinedApi |
|
3740 */ |
|
3741 |
|
3742 /** @def HUGE |
|
3743 |
|
3744 Defines to (float)3.40282346638528860e+38 |
|
3745 |
|
3746 @publishedAll |
|
3747 @externallyDefinedApi |
|
3748 */ |
|
3749 |
|
3750 /** @typedef typedef __double_t double_t; |
|
3751 |
|
3752 Double 8 bytes |
|
3753 |
|
3754 @publishedAll |
|
3755 @externallyDefinedApi |
|
3756 */ |
|
3757 |
|
3758 /** @typedef typedef __float_t float_t; |
|
3759 |
|
3760 Float 4 bytes |
|
3761 |
|
3762 @publishedAll |
|
3763 @externallyDefinedApi |
|
3764 */ |
|
3765 |
|
3766 |
|
3767 |
|
3768 |
|
3769 |
|
3770 |
|
3771 |
|
3772 |
|
3773 |
|
3774 |
|
3775 |
|
3776 |
|
3777 |
|
3778 |
|
3779 |
|
3780 |
|
3781 |
|
3782 |
|
3783 |
|
3784 |
|
3785 |
|
3786 |
|
3787 |
|
3788 |
|
3789 |
|
3790 |
|
3791 |
|
3792 |
|
3793 |
|
3794 |
|
3795 |
|
3796 |
|
3797 |
|
3798 |
|
3799 |
|
3800 |
|
3801 |
|
3802 |
|
3803 |
|
3804 |
|
3805 |
|
3806 |
|
3807 |
|
3808 |
|
3809 |
|
3810 |
|
3811 |
|
3812 |
|
3813 |
|
3814 |
|
3815 |
|
3816 |
|
3817 |