STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
math.h
Go to the documentation of this file.
1 /***
2 *math.h - definitions and declarations for math library
3 *
4 * Copyright (c) Microsoft Corporation. All rights reserved.
5 *
6 *Purpose:
7 * This file contains constant definitions and external subroutine
8 * declarations for the math subroutine library.
9 * [ANSI/System V]
10 *
11 * [Public]
12 *
13 ****/
14 
15 #ifndef _INC_MATH
16 #define _INC_MATH
17 
18 #include <crtdefs.h>
19 
20 /*
21  * Currently, all MS C compilers for Win32 platforms default to 8 byte
22  * alignment.
23  */
24 #pragma pack(push,_CRT_PACKING)
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* __cplusplus */
29 
30 #ifndef __assembler
31 
32 /* Definition of _exception struct - this struct is passed to the matherr
33  * routine when a floating point exception is detected
34  */
35 
36 #ifndef _EXCEPTION_DEFINED
37 struct _exception {
38  int type; /* exception type - see below */
39  char *name; /* name of function where error occured */
40  double arg1; /* first argument to function */
41  double arg2; /* second argument (if any) to function */
42  double retval; /* value to be returned by function */
43  } ;
44 
45 #define _EXCEPTION_DEFINED
46 #endif /* _EXCEPTION_DEFINED */
47 
48 
49 /* Definition of a _complex struct to be used by those who use cabs and
50  * want type checking on their argument
51  */
52 
53 #ifndef _COMPLEX_DEFINED
54 struct _complex {
55  double x,y; /* real and imaginary parts */
56  } ;
57 
58 #if !__STDC__ && !defined (__cplusplus)
59 /* Non-ANSI name for compatibility */
60 #define complex _complex
61 #endif /* !__STDC__ && !defined (__cplusplus) */
62 
63 #define _COMPLEX_DEFINED
64 #endif /* _COMPLEX_DEFINED */
65 #endif /* __assembler */
66 
67 typedef float float_t;
68 typedef double double_t;
69 
70 /* Constant definitions for the exception type passed in the _exception struct
71  */
72 
73 #define _DOMAIN 1 /* argument domain error */
74 #define _SING 2 /* argument singularity */
75 #define _OVERFLOW 3 /* overflow range error */
76 #define _UNDERFLOW 4 /* underflow range error */
77 #define _TLOSS 5 /* total loss of precision */
78 #define _PLOSS 6 /* partial loss of precision */
79 
80 #define EDOM 33
81 #define ERANGE 34
82 
83 
84 /* Definitions of _HUGE and HUGE_VAL - respectively the XENIX and ANSI names
85  * for a value returned in case of error by a number of the floating point
86  * math routines
87  */
88 #ifndef __assembler
89 #if !defined (_M_CEE_PURE)
90 _CRTIMP extern double _HUGE;
91 #else /* !defined (_M_CEE_PURE) */
92 const double _HUGE = System::Double::PositiveInfinity;
93 #endif /* !defined (_M_CEE_PURE) */
94 #endif /* __assembler */
95 
96 #define HUGE_VAL _HUGE
97 
98 #ifndef _HUGE_ENUF
99 #define _HUGE_ENUF 1e+300 /* _HUGE_ENUF*_HUGE_ENUF must overflow */
100 #endif /* _HUGE_ENUF */
101 
102 #define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF)) /* causes warning C4756: overflow in constant arithmetic (by design) */
103 #define HUGE_VALD ((double)INFINITY)
104 #define HUGE_VALF ((float)INFINITY)
105 #define HUGE_VALL ((long double)INFINITY)
106 #define NAN ((float)(INFINITY * 0.0F))
107 
108 #define _DENORM (-2)
109 #define _FINITE (-1)
110 #define _INFCODE 1
111 #define _NANCODE 2
112 
113 #define FP_INFINITE _INFCODE
114 #define FP_NAN _NANCODE
115 #define FP_NORMAL _FINITE
116 #define FP_SUBNORMAL _DENORM
117 #define FP_ZERO 0
118 
119 #define _C2 1 /* 0 if not 2's complement */
120 #define _FP_ILOGB0 (-0x7fffffff - _C2)
121 #define _FP_ILOGBNAN 0x7fffffff
122 
123 #define MATH_ERRNO 1
124 #define MATH_ERREXCEPT 2
125 #define math_errhandling (MATH_ERRNO | MATH_ERREXCEPT)
126 
127 /* MACROS FOR _fperrraise ARGUMENT */
128 #define _FE_DIVBYZERO 0x04
129 #define _FE_INEXACT 0x20
130 #define _FE_INVALID 0x01
131 #define _FE_OVERFLOW 0x08
132 #define _FE_UNDERFLOW 0x10
133 
134 #define _D0_C 3 /* little-endian, small long doubles */
135 #define _D1_C 2
136 #define _D2_C 1
137 #define _D3_C 0
138 
139 #define _DBIAS 0x3fe
140 #define _DOFF 4
141 
142 #define _F0_C 1 /* little-endian */
143 #define _F1_C 0
144 
145 #define _FBIAS 0x7e
146 #define _FOFF 7
147 #define _FRND 1
148 
149 #define _L0_C 3 /* little-endian, 64-bit long doubles */
150 #define _L1_C 2
151 #define _L2_C 1
152 #define _L3_C 0
153 
154 #define _LBIAS 0x3fe
155 #define _LOFF 4
156 
157 /* IEEE 754 double properties */
158 #define _DFRAC ((unsigned short)((1 << _DOFF) - 1))
159 #define _DMASK ((unsigned short)(0x7fff & ~_DFRAC))
160 #define _DMAX ((unsigned short)((1 << (15 - _DOFF)) - 1))
161 #define _DSIGN ((unsigned short)0x8000)
162 
163 /* IEEE 754 float properties */
164 #define _FFRAC ((unsigned short)((1 << _FOFF) - 1))
165 #define _FMASK ((unsigned short)(0x7fff & ~_FFRAC))
166 #define _FMAX ((unsigned short)((1 << (15 - _FOFF)) - 1))
167 #define _FSIGN ((unsigned short)0x8000)
168 
169 /* IEEE 754 long double properties */
170 #define _LFRAC ((unsigned short)(-1))
171 #define _LMASK ((unsigned short)0x7fff)
172 #define _LMAX ((unsigned short)0x7fff)
173 #define _LSIGN ((unsigned short)0x8000)
174 
175 #define HUGE_EXP (int)(_DMAX * 900L / 1000)
176 #define VHUGE_EXP (int)(_VMAX * 900L / 1000)
177 #define FHUGE_EXP (int)(_FMAX * 900L / 1000)
178 #define LHUGE_EXP (int)(_LMAX * 900L / 1000)
179 
180 #define DSIGN_C(_Val) (((_double_val *)(char *)&(_Val))->_Sh[_D0_C] & _DSIGN)
181 #define FSIGN_C(_Val) (((_float_val *)(char *)&(_Val))->_Sh[_F0_C] & _FSIGN)
182 #define LSIGN_C(_Val) (((_ldouble_val *)(char *)&(_Val))->_Sh[_L0_C] & _LSIGN)
183 
184 void __cdecl _fperrraise(_In_ int _Except);
185 
186 short _CRTIMP __cdecl _dclass(_In_ double _X);
187 short _CRTIMP __cdecl _ldclass(_In_ long double _X);
188 short _CRTIMP __cdecl _fdclass(_In_ float _X);
189 
190 int _CRTIMP __cdecl _dsign(_In_ double _X);
191 int _CRTIMP __cdecl _ldsign(_In_ long double _X);
192 int _CRTIMP __cdecl _fdsign(_In_ float _X);
193 
194 int _CRTIMP __cdecl _dpcomp(_In_ double _X, _In_ double _Y);
195 int _CRTIMP __cdecl _ldpcomp(_In_ long double _X, _In_ long double _Y);
196 int _CRTIMP __cdecl _fdpcomp(_In_ float _X, _In_ float _Y);
197 
198 short _CRTIMP __cdecl _dtest(_In_ double *_Px);
199 short _CRTIMP __cdecl _ldtest(_In_ long double *_Px);
200 short _CRTIMP __cdecl _fdtest(_In_ float *_Px);
201 
202 short _CRTIMP __cdecl _d_int(_In_ double *_Px, _In_ short _Xexp);
203 short _CRTIMP __cdecl _ld_int(_In_ long double *_Px, _In_ short _Xexp);
204 short _CRTIMP __cdecl _fd_int(_In_ float *_Px, _In_ short _Xexp);
205 
206 short _CRTIMP __cdecl _dscale(_In_ double *_Px, _In_ long _Lexp);
207 short _CRTIMP __cdecl _ldscale(_In_ long double *_Px, _In_ long _Lexp);
208 short _CRTIMP __cdecl _fdscale(_In_ float *_Px, _In_ long _Lexp);
209 
210 short _CRTIMP __cdecl _dunscale(_In_ short *_Pex, _In_ double *_Px);
211 short _CRTIMP __cdecl _ldunscale(_In_ short *_Pex, _In_ long double *_Px);
212 short _CRTIMP __cdecl _fdunscale(_In_ short *_Pex, _In_ float *_Px);
213 
214 short _CRTIMP __cdecl _dexp(_In_ double *_Px, _In_ double _Y, _In_ long _Eoff);
215 short _CRTIMP __cdecl _ldexp(_In_ long double *_Px, _In_ long double _Y, _In_ long _Eoff);
216 short _CRTIMP __cdecl _fdexp(_In_ float *_Px, _In_ float _Y, _In_ long _Eoff);
217 
218 short _CRTIMP __cdecl _dnorm(_In_ unsigned short *_Ps);
219 short _CRTIMP __cdecl _fdnorm(_In_ unsigned short *_Ps);
220 
221 double __cdecl _dpoly(_In_ double _X, _In_ const double *_Tab, _In_ int _N);
222 long double __cdecl _ldpoly(_In_ long double _X, _In_ const long double *_Tab, _In_ int _N);
223 float __cdecl _fdpoly(_In_ float _X, _In_ const float *_Tab, _In_ int _N);
224 
225 double _CRTIMP __cdecl _dlog(_In_ double _X, _In_ int _Baseflag);
226 long double _CRTIMP __cdecl _ldlog(_In_ long double _X, _In_ int _Baseflag);
227 float _CRTIMP __cdecl _fdlog(_In_ float _X, _In_ int _Baseflag);
228 
229 double _CRTIMP __cdecl _dsin(_In_ double _X, _In_ unsigned int _Qoff);
230 long double _CRTIMP __cdecl _ldsin(_In_ long double _X, _In_ unsigned int _Qoff);
231 float _CRTIMP __cdecl _fdsin(_In_ float _X, _In_ unsigned int _Qoff);
232 
233 /* double declarations */
234 typedef union
235 { /* pun floating type as integer array */
236  unsigned short _Sh[8];
237  double _Val;
238 } _double_val;
239 
240 /* float declarations */
241 typedef union
242 { /* pun floating type as integer array */
243  unsigned short _Sh[8];
244  float _Val;
245 } _float_val;
246 
247 /* long double declarations */
248 typedef union
249 { /* pun floating type as integer array */
250  unsigned short _Sh[8];
251  long double _Val;
252 } _ldouble_val;
253 
254 typedef union
255 { /* pun float types as integer array */
256  unsigned short _Word[8];
257  float _Float;
258  double _Double;
259  long double _Long_double;
260 } _float_const;
261 
265 
266 extern const _float_const _Eps_C, _Rteps_C;
267 extern const _float_const _FEps_C, _FRteps_C;
268 extern const _float_const _LEps_C, _LRteps_C;
269 
270 extern const double _Zero_C, _Xbig_C;
271 extern const float _FZero_C, _FXbig_C;
272 extern const long double _LZero_C, _LXbig_C;
273 
274 #define _FP_LT 1
275 #define _FP_EQ 2
276 #define _FP_GT 4
277 
278 #ifndef __cplusplus
279 
280 #define _CLASS_ARG(_Val) (sizeof ((_Val) + (float)0) == sizeof (float) ? 'f' : sizeof ((_Val) + (double)0) == sizeof (double) ? 'd' : 'l')
281 #define _CLASSIFY(_Val, _FFunc, _DFunc, _LDFunc) (_CLASS_ARG(_Val) == 'f' ? _FFunc((float)(_Val)) : _CLASS_ARG(_Val) == 'd' ? _DFunc((double)(_Val)) : _LDFunc((long double)(_Val)))
282 #define _CLASSIFY2(_Val1, _Val2, _FFunc, _DFunc, _LDFunc) (_CLASS_ARG((_Val1) + (_Val2)) == 'f' ? _FFunc((float)(_Val1), (float)(_Val2)) : _CLASS_ARG((_Val1) + (_Val2)) == 'd' ? _DFunc((double)(_Val1), (double)(_Val2)) : _LDFunc((long double)(_Val1), (long double)(_Val2)))
283 
284 #define fpclassify(_Val) (_CLASSIFY(_Val, _fdclass, _dclass, _ldclass))
285 #define _FPCOMPARE(_Val1, _Val2) (_CLASSIFY2(_Val1, _Val2, _fdpcomp, _dpcomp, _ldpcomp))
286 
287 #define isfinite(_Val) (fpclassify(_Val) <= 0)
288 #define isinf(_Val) (fpclassify(_Val) == FP_INFINITE)
289 #define isnan(_Val) (fpclassify(_Val) == FP_NAN)
290 #define isnormal(_Val) (fpclassify(_Val) == FP_NORMAL)
291 #define signbit(_Val) (_CLASSIFY(_Val, _fdsign, _dsign, _ldsign))
292 
293 #define isgreater(x, y) ((_FPCOMPARE(x, y) & _FP_GT) != 0)
294 #define isgreaterequal(x, y) ((_FPCOMPARE(x, y) & (_FP_EQ | _FP_GT)) != 0)
295 #define isless(x, y) ((_FPCOMPARE(x, y) & _FP_LT) != 0)
296 #define islessequal(x, y) ((_FPCOMPARE(x, y) & (_FP_LT | _FP_EQ)) != 0)
297 #define islessgreater(x, y) ((_FPCOMPARE(x, y) & (_FP_LT | _FP_GT)) != 0)
298 #define isunordered(x, y) (_FPCOMPARE(x, y) == 0)
299 
300 #else /* __cplusplus */
301 
302 extern "C++" {
303 
304 inline __nothrow int fpclassify(float _X)
305 {
306  return (_fdtest(&_X));
307 }
308 
309 inline __nothrow int fpclassify(double _X)
310 {
311  return (_dtest(&_X));
312 }
313 
314 inline __nothrow int fpclassify(long double _X)
315 {
316  return (_ldtest(&_X));
317 }
318 
319 inline __nothrow bool signbit(float _X)
320 {
321  return (_fdsign(_X) != 0);
322 }
323 
324 inline __nothrow bool signbit(double _X)
325 {
326  return (_dsign(_X) != 0);
327 }
328 
329 inline __nothrow bool signbit(long double _X)
330 {
331  return (_ldsign(_X) != 0);
332 }
333 
334 inline __nothrow int _fpcomp(float _X, float _Y)
335 {
336  return (_fdpcomp(_X, _Y));
337 }
338 
339 inline __nothrow int _fpcomp(double _X, double _Y)
340 {
341  return (_dpcomp(_X, _Y));
342 }
343 
344 inline __nothrow int _fpcomp(long double _X, long double _Y)
345 {
346  return (_ldpcomp(_X, _Y));
347 }
348 
349 template<class _Trc, class _Tre> struct _Combined_type
350 { // determine combined type
351  typedef float _Type; // (real, float) is float
352 };
353 
354 template<> struct _Combined_type<float, double>
355 { // determine combined type
356  typedef double _Type;
357 };
358 
359 template<> struct _Combined_type<float, long double>
360 { // determine combined type
361  typedef long double _Type;
362 };
363 
364 template<class _Ty, class _T2> struct _Real_widened
365 { // determine widened real type
366  typedef long double _Type; // default is long double
367 };
368 
369 template<> struct _Real_widened<float, float>
370 { // determine widened real type
371  typedef float _Type;
372 };
373 
374 template<> struct _Real_widened<float, double>
375 { // determine widened real type
376  typedef double _Type;
377 };
378 
379 template<> struct _Real_widened<double, float>
380 { // determine widened real type
381  typedef double _Type;
382 };
383 
384 template<> struct _Real_widened<double, double>
385 { // determine widened real type
386  typedef double _Type;
387 };
388 
389 template<class _Ty> struct _Real_type
390 { // determine equivalent real type
391  typedef double _Type; // default is double
392 };
393 
394 template<> struct _Real_type<float>
395 { // determine equivalent real type
396  typedef float _Type;
397 };
398 
399 template<> struct _Real_type<long double>
400 { // determine equivalent real type
401  typedef long double _Type;
402 };
403 
404 template<class _T1, class _T2> inline __nothrow int _fpcomp(_T1 _X, _T2 _Y)
405 { // compare _Left and _Right
406  typedef typename _Combined_type<float,
407  typename _Real_widened<
408  typename _Real_type<_T1>::_Type,
410  return (_fpcomp((_Tw)_X, (_Tw)_Y));
411 }
412 
413 template<class _Ty> inline __nothrow bool isfinite(_Ty _X)
414 {
415  return (fpclassify(_X) <= 0);
416 }
417 
418 template<class _Ty> inline __nothrow bool isinf(_Ty _X)
419 {
420  return (fpclassify(_X) == FP_INFINITE);
421 }
422 
423 template<class _Ty> inline __nothrow bool isnan(_Ty _X)
424 {
425  return (fpclassify(_X) == FP_NAN);
426 }
427 
428 template<class _Ty> inline __nothrow bool isnormal(_Ty _X)
429 {
430  return (fpclassify(_X) == FP_NORMAL);
431 }
432 
433 template<class _Ty1, class _Ty2> inline __nothrow bool isgreater(_Ty1 _X, _Ty2 _Y)
434 {
435  return ((_fpcomp(_X, _Y) & _FP_GT) != 0);
436 }
437 
438 template<class _Ty1, class _Ty2> inline __nothrow bool isgreaterequal(_Ty1 _X, _Ty2 _Y)
439 {
440  return ((_fpcomp(_X, _Y) & (_FP_EQ | _FP_GT)) != 0);
441 }
442 
443 template<class _Ty1, class _Ty2> inline __nothrow bool isless(_Ty1 _X, _Ty2 _Y)
444 {
445  return ((_fpcomp(_X, _Y) & _FP_LT) != 0);
446 }
447 
448 template<class _Ty1, class _Ty2> inline __nothrow bool islessequal(_Ty1 _X, _Ty2 _Y)
449 {
450  return ((_fpcomp(_X, _Y) & (_FP_LT | _FP_EQ)) != 0);
451 }
452 
453 template<class _Ty1, class _Ty2> inline __nothrow bool islessgreater(_Ty1 _X, _Ty2 _Y)
454 {
455  return ((_fpcomp(_X, _Y) & (_FP_LT | _FP_GT)) != 0);
456 }
457 
458 template<class _Ty1, class _Ty2> inline __nothrow bool isunordered(_Ty1 _X, _Ty2 _Y)
459 {
460  return (_fpcomp(_X, _Y) == 0);
461 }
462 
463 } // extern "C++"
464 
465 #endif /* __cplusplus */
466 
467 /* Function prototypes */
468 
469 #if !defined (__assembler)
470 int __cdecl abs(_In_ int _X);
471 long __cdecl labs(_In_ long _X);
472 long long __cdecl llabs(_In_ long long _X);
473 
474 double __cdecl acos(_In_ double _X);
475 _CRTIMP double __cdecl acosh(_In_ double _X);
476 double __cdecl asin(_In_ double _X);
477 _CRTIMP double __cdecl asinh(_In_ double _X);
478 double __cdecl atan(_In_ double _X);
479 _CRTIMP double __cdecl atanh(_In_ double _X);
480 double __cdecl atan2(_In_ double _Y, _In_ double _X);
481 
482 _CRTIMP double __cdecl cbrt(_In_ double _X);
483 _CRTIMP double __cdecl copysign(_In_ double _X, _In_ double _Y);
484 double __cdecl cos(_In_ double _X);
485 double __cdecl cosh(_In_ double _X);
486 _CRTIMP double __cdecl erf(_In_ double _X);
487 _CRTIMP double __cdecl erfc(_In_ double _X);
488 double __cdecl exp(_In_ double _X);
489 _CRTIMP double __cdecl exp2(_In_ double _X);
490 _CRTIMP double __cdecl expm1(_In_ double _X);
491 _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double _X);
492 _CRTIMP double __cdecl fdim(_In_ double _X, _In_ double _Y);
493 _CRTIMP double __cdecl fma(_In_ double _X, _In_ double _Y, _In_ double _Z);
494 _CRTIMP double __cdecl fmax(_In_ double _X, _In_ double _Y);
495 _CRTIMP double __cdecl fmin(_In_ double _X, _In_ double _Y);
496 double __cdecl fmod(_In_ double _X, _In_ double _Y);
497 _CRTIMP int __cdecl ilogb(_In_ double _X);
498 _CRTIMP double __cdecl lgamma(_In_ double _X);
499 _CRTIMP long long __cdecl llrint(_In_ double _X);
500 _CRTIMP long long __cdecl llround(_In_ double _X);
501 double __cdecl log(_In_ double _X);
502 double __cdecl log10(_In_ double _X);
503 _CRTIMP double __cdecl log1p(_In_ double _X);
504 _CRTIMP double __cdecl log2(_In_ double _X);
505 _CRTIMP double __cdecl logb(_In_ double _X);
506 _CRTIMP long __cdecl lrint(_In_ double _X);
507 _CRTIMP long __cdecl lround(_In_ double _X);
508 _CRTIMP double __cdecl nan(_In_ const char *);
509 _CRTIMP double __cdecl nearbyint(_In_ double _X);
510 _CRTIMP double __cdecl nextafter(_In_ double _X, _In_ double _Y);
511 _CRTIMP double __cdecl nexttoward(_In_ double _X, _In_ long double _Y);
512 double __cdecl pow(_In_ double _X, _In_ double _Y);
513 _CRTIMP double __cdecl remainder(_In_ double _X, _In_ double _Y);
514 _CRTIMP double __cdecl remquo(_In_ double _X, _In_ double _Y, _Out_ int *_Z);
515 _CRTIMP double __cdecl rint(_In_ double _X);
516 _CRTIMP double __cdecl round(_In_ double _X);
517 _CRTIMP double __cdecl scalbln(_In_ double _X, _In_ long _Y);
518 _CRTIMP double __cdecl scalbn(_In_ double _X, _In_ int _Y);
519 double __cdecl sin(_In_ double _X);
520 double __cdecl sinh(_In_ double _X);
521 _CRT_JIT_INTRINSIC double __cdecl sqrt(_In_ double _X);
522 double __cdecl tan(_In_ double _X);
523 double __cdecl tanh(_In_ double _X);
524 _CRTIMP double __cdecl tgamma(_In_ double _X);
525 _CRTIMP double __cdecl trunc(_In_ double _X);
526 
527 _Check_return_ _CRTIMP double __cdecl atof(_In_z_ const char *_String);
528 _Check_return_ _CRTIMP double __cdecl _atof_l(_In_z_ const char *_String, _In_opt_ _locale_t _Locale);
529 
530 _CRTIMP double __cdecl _cabs(_In_ struct _complex _Complex_value);
531 _CRTIMP double __cdecl ceil(_In_ double _X);
532 
533 _Check_return_ _CRTIMP double __cdecl _chgsign (_In_ double _X);
534 _Check_return_ _CRTIMP double __cdecl _copysign (_In_ double _Number, _In_ double _Sign);
535 
536 _CRTIMP double __cdecl floor(_In_ double _X);
537 _CRTIMP double __cdecl frexp(_In_ double _X, _Out_ int * _Y);
538 _CRTIMP double __cdecl _hypot(_In_ double _X, _In_ double _Y);
539 _CRTIMP double __cdecl _j0(_In_ double _X );
540 _CRTIMP double __cdecl _j1(_In_ double _X );
541 _CRTIMP double __cdecl _jn(int _X, _In_ double _Y);
542 _CRTIMP double __cdecl ldexp(_In_ double _X, _In_ int _Y);
543 
544 #if defined (MRTDLL) || defined (_M_CEE_PURE)
545 int __CRTDECL _matherr(_Inout_ struct _exception * _Except);
546 #else /* defined (MRTDLL) || defined (_M_CEE_PURE) */
547 int __cdecl _matherr(_Inout_ struct _exception * _Except);
548 #endif /* defined (MRTDLL) || defined (_M_CEE_PURE) */
549 
550 _CRTIMP double __cdecl modf(_In_ double _X, _Out_ double * _Y);
551 _CRTIMP double __cdecl _y0(_In_ double _X);
552 _CRTIMP double __cdecl _y1(_In_ double _X);
553 _CRTIMP double __cdecl _yn(_In_ int _X, _In_ double _Y);
554 
555 __inline double __CRTDECL hypot(_In_ double _X, _In_ double _Y)
556 {
557  return _hypot(_X, _Y);
558 }
559 
560 
561 _CRTIMP float __cdecl acoshf(_In_ float _X);
562 _CRTIMP float __cdecl asinhf(_In_ float _X);
563 _CRTIMP float __cdecl atanhf(_In_ float _X);
564 _CRTIMP float __cdecl cbrtf(_In_ float _X);
565 _CRTIMP float __cdecl _chgsignf(_In_ float _X);
566 _CRTIMP float __cdecl copysignf(_In_ float _X, _In_ float _Y);
567 _CRTIMP float __cdecl _copysignf(_In_ float _Number, _In_ float _Sign);
568 _CRTIMP float __cdecl erff(_In_ float _X);
569 _CRTIMP float __cdecl erfcf(_In_ float _X);
570 _CRTIMP float __cdecl expm1f(_In_ float _X);
571 _CRTIMP float __cdecl exp2f(_In_ float _X);
572 _CRTIMP float __cdecl fdimf(_In_ float _X, _In_ float _Y);
573 _CRTIMP float __cdecl fmaf(_In_ float _X, _In_ float _Y, _In_ float _Z);
574 _CRTIMP float __cdecl fmaxf(_In_ float _X, _In_ float _Y);
575 _CRTIMP float __cdecl fminf(_In_ float _X, _In_ float _Y);
576 _CRTIMP float __cdecl _hypotf(_In_ float _X, _In_ float _Y);
577 _CRTIMP int __cdecl ilogbf(_In_ float _X);
578 _CRTIMP float __cdecl lgammaf(_In_ float _X);
579 _CRTIMP long long __cdecl llrintf(_In_ float _X);
580 _CRTIMP long long __cdecl llroundf(_In_ float _X);
581 _CRTIMP float __cdecl log1pf(_In_ float _X);
582 _CRTIMP float __cdecl log2f(_In_ float _X);
583 _CRTIMP float __cdecl logbf(_In_ float _X);
584 _CRTIMP long __cdecl lrintf(_In_ float _X);
585 _CRTIMP long __cdecl lroundf(_In_ float _X);
586 _CRTIMP float __cdecl nanf(_In_ const char *);
587 _CRTIMP float __cdecl nearbyintf(_In_ float _X);
588 _CRTIMP float __cdecl nextafterf(_In_ float _X, _In_ float _Y);
589 _CRTIMP float __cdecl nexttowardf(_In_ float _X, _In_ long double _Y);
590 _CRTIMP float __cdecl remainderf(_In_ float _X, _In_ float _Y);
591 _CRTIMP float __cdecl remquof(_In_ float _X, _In_ float _Y, _Out_ int *_Z);
592 _CRTIMP float __cdecl rintf(_In_ float _X);
593 _CRTIMP float __cdecl roundf(_In_ float _X);
594 _CRTIMP float __cdecl scalblnf(_In_ float _X, _In_ long _Y);
595 _CRTIMP float __cdecl scalbnf(_In_ float _X, _In_ int _Y);
596 _CRTIMP float __cdecl tgammaf(_In_ float _X);
597 _CRTIMP float __cdecl truncf(_In_ float _X);
598 
599 #if defined (_M_IX86)
600 
601 _CRTIMP int __cdecl _set_SSE2_enable(_In_ int _Flag);
602 
603 #endif /* defined (_M_IX86) */
604 
605 #if defined (_M_X64)
606 
607 _CRTIMP float __cdecl _logbf(_In_ float _X);
608 _CRTIMP float __cdecl _nextafterf(_In_ float _X, _In_ float _Y);
609 _CRTIMP int __cdecl _finitef(_In_ float _X);
610 _CRTIMP int __cdecl _isnanf(_In_ float _X);
611 _CRTIMP int __cdecl _fpclassf(_In_ float _X);
612 
613 _CRTIMP int __cdecl _set_FMA3_enable(_In_ int _Flag);
614 
615 #endif /* defined (_M_X64) */
616 
617 #if defined (_M_ARM)
618 
619 _CRTIMP int __cdecl _finitef(_In_ float _X);
620 _CRTIMP float __cdecl _logbf(_In_ float _X);
621 
622 #endif /* defined (_M_ARM) */
623 
624 #if defined (_M_X64) || defined (_M_ARM)
625 
626 _CRTIMP float __cdecl acosf(_In_ float _X);
627 _CRTIMP float __cdecl asinf(_In_ float _X);
628 _CRTIMP float __cdecl atan2f(_In_ float _Y, _In_ float _X);
629 _CRTIMP float __cdecl atanf(_In_ float _X);
630 _CRTIMP float __cdecl ceilf(_In_ float _X);
631 _CRTIMP float __cdecl cosf(_In_ float _X);
632 _CRTIMP float __cdecl coshf(_In_ float _X);
633 _CRTIMP float __cdecl expf(_In_ float _X);
634 
635 #else /* defined(_M_X64) || defined(_M_ARM) */
636 
637 __inline float __CRTDECL acosf(_In_ float _X)
638 {
639  return (float)acos(_X);
640 }
641 
642 __inline float __CRTDECL asinf(_In_ float _X)
643 {
644  return (float)asin(_X);
645 }
646 
647 __inline float __CRTDECL atan2f(_In_ float _Y, _In_ float _X)
648 {
649  return (float)atan2(_Y, _X);
650 }
651 
652 __inline float __CRTDECL atanf(_In_ float _X)
653 {
654  return (float)atan(_X);
655 }
656 
657 __inline float __CRTDECL ceilf(_In_ float _X)
658 {
659  return (float)ceil(_X);
660 }
661 
662 __inline float __CRTDECL cosf(_In_ float _X)
663 {
664  return (float)cos(_X);
665 }
666 
667 __inline float __CRTDECL coshf(_In_ float _X)
668 {
669  return (float)cosh(_X);
670 }
671 
672 __inline float __CRTDECL expf(_In_ float _X)
673 {
674  return (float)exp(_X);
675 }
676 
677 #endif /* defined (_M_X64) || defined (_M_ARM) */
678 
679 #if defined (_M_ARM)
680 
681 _CRT_JIT_INTRINSIC _CRTIMP float __cdecl fabsf(_In_ float _X);
682 
683 #else /* defined (_M_ARM) */
684 
685 __inline float __CRTDECL fabsf(_In_ float _X)
686 {
687  return (float)fabs(_X);
688 }
689 
690 #endif /* defined (_M_ARM) */
691 
692 #if defined (_M_X64) || defined (_M_ARM)
693 
694 _CRTIMP float __cdecl floorf(_In_ float _X);
695 _CRTIMP float __cdecl fmodf(_In_ float _X, _In_ float _Y);
696 
697 #else /* defined (_M_X64) || defined (_M_ARM) */
698 
699 __inline float __CRTDECL floorf(_In_ float _X)
700 {
701  return (float)floor(_X);
702 }
703 
704 __inline float __CRTDECL fmodf(_In_ float _X, _In_ float _Y)
705 {
706  return (float)fmod(_X, _Y);
707 }
708 
709 #endif /* !defined(_M_X64) && !defined(_M_ARM) */
710 
711 __inline float __CRTDECL frexpf(_In_ float _X, _Out_ int *_Y)
712 {
713  return (float)frexp(_X, _Y);
714 }
715 
716 __inline float __CRTDECL hypotf(_In_ float _X, _In_ float _Y)
717 {
718  return _hypotf(_X, _Y);
719 }
720 
721 __inline float __CRTDECL ldexpf(_In_ float _X, _In_ int _Y)
722 {
723  return (float)ldexp(_X, _Y);
724 }
725 
726 #if defined (_M_X64) || defined (_M_ARM)
727 
728 _CRTIMP float __cdecl log10f(_In_ float _X);
729 _CRTIMP float __cdecl logf(_In_ float _X);
730 _CRTIMP float __cdecl modff(_In_ float _X, _Out_ float *_Y);
731 _CRTIMP float __cdecl powf(_In_ float _X, _In_ float _Y);
732 _CRTIMP float __cdecl sinf(_In_ float _X);
733 _CRTIMP float __cdecl sinhf(_In_ float _X);
734 _CRTIMP float __cdecl sqrtf(_In_ float _X);
735 _CRTIMP float __cdecl tanf(_In_ float _X);
736 _CRTIMP float __cdecl tanhf(_In_ float _X);
737 
738 #else /* defined (_M_X64) || defined (_M_ARM) */
739 
740 __inline float __CRTDECL log10f(_In_ float _X)
741 {
742  return (float)log10(_X);
743 }
744 
745 __inline float __CRTDECL logf(_In_ float _X)
746 {
747  return (float)log(_X);
748 }
749 
750 __inline float __CRTDECL modff(_In_ float _X, _Out_ float *_Y)
751 {
752  double _F, _I;
753  _F = modf(_X, &_I);
754  *_Y = (float)_I;
755  return (float)_F;
756 }
757 
758 __inline float __CRTDECL powf(_In_ float _X, _In_ float _Y)
759 {
760  return (float)pow(_X, _Y);
761 }
762 
763 __inline float __CRTDECL sinf(_In_ float _X)
764 {
765  return (float)sin(_X);
766 }
767 
768 __inline float __CRTDECL sinhf(_In_ float _X)
769 {
770  return (float)sinh(_X);
771 }
772 
773 __inline float __CRTDECL sqrtf(_In_ float _X)
774 {
775  return (float)sqrt(_X);
776 }
777 
778 __inline float __CRTDECL tanf(_In_ float _X)
779 {
780  return (float)tan(_X);
781 }
782 
783 __inline float __CRTDECL tanhf(_In_ float _X)
784 {
785  return (float)tanh(_X);
786 }
787 
788 #endif /* defined (_M_X64) || defined (_M_ARM) */
789 
790 _CRTIMP long double __cdecl acoshl(_In_ long double _X);
791 
792 __inline long double __CRTDECL acosl(_In_ long double _X)
793 {
794  return acos((double)_X);
795 }
796 
797 _CRTIMP long double __cdecl asinhl(_In_ long double _X);
798 
799 __inline long double __CRTDECL asinl(_In_ long double _X)
800 {
801  return asin((double)_X);
802 }
803 
804 __inline long double __CRTDECL atan2l(_In_ long double _Y, _In_ long double _X)
805 {
806  return atan2((double)_Y, (double)_X);
807 }
808 
809 _CRTIMP long double __cdecl atanhl(_In_ long double _X);
810 
811 __inline long double __CRTDECL atanl(_In_ long double _X)
812 {
813  return atan((double)_X);
814 }
815 
816 _CRTIMP long double __cdecl cbrtl(_In_ long double _X);
817 
818 __inline long double __CRTDECL ceill(_In_ long double _X)
819 {
820  return ceil((double)_X);
821 }
822 
823 __inline long double __CRTDECL _chgsignl(_In_ long double _X)
824 {
825  return _chgsign((double)_X);
826 }
827 
828 _CRTIMP long double __cdecl copysignl(_In_ long double _X, _In_ long double _Y);
829 
830 __inline long double __CRTDECL _copysignl(_In_ long double _X, _In_ long double _Y)
831 {
832  return _copysign((double)_X, (double)_Y);
833 }
834 
835 __inline long double __CRTDECL coshl(_In_ long double _X)
836 {
837  return cosh((double)_X);
838 }
839 
840 __inline long double __CRTDECL cosl(_In_ long double _X)
841 {
842  return cos((double)_X);
843 }
844 
845 _CRTIMP long double __cdecl erfl(_In_ long double _X);
846 _CRTIMP long double __cdecl erfcl(_In_ long double _X);
847 
848 __inline long double __CRTDECL expl(_In_ long double _X)
849 {
850  return exp((double)_X);
851 }
852 
853 _CRTIMP long double __cdecl exp2l(_In_ long double _X);
854 _CRTIMP long double __cdecl expm1l(_In_ long double _X);
855 
856 __inline long double __CRTDECL fabsl(_In_ long double _X)
857 {
858  return fabs((double)_X);
859 }
860 
861 _CRTIMP long double __cdecl fdiml(_In_ long double _X, _In_ long double _Y);
862 
863 __inline long double __CRTDECL floorl(_In_ long double _X)
864 {
865  return floor((double)_X);
866 }
867 
868 _CRTIMP long double __cdecl fmal(_In_ long double _X, _In_ long double _Y, _In_ long double _Z);
869 _CRTIMP long double __cdecl fmaxl(_In_ long double _X, _In_ long double _Y);
870 _CRTIMP long double __cdecl fminl(_In_ long double _X, _In_ long double _Y);
871 
872 __inline long double __CRTDECL fmodl(_In_ long double _X, _In_ long double _Y)
873 {
874  return fmod((double)_X, (double)_Y);
875 }
876 
877 __inline long double __CRTDECL frexpl(_In_ long double _X, _Out_ int *_Y)
878 {
879  return frexp((double)_X, _Y);
880 }
881 
882 _CRTIMP int __cdecl ilogbl(_In_ long double _X);
883 
884 __inline long double __CRTDECL _hypotl(_In_ long double _X, _In_ long double _Y)
885 {
886  return _hypot((double)_X, (double)_Y);
887 }
888 
889 __inline long double __CRTDECL hypotl(_In_ long double _X, _In_ long double _Y)
890 {
891  return _hypot((double)_X, (double)_Y);
892 }
893 
894 __inline long double __CRTDECL ldexpl(_In_ long double _X, _In_ int _Y)
895 {
896  return ldexp((double)_X, _Y);
897 }
898 
899 _CRTIMP long double __cdecl lgammal(_In_ long double _X);
900 _CRTIMP long long __cdecl llrintl(_In_ long double _X);
901 _CRTIMP long long __cdecl llroundl(_In_ long double _X);
902 
903 __inline long double __CRTDECL logl(_In_ long double _X)
904 {
905  return log((double)_X);
906 }
907 
908 __inline long double __CRTDECL log10l(_In_ long double _X)
909 {
910  return log10((double)_X);
911 }
912 
913 _CRTIMP long double __cdecl log1pl(_In_ long double _X);
914 _CRTIMP long double __cdecl log2l(_In_ long double _X);
915 _CRTIMP long double __cdecl logbl(_In_ long double _X);
916 _CRTIMP long __cdecl lrintl(_In_ long double _X);
917 _CRTIMP long __cdecl lroundl(_In_ long double _X);
918 
919 __inline long double __CRTDECL modfl(_In_ long double _X, _Out_ long double *_Y)
920 {
921  double _F, _I;
922  _F = modf((double)_X, &_I);
923  *_Y = _I;
924  return _F;
925 }
926 _CRTIMP long double __cdecl nanl(_In_ const char *);
927 _CRTIMP long double __cdecl nearbyintl(_In_ long double _X);
928 _CRTIMP long double __cdecl nextafterl(_In_ long double _X, _In_ long double _Y);
929 _CRTIMP long double __cdecl nexttowardl(_In_ long double _X, _In_ long double _Y);
930 
931 __inline long double __CRTDECL powl(_In_ long double _X, _In_ long double _Y)
932 {
933  return pow((double)_X, (double)_Y);
934 }
935 
936 _CRTIMP long double __cdecl remainderl(_In_ long double _X, _In_ long double _Y);
937 _CRTIMP long double __cdecl remquol(_In_ long double _X, _In_ long double _Y, _Out_ int *_Z);
938 _CRTIMP long double __cdecl rintl(_In_ long double _X);
939 _CRTIMP long double __cdecl roundl(_In_ long double _X);
940 _CRTIMP long double __cdecl scalblnl(_In_ long double _X, _In_ long _Y);
941 _CRTIMP long double __cdecl scalbnl(_In_ long double _X, _In_ int _Y);
942 
943 __inline long double __CRTDECL sinhl(_In_ long double _X)
944 {
945  return sinh((double)_X);
946 }
947 
948 __inline long double __CRTDECL sinl(_In_ long double _X)
949 {
950  return sin((double)_X);
951 }
952 
953 __inline long double __CRTDECL sqrtl(_In_ long double _X)
954 {
955  return sqrt((double)_X);
956 }
957 
958 __inline long double __CRTDECL tanhl(_In_ long double _X)
959 {
960  return tanh((double)_X);
961 }
962 
963 __inline long double __CRTDECL tanl(_In_ long double _X)
964 {
965  return tan((double)_X);
966 }
967 
968 _CRTIMP long double __cdecl tgammal(_In_ long double _X);
969 _CRTIMP long double __cdecl truncl(_In_ long double _X);
970 
971 #ifndef __cplusplus
972 #define _matherrl _matherr
973 #endif /* __cplusplus */
974 #endif /* !defined (__assembler) */
975 
976 #if !__STDC__
977 
978 /* Non-ANSI names for compatibility */
979 
980 #define DOMAIN _DOMAIN
981 #define SING _SING
982 #define OVERFLOW _OVERFLOW
983 #define UNDERFLOW _UNDERFLOW
984 #define TLOSS _TLOSS
985 #define PLOSS _PLOSS
986 
987 #define matherr _matherr
988 
989 #ifndef __assembler
990 
991 #if !defined (_M_CEE_PURE)
992 _CRTIMP extern double HUGE;
993 #else /* !defined (_M_CEE_PURE) */
994  const double HUGE = _HUGE;
995 #endif /* !defined (_M_CEE_PURE) */
996 
997 _CRT_NONSTDC_DEPRECATE(_j0) _CRTIMP double __cdecl j0(_In_ double _X);
998 _CRT_NONSTDC_DEPRECATE(_j1) _CRTIMP double __cdecl j1(_In_ double _X);
999 _CRT_NONSTDC_DEPRECATE(_jn) _CRTIMP double __cdecl jn(_In_ int _X, _In_ double _Y);
1000 _CRT_NONSTDC_DEPRECATE(_y0) _CRTIMP double __cdecl y0(_In_ double _X);
1001 _CRT_NONSTDC_DEPRECATE(_y1) _CRTIMP double __cdecl y1(_In_ double _X);
1002 _CRT_NONSTDC_DEPRECATE(_yn) _CRTIMP double __cdecl yn(_In_ int _X, _In_ double _Y);
1003 
1004 #endif /* __assembler */
1005 #endif /* !__STDC__ */
1006 
1007 #ifdef __cplusplus
1008 }
1009 
1010 extern "C++" {
1011 
1012 template<class _Ty> inline
1013  _Ty _Pow_int(_Ty _X, int _Y) throw()
1014  {unsigned int _N;
1015  if (_Y >= 0)
1016  _N = (unsigned int)_Y;
1017  else
1018  _N = (unsigned int)(-_Y);
1019  for (_Ty _Z = _Ty(1); ; _X *= _X)
1020  {if ((_N & 1) != 0)
1021  _Z *= _X;
1022  if ((_N >>= 1) == 0)
1023  return (_Y < 0 ? _Ty(1) / _Z : _Z); }}
1024 
1025 inline double __CRTDECL abs(_In_ double _X) throw()
1026  {return (fabs(_X)); }
1027 inline double __CRTDECL pow(_In_ double _X, _In_ int _Y) throw()
1028  {return (_Pow_int(_X, _Y)); }
1029 inline float __CRTDECL abs(_In_ float _X) throw()
1030  {return (fabsf(_X)); }
1031 inline float __CRTDECL acos(_In_ float _X) throw()
1032  {return (acosf(_X)); }
1033 inline float __CRTDECL acosh(_In_ float _X) throw()
1034  {return (acoshf(_X)); }
1035 inline float __CRTDECL asin(_In_ float _X) throw()
1036  {return (asinf(_X)); }
1037 inline float __CRTDECL asinh(_In_ float _X) throw()
1038  {return (asinhf(_X)); }
1039 inline float __CRTDECL atan(_In_ float _X) throw()
1040  {return (atanf(_X)); }
1041 inline float __CRTDECL atanh(_In_ float _X) throw()
1042  {return (atanhf(_X)); }
1043 inline float __CRTDECL atan2(_In_ float _Y, _In_ float _X) throw()
1044  {return (atan2f(_Y, _X)); }
1045 inline float __CRTDECL cbrt(_In_ float _X) throw()
1046  {return (cbrtf(_X)); }
1047 inline float __CRTDECL ceil(_In_ float _X) throw()
1048  {return (ceilf(_X)); }
1049 inline float __CRTDECL copysign(_In_ float _X, _In_ float _Y) throw()
1050  {return (copysignf(_X, _Y)); }
1051 inline float __CRTDECL cos(_In_ float _X) throw()
1052  {return (cosf(_X)); }
1053 inline float __CRTDECL cosh(_In_ float _X) throw()
1054  {return (coshf(_X)); }
1055 inline float __CRTDECL erf(_In_ float _X) throw()
1056  {return (erff(_X)); }
1057 inline float __CRTDECL erfc(_In_ float _X) throw()
1058  {return (erfcf(_X)); }
1059 inline float __CRTDECL exp(_In_ float _X) throw()
1060  {return (expf(_X)); }
1061 inline float __CRTDECL exp2(_In_ float _X) throw()
1062  {return (exp2f(_X)); }
1063 inline float __CRTDECL expm1(_In_ float _X) throw()
1064  {return (expm1f(_X)); }
1065 inline float __CRTDECL fabs(_In_ float _X) throw()
1066  {return (fabsf(_X)); }
1067 inline float __CRTDECL fdim(_In_ float _X, _In_ float _Y) throw()
1068  {return (fdimf(_X, _Y)); }
1069 inline float __CRTDECL floor(_In_ float _X) throw()
1070  {return (floorf(_X)); }
1071 inline float __CRTDECL fma(_In_ float _X, _In_ float _Y, _In_ float _Z) throw()
1072  {return (fmaf(_X, _Y, _Z)); }
1073 inline float __CRTDECL fmax(_In_ float _X, _In_ float _Y) throw()
1074  {return (fmaxf(_X, _Y)); }
1075 inline float __CRTDECL fmin(_In_ float _X, _In_ float _Y) throw()
1076  {return (fminf(_X, _Y)); }
1077 inline float __CRTDECL fmod(_In_ float _X, _In_ float _Y) throw()
1078  {return (fmodf(_X, _Y)); }
1079 inline float __CRTDECL frexp(_In_ float _X, _Out_ int * _Y) throw()
1080  {return (frexpf(_X, _Y)); }
1081 inline float __CRTDECL hypot(_In_ float _X, _In_ float _Y) throw()
1082  {return (hypotf(_X, _Y)); }
1083 inline int __CRTDECL ilogb(_In_ float _X) throw()
1084  {return (ilogbf(_X)); }
1085 inline float __CRTDECL ldexp(_In_ float _X, _In_ int _Y) throw()
1086  {return (ldexpf(_X, _Y)); }
1087 inline float __CRTDECL lgamma(_In_ float _X) throw()
1088  {return (lgammaf(_X)); }
1089 inline long long __CRTDECL llrint(_In_ float _X) throw()
1090  {return (llrintf(_X)); }
1091 inline long long __CRTDECL llround(_In_ float _X) throw()
1092  {return (llroundf(_X)); }
1093 inline float __CRTDECL log(_In_ float _X) throw()
1094  {return (logf(_X)); }
1095 inline float __CRTDECL log10(_In_ float _X) throw()
1096  {return (log10f(_X)); }
1097 inline float __CRTDECL log1p(_In_ float _X) throw()
1098  {return (log1pf(_X)); }
1099 inline float __CRTDECL log2(_In_ float _X) throw()
1100  {return (log2f(_X)); }
1101 inline float __CRTDECL logb(_In_ float _X) throw()
1102  {return (logbf(_X)); }
1103 inline long __CRTDECL lrint(_In_ float _X) throw()
1104  {return (lrintf(_X)); }
1105 inline long __CRTDECL lround(_In_ float _X) throw()
1106  {return (lroundf(_X)); }
1107 inline float __CRTDECL modf(_In_ float _X, _Out_ float * _Y) throw()
1108  {return (modff(_X, _Y)); }
1109 inline float __CRTDECL nearbyint(_In_ float _X) throw()
1110  {return (nearbyintf(_X)); }
1111 inline float __CRTDECL nextafter(_In_ float _X, _In_ float _Y) throw()
1112  {return (nextafterf(_X, _Y)); }
1113 inline float __CRTDECL nexttoward(_In_ float _X, _In_ long double _Y) throw()
1114  {return (nexttowardf(_X, _Y)); }
1115 inline float __CRTDECL pow(_In_ float _X, _In_ float _Y) throw()
1116  {return (powf(_X, _Y)); }
1117 inline float __CRTDECL pow(_In_ float _X, _In_ int _Y) throw()
1118  {return (_Pow_int(_X, _Y)); }
1119 inline float __CRTDECL remainder(_In_ float _X, _In_ float _Y) throw()
1120  {return (remainderf(_X, _Y)); }
1121 inline float __CRTDECL remquo(_In_ float _X, _In_ float _Y, _Out_ int *_Z) throw()
1122  {return (remquof(_X, _Y, _Z)); }
1123 inline float __CRTDECL rint(_In_ float _X) throw()
1124  {return (rintf(_X)); }
1125 inline float __CRTDECL round(_In_ float _X) throw()
1126  {return (roundf(_X)); }
1127 inline float __CRTDECL scalbln(_In_ float _X, _In_ long _Y) throw()
1128  {return (scalblnf(_X, _Y)); }
1129 inline float __CRTDECL scalbn(_In_ float _X, _In_ int _Y) throw()
1130  {return (scalbnf(_X, _Y)); }
1131 inline float __CRTDECL sin(_In_ float _X) throw()
1132  {return (sinf(_X)); }
1133 inline float __CRTDECL sinh(_In_ float _X) throw()
1134  {return (sinhf(_X)); }
1135 inline float __CRTDECL sqrt(_In_ float _X) throw()
1136  {return (sqrtf(_X)); }
1137 inline float __CRTDECL tan(_In_ float _X) throw()
1138  {return (tanf(_X)); }
1139 inline float __CRTDECL tanh(_In_ float _X) throw()
1140  {return (tanhf(_X)); }
1141 inline float __CRTDECL tgamma(_In_ float _X) throw()
1142  {return (tgammaf(_X)); }
1143 inline float __CRTDECL trunc(_In_ float _X) throw()
1144  {return (truncf(_X)); }
1145 inline long double __CRTDECL abs(_In_ long double _X) throw()
1146  {return (fabsl(_X)); }
1147 inline long double __CRTDECL acos(_In_ long double _X) throw()
1148  {return (acosl(_X)); }
1149 inline long double __CRTDECL acosh(_In_ long double _X) throw()
1150  {return (acoshl(_X)); }
1151 inline long double __CRTDECL asin(_In_ long double _X) throw()
1152  {return (asinl(_X)); }
1153 inline long double __CRTDECL asinh(_In_ long double _X) throw()
1154  {return (asinhl(_X)); }
1155 inline long double __CRTDECL atan(_In_ long double _X) throw()
1156  {return (atanl(_X)); }
1157 inline long double __CRTDECL atanh(_In_ long double _X) throw()
1158  {return (atanhl(_X)); }
1159 inline long double __CRTDECL atan2(_In_ long double _Y, _In_ long double _X) throw()
1160  {return (atan2l(_Y, _X)); }
1161 inline long double __CRTDECL cbrt(_In_ long double _X) throw()
1162  {return (cbrtl(_X)); }
1163 inline long double __CRTDECL ceil(_In_ long double _X) throw()
1164  {return (ceill(_X)); }
1165 inline long double __CRTDECL copysign(_In_ long double _X, _In_ long double _Y) throw()
1166  {return (copysignl(_X, _Y)); }
1167 inline long double __CRTDECL cos(_In_ long double _X) throw()
1168  {return (cosl(_X)); }
1169 inline long double __CRTDECL cosh(_In_ long double _X) throw()
1170  {return (coshl(_X)); }
1171 inline long double __CRTDECL erf(_In_ long double _X) throw()
1172  {return (erfl(_X)); }
1173 inline long double __CRTDECL erfc(_In_ long double _X) throw()
1174  {return (erfcl(_X)); }
1175 inline long double __CRTDECL exp(_In_ long double _X) throw()
1176  {return (expl(_X)); }
1177 inline long double __CRTDECL exp2(_In_ long double _X) throw()
1178  {return (exp2l(_X)); }
1179 inline long double __CRTDECL expm1(_In_ long double _X) throw()
1180  {return (expm1l(_X)); }
1181 inline long double __CRTDECL fabs(_In_ long double _X) throw()
1182  {return (fabsl(_X)); }
1183 inline long double __CRTDECL fdim(_In_ long double _X, _In_ long double _Y) throw()
1184  {return (fdiml(_X, _Y)); }
1185 inline long double __CRTDECL floor(_In_ long double _X) throw()
1186  {return (floorl(_X)); }
1187 inline long double __CRTDECL fma(_In_ long double _X, _In_ long double _Y, _In_ long double _Z) throw()
1188  {return (fmal(_X, _Y, _Z)); }
1189 inline long double __CRTDECL fmax(_In_ long double _X, _In_ long double _Y) throw()
1190  {return (fmaxl(_X, _Y)); }
1191 inline long double __CRTDECL fmin(_In_ long double _X, _In_ long double _Y) throw()
1192  {return (fminl(_X, _Y)); }
1193 inline long double __CRTDECL fmod(_In_ long double _X, _In_ long double _Y) throw()
1194  {return (fmodl(_X, _Y)); }
1195 inline long double __CRTDECL frexp(_In_ long double _X, _Out_ int * _Y) throw()
1196  {return (frexpl(_X, _Y)); }
1197 inline long double __CRTDECL hypot(_In_ long double _X, _In_ long double _Y) throw()
1198  {return (hypotl(_X, _Y)); }
1199 inline int __CRTDECL ilogb(_In_ long double _X) throw()
1200  {return (ilogbl(_X)); }
1201 inline long double __CRTDECL ldexp(_In_ long double _X, _In_ int _Y) throw()
1202  {return (ldexpl(_X, _Y)); }
1203 inline long double __CRTDECL lgamma(_In_ long double _X) throw()
1204  {return (lgammal(_X)); }
1205 inline long long __CRTDECL llrint(_In_ long double _X) throw()
1206  {return (llrintl(_X)); }
1207 inline long long __CRTDECL llround(_In_ long double _X) throw()
1208  {return (llroundl(_X)); }
1209 inline long double __CRTDECL log(_In_ long double _X) throw()
1210  {return (logl(_X)); }
1211 inline long double __CRTDECL log10(_In_ long double _X) throw()
1212  {return (log10l(_X)); }
1213 inline long double __CRTDECL log1p(_In_ long double _X) throw()
1214  {return (log1pl(_X)); }
1215 inline long double __CRTDECL log2(_In_ long double _X) throw()
1216  {return (log2l(_X)); }
1217 inline long double __CRTDECL logb(_In_ long double _X) throw()
1218  {return (logbl(_X)); }
1219 inline long __CRTDECL lrint(_In_ long double _X) throw()
1220  {return (lrintl(_X)); }
1221 inline long __CRTDECL lround(_In_ long double _X) throw()
1222  {return (lroundl(_X)); }
1223 inline long double __CRTDECL modf(_In_ long double _X, _Out_ long double * _Y) throw()
1224  {return (modfl(_X, _Y)); }
1225 inline long double __CRTDECL nearbyint(_In_ long double _X) throw()
1226  {return (nearbyintl(_X)); }
1227 inline long double __CRTDECL nextafter(_In_ long double _X, _In_ long double _Y) throw()
1228  {return (nextafterl(_X, _Y)); }
1229 inline long double __CRTDECL nexttoward(_In_ long double _X, _In_ long double _Y) throw()
1230  {return (nexttowardl(_X, _Y)); }
1231 inline long double __CRTDECL pow(_In_ long double _X, _In_ long double _Y) throw()
1232  {return (powl(_X, _Y)); }
1233 inline long double __CRTDECL pow(_In_ long double _X, _In_ int _Y) throw()
1234  {return (_Pow_int(_X, _Y)); }
1235 inline long double __CRTDECL remainder(_In_ long double _X, _In_ long double _Y) throw()
1236  {return (remainderl(_X, _Y)); }
1237 inline long double __CRTDECL remquo(_In_ long double _X, _In_ long double _Y, _Out_ int *_Z) throw()
1238  {return (remquol(_X, _Y, _Z)); }
1239 inline long double __CRTDECL rint(_In_ long double _X) throw()
1240  {return (rintl(_X)); }
1241 inline long double __CRTDECL round(_In_ long double _X) throw()
1242  {return (roundl(_X)); }
1243 inline long double __CRTDECL scalbln(_In_ long double _X, _In_ long _Y) throw()
1244  {return (scalblnl(_X, _Y)); }
1245 inline long double __CRTDECL scalbn(_In_ long double _X, _In_ int _Y) throw()
1246  {return (scalbnl(_X, _Y)); }
1247 inline long double __CRTDECL sin(_In_ long double _X) throw()
1248  {return (sinl(_X)); }
1249 inline long double __CRTDECL sinh(_In_ long double _X) throw()
1250  {return (sinhl(_X)); }
1251 inline long double __CRTDECL sqrt(_In_ long double _X) throw()
1252  {return (sqrtl(_X)); }
1253 inline long double __CRTDECL tan(_In_ long double _X) throw()
1254  {return (tanl(_X)); }
1255 inline long double __CRTDECL tanh(_In_ long double _X) throw()
1256  {return (tanhl(_X)); }
1257 inline long double __CRTDECL tgamma(_In_ long double _X) throw()
1258  {return (tgammal(_X)); }
1259 inline long double __CRTDECL trunc(_In_ long double _X) throw()
1260  {return (truncl(_X)); }
1261 
1262 }
1263 #endif /* __cplusplus */
1264 
1265 #pragma pack(pop)
1266 
1267 #endif /* _INC_MATH */
1268 
1269 #if defined (_USE_MATH_DEFINES) && !defined (_MATH_DEFINES_DEFINED)
1270 #define _MATH_DEFINES_DEFINED
1271 
1272 /* Define _USE_MATH_DEFINES before including math.h to expose these macro
1273  * definitions for common math constants. These are placed under an #ifdef
1274  * since these commonly-defined names are not part of the C/C++ standards.
1275  */
1276 
1277 /* Definitions of useful mathematical constants
1278  * M_E - e
1279  * M_LOG2E - log2(e)
1280  * M_LOG10E - log10(e)
1281  * M_LN2 - ln(2)
1282  * M_LN10 - ln(10)
1283  * M_PI - pi
1284  * M_PI_2 - pi/2
1285  * M_PI_4 - pi/4
1286  * M_1_PI - 1/pi
1287  * M_2_PI - 2/pi
1288  * M_2_SQRTPI - 2/sqrt(pi)
1289  * M_SQRT2 - sqrt(2)
1290  * M_SQRT1_2 - 1/sqrt(2)
1291  */
1292 
1293 #define M_E 2.71828182845904523536
1294 #define M_LOG2E 1.44269504088896340736
1295 #define M_LOG10E 0.434294481903251827651
1296 #define M_LN2 0.693147180559945309417
1297 #define M_LN10 2.30258509299404568402
1298 #define M_PI 3.14159265358979323846
1299 #define M_PI_2 1.57079632679489661923
1300 #define M_PI_4 0.785398163397448309616
1301 #define M_1_PI 0.318309886183790671538
1302 #define M_2_PI 0.636619772367581343076
1303 #define M_2_SQRTPI 1.12837916709551257390
1304 #define M_SQRT2 1.41421356237309504880
1305 #define M_SQRT1_2 0.707106781186547524401
1306 
1307 #endif /* defined (_USE_MATH_DEFINES) && !defined (_MATH_DEFINES_DEFINED) */
const double _Xbig_C
#define _Out_
Definition: sal.h:351
const double _Zero_C
__inline long double __CRTDECL ceill(_In_ long double _X)
Definition: math.h:818
_CRTIMP double __cdecl fdim(_In_ double _X, _In_ double _Y)
_CRTIMP double __cdecl scalbn(_In_ double _X, _In_ int _Y)
_CRTIMP float __cdecl fmaf(_In_ float _X, _In_ float _Y, _In_ float _Z)
_CRTIMP double __cdecl copysign(_In_ double _X, _In_ double _Y)
short _CRTIMP __cdecl _dnorm(_In_ unsigned short *_Ps)
_CRTIMP long double __cdecl expm1l(_In_ long double _X)
_CRTIMP long long __cdecl llrintf(_In_ float _X)
long double _CRTIMP __cdecl _ldlog(_In_ long double _X, _In_ int _Baseflag)
__inline float __CRTDECL atanf(_In_ float _X)
Definition: math.h:652
double arg2
Definition: math.h:41
double __cdecl atan(_In_ double _X)
_CRTIMP float __cdecl exp2f(_In_ float _X)
__inline float __CRTDECL cosf(_In_ float _X)
Definition: math.h:662
const _float_const _FNan_C
__inline float __CRTDECL atan2f(_In_ float _Y, _In_ float _X)
Definition: math.h:647
__inline float __CRTDECL tanf(_In_ float _X)
Definition: math.h:778
const _float_const _LEps_C
__inline float __CRTDECL tanhf(_In_ float _X)
Definition: math.h:783
const _float_const _LRteps_C
_Check_return_ _CRTIMP double __cdecl atof(_In_z_ const char *_String)
_CRTIMP float __cdecl erfcf(_In_ float _X)
_CRTIMP long double __cdecl nanl(_In_ const char *)
double y
Definition: math.h:55
_Check_return_ _CRTIMP double __cdecl _atof_l(_In_z_ const char *_String, _In_opt_ _locale_t _Locale)
_CRTIMP double __cdecl logb(_In_ double _X)
_CRTIMP double HUGE
_CRTIMP long double __cdecl acoshl(_In_ long double _X)
_CRTIMP long double __cdecl tgammal(_In_ long double _X)
#define isgreater(x, y)
Definition: math.h:293
_CRTIMP float __cdecl nexttowardf(_In_ float _X, _In_ long double _Y)
__inline float __CRTDECL sqrtf(_In_ float _X)
Definition: math.h:773
__inline float __CRTDECL asinf(_In_ float _X)
Definition: math.h:642
double __cdecl fmod(_In_ double _X, _In_ double _Y)
short _CRTIMP __cdecl _fdclass(_In_ float _X)
_CRTIMP float __cdecl remainderf(_In_ float _X, _In_ float _Y)
_CRTIMP float __cdecl lgammaf(_In_ float _X)
_CRTIMP long double __cdecl fminl(_In_ long double _X, _In_ long double _Y)
_CRTIMP long __cdecl lrint(_In_ double _X)
_CRTIMP double __cdecl modf(_In_ double _X, _Out_ double *_Y)
__inline float __CRTDECL hypotf(_In_ float _X, _In_ float _Y)
Definition: math.h:716
_CRTIMP float __cdecl tgammaf(_In_ float _X)
_CRTIMP double __cdecl lgamma(_In_ double _X)
#define _CRTIMP
Definition: crtdefs.h:23
_CRTIMP float __cdecl fminf(_In_ float _X, _In_ float _Y)
__inline long double __CRTDECL powl(_In_ long double _X, _In_ long double _Y)
Definition: math.h:931
_CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double _X)
_CRTIMP float __cdecl asinhf(_In_ float _X)
_CRTIMP double __cdecl _j1(_In_ double _X)
#define islessgreater(x, y)
Definition: math.h:297
#define isless(x, y)
Definition: math.h:295
#define isfinite(_Val)
Definition: math.h:287
__inline float __CRTDECL coshf(_In_ float _X)
Definition: math.h:667
_CRTIMP double __cdecl _jn(int _X, _In_ double _Y)
char * name
Definition: math.h:39
#define isgreaterequal(x, y)
Definition: math.h:294
_CRTIMP double __cdecl log1p(_In_ double _X)
_CRTIMP long double __cdecl erfcl(_In_ long double _X)
_CRTIMP double __cdecl fmax(_In_ double _X, _In_ double _Y)
long __cdecl labs(_In_ long _X)
_CRTIMP double __cdecl _cabs(_In_ struct _complex _Complex_value)
_CRTIMP _In_opt_z_ const wchar_t _In_opt_z_ const wchar_t unsigned int
Definition: crtdefs.h:642
const long double _LZero_C
_N
Definition: wchar.h:1269
_CRTIMP long double __cdecl scalbnl(_In_ long double _X, _In_ int _Y)
__inline long double __CRTDECL fabsl(_In_ long double _X)
Definition: math.h:856
_CRTIMP long double __cdecl logbl(_In_ long double _X)
const _float_const _FEps_C
__inline long double __CRTDECL atanl(_In_ long double _X)
Definition: math.h:811
_CRTIMP float __cdecl _copysignf(_In_ float _Number, _In_ float _Sign)
__inline float __CRTDECL fabsf(_In_ float _X)
Definition: math.h:685
int type
Definition: math.h:38
_CRTIMP float __cdecl fdimf(_In_ float _X, _In_ float _Y)
_CRTIMP double __cdecl ldexp(_In_ double _X, _In_ int _Y)
_CRTIMP long double __cdecl fmal(_In_ long double _X, _In_ long double _Y, _In_ long double _Z)
__inline float __CRTDECL floorf(_In_ float _X)
Definition: math.h:699
int _CRTIMP __cdecl _dpcomp(_In_ double _X, _In_ double _Y)
_CRTIMP long long __cdecl llrint(_In_ double _X)
Definition: math.h:54
_CRTIMP double __cdecl erf(_In_ double _X)
double _CRTIMP __cdecl _dsin(_In_ double _X, _In_ unsigned int _Qoff)
_CRTIMP long __cdecl lroundl(_In_ long double _X)
_CRTIMP float __cdecl roundf(_In_ float _X)
_CRTIMP float __cdecl cbrtf(_In_ float _X)
_CRTIMP double __cdecl floor(_In_ double _X)
_CRTIMP float __cdecl fmaxf(_In_ float _X, _In_ float _Y)
short _CRTIMP __cdecl _fdtest(_In_ float *_Px)
__inline long double __CRTDECL hypotl(_In_ long double _X, _In_ long double _Y)
Definition: math.h:889
const _float_const _Hugeval_C
_CRTIMP double __cdecl round(_In_ double _X)
__inline float __CRTDECL log10f(_In_ float _X)
Definition: math.h:740
short _CRTIMP __cdecl _dtest(_In_ double *_Px)
_CRTIMP double __cdecl atanh(_In_ double _X)
__inline float __CRTDECL logf(_In_ float _X)
Definition: math.h:745
double x
Definition: math.h:55
double __cdecl _dpoly(_In_ double _X, _In_ const double *_Tab, _In_ int _N)
_CRTIMP long double __cdecl remainderl(_In_ long double _X, _In_ long double _Y)
_CRTIMP float __cdecl _chgsignf(_In_ float _X)
__inline float __CRTDECL frexpf(_In_ float _X, _Out_ int *_Y)
Definition: math.h:711
_CRTIMP long __cdecl lround(_In_ double _X)
short _CRTIMP __cdecl _dclass(_In_ double _X)
_CRTIMP long double __cdecl atanhl(_In_ long double _X)
short _CRTIMP __cdecl _ldclass(_In_ long double _X)
_CRTIMP float __cdecl scalblnf(_In_ float _X, _In_ long _Y)
#define isunordered(x, y)
Definition: math.h:298
_CRT_JIT_INTRINSIC double __cdecl sqrt(_In_ double _X)
double __cdecl atan2(_In_ double _Y, _In_ double _X)
_CRTIMP long double __cdecl log1pl(_In_ long double _X)
__inline float __CRTDECL powf(_In_ float _X, _In_ float _Y)
Definition: math.h:758
#define _CRT_JIT_INTRINSIC
Definition: crtdefs.h:414
double __cdecl exp(_In_ double _X)
__inline float __CRTDECL fmodf(_In_ float _X, _In_ float _Y)
Definition: math.h:704
double _Val
Definition: math.h:237
short _CRTIMP __cdecl _ldtest(_In_ long double *_Px)
__inline float __CRTDECL sinhf(_In_ float _X)
Definition: math.h:768
Definition: math.h:241
__inline long double __CRTDECL expl(_In_ long double _X)
Definition: math.h:848
const float _FXbig_C
__inline long double __CRTDECL sqrtl(_In_ long double _X)
Definition: math.h:953
_CRTIMP long double __cdecl copysignl(_In_ long double _X, _In_ long double _Y)
float _Float
Definition: math.h:257
_CRTIMP long double __cdecl scalblnl(_In_ long double _X, _In_ long _Y)
_CRTIMP float __cdecl rintf(_In_ float _X)
#define _FP_GT
Definition: math.h:276
#define isnan(_Val)
Definition: math.h:289
__inline long double __CRTDECL log10l(_In_ long double _X)
Definition: math.h:908
double __cdecl tan(_In_ double _X)
_CRTIMP double __cdecl fmin(_In_ double _X, _In_ double _Y)
double double_t
Definition: math.h:68
#define _Check_return_
Definition: sal.h:563
const float _FZero_C
_CRTIMP float __cdecl truncf(_In_ float _X)
_CRTIMP long double __cdecl fmaxl(_In_ long double _X, _In_ long double _Y)
short _CRTIMP __cdecl _fdscale(_In_ float *_Px, _In_ long _Lexp)
#define _In_z_
Definition: sal.h:319
_CRTIMP double __cdecl log2(_In_ double _X)
#define _In_
Definition: sal.h:314
double _Double
Definition: math.h:258
_CRTIMP long double __cdecl exp2l(_In_ long double _X)
_CRTIMP float __cdecl log2f(_In_ float _X)
long double _CRTIMP __cdecl _ldsin(_In_ long double _X, _In_ unsigned int _Qoff)
_Check_return_ _In_z_ const char * _Locale
Definition: locale.h:117
const _float_const _Inf_C
#define _In_opt_
Definition: sal.h:315
float float_t
Definition: math.h:67
_CRTIMP float __cdecl logbf(_In_ float _X)
_CRTIMP long long __cdecl llrintl(_In_ long double _X)
_CRTIMP float __cdecl log1pf(_In_ float _X)
_CRTIMP float __cdecl _hypotf(_In_ float _X, _In_ float _Y)
_CRTIMP double __cdecl scalbln(_In_ double _X, _In_ long _Y)
float _Val
Definition: math.h:244
_CRTIMP double __cdecl cbrt(_In_ double _X)
__inline long double __CRTDECL cosl(_In_ long double _X)
Definition: math.h:840
_CRTIMP long double __cdecl nexttowardl(_In_ long double _X, _In_ long double _Y)
long double __cdecl _ldpoly(_In_ long double _X, _In_ const long double *_Tab, _In_ int _N)
const _float_const _FSnan_C
#define islessequal(x, y)
Definition: math.h:296
int _CRTIMP __cdecl _ldsign(_In_ long double _X)
__inline long double __CRTDECL coshl(_In_ long double _X)
Definition: math.h:835
_In_ double _Y
Definition: math.h:999
#define __nothrow
Definition: sal.h:2384
_CRTIMP float __cdecl nearbyintf(_In_ float _X)
_Check_return_ _CRTIMP double __cdecl _chgsign(_In_ double _X)
int __cdecl _matherr(_Inout_ struct _exception *_Except)
short _CRTIMP __cdecl _d_int(_In_ double *_Px, _In_ short _Xexp)
float __cdecl _fdpoly(_In_ float _X, _In_ const float *_Tab, _In_ int _N)
_CRTIMP float __cdecl scalbnf(_In_ float _X, _In_ int _Y)
const _float_const _Snan_C
__inline float __CRTDECL sinf(_In_ float _X)
Definition: math.h:763
double __cdecl tanh(_In_ double _X)
_CRTIMP double _HUGE
_CRTIMP float __cdecl expm1f(_In_ float _X)
__inline long double __CRTDECL floorl(_In_ long double _X)
Definition: math.h:863
__inline long double __CRTDECL _copysignl(_In_ long double _X, _In_ long double _Y)
Definition: math.h:830
_CRTIMP long double __cdecl rintl(_In_ long double _X)
_CRTIMP double __cdecl _j0(_In_ double _X)
short _CRTIMP __cdecl _fdunscale(_In_ short *_Pex, _In_ float *_Px)
double __cdecl sinh(_In_ double _X)
_CRTIMP double __cdecl remainder(_In_ double _X, _In_ double _Y)
short _CRTIMP __cdecl _ldunscale(_In_ short *_Pex, _In_ long double *_Px)
double retval
Definition: math.h:42
_CRTIMP double __cdecl _y0(_In_ double _X)
#define FP_INFINITE
Definition: math.h:113
_CRTIMP long double __cdecl log2l(_In_ long double _X)
short _CRTIMP __cdecl _fdexp(_In_ float *_Px, _In_ float _Y, _In_ long _Eoff)
_CRTIMP double __cdecl erfc(_In_ double _X)
const _float_const _LSnan_C
_CRTIMP long double __cdecl nextafterl(_In_ long double _X, _In_ long double _Y)
__inline long double __CRTDECL ldexpl(_In_ long double _X, _In_ int _Y)
Definition: math.h:894
_CRTIMP double __cdecl frexp(_In_ double _X, _Out_ int *_Y)
short _CRTIMP __cdecl _fd_int(_In_ float *_Px, _In_ short _Xexp)
long double _Val
Definition: math.h:251
const _float_const _LNan_C
_CRTIMP double __cdecl _y1(_In_ double _X)
const _float_const _LInf_C
short _CRTIMP __cdecl _ld_int(_In_ long double *_Px, _In_ short _Xexp)
#define _FP_LT
Definition: math.h:274
_CRTIMP int __cdecl ilogbl(_In_ long double _X)
_CRTIMP double __cdecl asinh(_In_ double _X)
__inline long double __CRTDECL tanhl(_In_ long double _X)
Definition: math.h:958
_CRTIMP double __cdecl nexttoward(_In_ double _X, _In_ long double _Y)
_In_ wctype_t _Type
Definition: ctype.h:205
_CRTIMP long long __cdecl llroundf(_In_ float _X)
_CRTIMP double __cdecl rint(_In_ double _X)
Definition: complex:582
_CRTIMP long long __cdecl llroundl(_In_ long double _X)
double __cdecl cosh(_In_ double _X)
_CRTIMP long double __cdecl erfl(_In_ long double _X)
#define __CRTDECL
Definition: crtdefs.h:622
__inline long double __CRTDECL modfl(_In_ long double _X, _Out_ long double *_Y)
Definition: math.h:919
__inline long double __CRTDECL sinl(_In_ long double _X)
Definition: math.h:948
_Check_return_ _CRTIMP double __cdecl _copysign(_In_ double _Number, _In_ double _Sign)
_CRTIMP int __cdecl ilogbf(_In_ float _X)
short _CRTIMP __cdecl _ldexp(_In_ long double *_Px, _In_ long double _Y, _In_ long _Eoff)
_CRTIMP double __cdecl _yn(_In_ int _X, _In_ double _Y)
double __cdecl acos(_In_ double _X)
_CRTIMP long double __cdecl truncl(_In_ long double _X)
const _float_const _FRteps_C
double __cdecl log10(_In_ double _X)
_CRTIMP float __cdecl acoshf(_In_ float _X)
short _CRTIMP __cdecl _dunscale(_In_ short *_Pex, _In_ double *_Px)
int __cdecl abs(_In_ int _X)
__inline long double __CRTDECL tanl(_In_ long double _X)
Definition: math.h:963
__inline float __CRTDECL acosf(_In_ float _X)
Definition: math.h:637
_CRTIMP double __cdecl fma(_In_ double _X, _In_ double _Y, _In_ double _Z)
_CRTIMP long double __cdecl fdiml(_In_ long double _X, _In_ long double _Y)
__inline float __CRTDECL ceilf(_In_ float _X)
Definition: math.h:657
__inline float __CRTDECL modff(_In_ float _X, _Out_ float *_Y)
Definition: math.h:750
_CRTIMP long double __cdecl asinhl(_In_ long double _X)
short _CRTIMP __cdecl _ldscale(_In_ long double *_Px, _In_ long _Lexp)
short _CRTIMP __cdecl _dscale(_In_ double *_Px, _In_ long _Lexp)
int _CRTIMP __cdecl _fdpcomp(_In_ float _X, _In_ float _Y)
const _float_const _Eps_C
__inline long double __CRTDECL sinhl(_In_ long double _X)
Definition: math.h:943
void __cdecl _fperrraise(_In_ int _Except)
#define isnormal(_Val)
Definition: math.h:290
const _float_const _Rteps_C
_CRTIMP double __cdecl remquo(_In_ double _X, _In_ double _Y, _Out_ int *_Z)
_CRTIMP double __cdecl exp2(_In_ double _X)
_CRTIMP double __cdecl nextafter(_In_ double _X, _In_ double _Y)
__inline long double __CRTDECL atan2l(_In_ long double _Y, _In_ long double _X)
Definition: math.h:804
#define isinf(_Val)
Definition: math.h:288
_CRTIMP long double __cdecl nearbyintl(_In_ long double _X)
_CRTIMP double __cdecl ceil(_In_ double _X)
double __cdecl sin(_In_ double _X)
int _CRTIMP __cdecl _ldpcomp(_In_ long double _X, _In_ long double _Y)
_CRTIMP float __cdecl nanf(_In_ const char *)
_CRTIMP double __cdecl acosh(_In_ double _X)
double __cdecl asin(_In_ double _X)
__inline double __CRTDECL hypot(_In_ double _X, _In_ double _Y)
Definition: math.h:555
double __cdecl pow(_In_ double _X, _In_ double _Y)
_CRTIMP long double __cdecl lgammal(_In_ long double _X)
long long __cdecl llabs(_In_ long long _X)
double __cdecl cos(_In_ double _X)
#define _Inout_
Definition: sal.h:384
const _float_const _LDenorm_C
int _CRTIMP __cdecl _fdsign(_In_ float _X)
_CRTIMP long __cdecl lroundf(_In_ float _X)
const long double _LXbig_C
double arg1
Definition: math.h:40
__inline long double __CRTDECL logl(_In_ long double _X)
Definition: math.h:903
__inline long double __CRTDECL fmodl(_In_ long double _X, _In_ long double _Y)
Definition: math.h:872
Definition: math.h:248
_CRTIMP long double __cdecl remquol(_In_ long double _X, _In_ long double _Y, _Out_ int *_Z)
short _CRTIMP __cdecl _fdnorm(_In_ unsigned short *_Ps)
_CRTIMP float __cdecl erff(_In_ float _X)
double __cdecl log(_In_ double _X)
#define _FP_EQ
Definition: math.h:275
float _CRTIMP __cdecl _fdlog(_In_ float _X, _In_ int _Baseflag)
float _CRTIMP __cdecl _fdsin(_In_ float _X, _In_ unsigned int _Qoff)
const _float_const _Denorm_C
short _CRTIMP __cdecl _dexp(_In_ double *_Px, _In_ double _Y, _In_ long _Eoff)
#define fpclassify(_Val)
Definition: math.h:284
Definition: math.h:234
__inline float __CRTDECL ldexpf(_In_ float _X, _In_ int _Y)
Definition: math.h:721
_CRT_NONSTDC_DEPRECATE(_j0) _CRTIMP double __cdecl j0(_In_ double _X)
_CRTIMP long long __cdecl llround(_In_ double _X)
_CRTIMP double __cdecl expm1(_In_ double _X)
double _CRTIMP __cdecl _dlog(_In_ double _X, _In_ int _Baseflag)
Definition: math.h:37
_CRTIMP long double __cdecl roundl(_In_ long double _X)
const _float_const _FInf_C
_CRTIMP float __cdecl remquof(_In_ float _X, _In_ float _Y, _Out_ int *_Z)
#define signbit(_Val)
Definition: math.h:291
__inline long double __CRTDECL _chgsignl(_In_ long double _X)
Definition: math.h:823
const _float_const _FDenorm_C
int _CRTIMP __cdecl _dsign(_In_ double _X)
_CRTIMP double __cdecl nearbyint(_In_ double _X)
_CRTIMP float __cdecl nextafterf(_In_ float _X, _In_ float _Y)
__inline long double __CRTDECL frexpl(_In_ long double _X, _Out_ int *_Y)
Definition: math.h:877
_CRTIMP double __cdecl _hypot(_In_ double _X, _In_ double _Y)
__inline long double __CRTDECL asinl(_In_ long double _X)
Definition: math.h:799
const _float_const _Nan_C
_CRTIMP double __cdecl nan(_In_ const char *)
_CRTIMP float __cdecl atanhf(_In_ float _X)
_CRTIMP long double __cdecl cbrtl(_In_ long double _X)
#define FP_NAN
Definition: math.h:114
_CRTIMP float __cdecl copysignf(_In_ float _X, _In_ float _Y)
#define FP_NORMAL
Definition: math.h:115
_CRTIMP long __cdecl lrintl(_In_ long double _X)
_CRTIMP double __cdecl tgamma(_In_ double _X)
__inline float __CRTDECL expf(_In_ float _X)
Definition: math.h:672
Definition: math.h:254
long double _Long_double
Definition: math.h:259
_CRTIMP double __cdecl trunc(_In_ double _X)
Definition: crtdefs.h:2078
_CRTIMP long __cdecl lrintf(_In_ float _X)
_CRTIMP int __cdecl ilogb(_In_ double _X)
__inline long double __CRTDECL _hypotl(_In_ long double _X, _In_ long double _Y)
Definition: math.h:884
__inline long double __CRTDECL acosl(_In_ long double _X)
Definition: math.h:792