ReactOS 0.4.16-dev-1097-g530d26a
corecrt_math.h
Go to the documentation of this file.
1//
2// corecrt_math.h
3//
4// Copyright (c) Microsoft Corporation. All rights reserved.
5//
6// The majority of the C Standard Library <math.h> functionality.
7//
8#pragma once
9#ifndef _INC_MATH // include guard for 3rd party interop
10#define _INC_MATH
11
12#include <corecrt.h>
13
14#pragma warning(push)
15#pragma warning(disable: _UCRT_DISABLED_WARNINGS)
17
19
20#ifndef __assembler
21 // Definition of the _exception struct, which is passed to the matherr function
22 // when a floating point exception is detected:
23 struct _exception
24 {
25 int type; // exception type - see below
26 char* name; // name of function where error occurred
27 double arg1; // first argument to function
28 double arg2; // second argument (if any) to function
29 double retval; // value to be returned by function
30 };
31
32 // Definition of the _complex struct to be used by those who use the complex
33 // functions and want type checking.
34 #ifndef _COMPLEX_DEFINED
35 #define _COMPLEX_DEFINED
36
37 struct _complex
38 {
39 double x, y; // real and imaginary parts
40 };
41
42 #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES && !defined __cplusplus
43 // Non-ANSI name for compatibility
44 #define complex _complex
45 #endif
46 #endif
47#endif // __assembler
48
49
50
51// On x86, when not using /arch:SSE2 or greater, floating point operations
52// are performed using the x87 instruction set and FLT_EVAL_METHOD is 2.
53// (When /fp:fast is used, floating point operations may be consistent, so
54// we use the default types.)
55#if defined _M_IX86 && _M_IX86_FP < 2 && !defined _M_FP_FAST
56 typedef long double float_t;
57 typedef long double double_t;
58#else
59 typedef float float_t;
60 typedef double double_t;
61#endif
62
63
64
65// Constant definitions for the exception type passed in the _exception struct
66#define _DOMAIN 1 // argument domain error
67#define _SING 2 // argument singularity
68#define _OVERFLOW 3 // overflow range error
69#define _UNDERFLOW 4 // underflow range error
70#define _TLOSS 5 // total loss of precision
71#define _PLOSS 6 // partial loss of precision
72
73// Definitions of _HUGE and HUGE_VAL - respectively the XENIX and ANSI names
74// for a value returned in case of error by a number of the floating point
75// math routines.
76#ifndef __assembler
77 #ifndef _M_CEE_PURE
78 extern double const _HUGE;
79 #else
80 double const _HUGE = System::Double::PositiveInfinity;
81 #endif
82#endif
83
84#ifndef _HUGE_ENUF
85 #define _HUGE_ENUF 1e+300 // _HUGE_ENUF*_HUGE_ENUF must overflow
86#endif
87
88#define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF))
89#define HUGE_VAL ((double)INFINITY)
90#define HUGE_VALF ((float)INFINITY)
91#define HUGE_VALL ((long double)INFINITY)
92#ifndef _UCRT_NEGATIVE_NAN
93// This operation creates a negative NAN adding a - to make it positive
94#ifdef _MSC_VER
95#define NAN (-(float)(INFINITY * 0.0F))
96#else
97#define NAN (__builtin_nanf(""))
98#endif
99#else
100// Keep this for backwards compatibility
101#ifdef _MSC_VER
102#define NAN ((float)(INFINITY * 0.0F))
103#else
104#define NAN (-__builtin_nanf(""))
105#endif
106#endif
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// Values for use as arguments to the _fperrraise function
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 _DHUGE_EXP (int)(_DMAX * 900L / 1000)
176#define _FHUGE_EXP (int)(_FMAX * 900L / 1000)
177#define _LHUGE_EXP (int)(_LMAX * 900L / 1000)
178
179#define _DSIGN_C(_Val) (((_double_val *)(char*)&(_Val))->_Sh[_D0_C] & _DSIGN)
180#define _FSIGN_C(_Val) (((_float_val *)(char*)&(_Val))->_Sh[_F0_C] & _FSIGN)
181#define _LSIGN_C(_Val) (((_ldouble_val*)(char*)&(_Val))->_Sh[_L0_C] & _LSIGN)
182
183void __cdecl _fperrraise(_In_ int _Except);
184
188
192
194_Check_return_ _ACRTIMP int __cdecl _ldpcomp(_In_ long double _X, _In_ long double _Y);
196
197_Check_return_ _ACRTIMP short __cdecl _dtest(_In_ double* _Px);
199_Check_return_ _ACRTIMP short __cdecl _fdtest(_In_ float* _Px);
200
201_ACRTIMP short __cdecl _d_int(_Inout_ double* _Px, _In_ short _Xexp);
202_ACRTIMP short __cdecl _ld_int(_Inout_ long double* _Px, _In_ short _Xexp);
203_ACRTIMP short __cdecl _fd_int(_Inout_ float* _Px, _In_ short _Xexp);
204
205_ACRTIMP short __cdecl _dscale(_Inout_ double* _Px, _In_ long _Lexp);
206_ACRTIMP short __cdecl _ldscale(_Inout_ long double* _Px, _In_ long _Lexp);
207_ACRTIMP short __cdecl _fdscale(_Inout_ float* _Px, _In_ long _Lexp);
208
209_ACRTIMP short __cdecl _dunscale(_Out_ short* _Pex, _Inout_ double* _Px);
210_ACRTIMP short __cdecl _ldunscale(_Out_ short* _Pex, _Inout_ long double* _Px);
211_ACRTIMP short __cdecl _fdunscale(_Out_ short* _Pex, _Inout_ float* _Px);
212
213_Check_return_ _ACRTIMP short __cdecl _dexp(_Inout_ double* _Px, _In_ double _Y, _In_ long _Eoff);
214_Check_return_ _ACRTIMP short __cdecl _ldexp(_Inout_ long double* _Px, _In_ long double _Y, _In_ long _Eoff);
215_Check_return_ _ACRTIMP short __cdecl _fdexp(_Inout_ float* _Px, _In_ float _Y, _In_ long _Eoff);
216
219
220_Check_return_ _ACRTIMP double __cdecl _dpoly(_In_ double _X, _In_reads_(_N) double const* _Tab, _In_ int _N);
221_Check_return_ _ACRTIMP long double __cdecl _ldpoly(_In_ long double _X, _In_reads_(_N) long double const* _Tab, _In_ int _N);
222_Check_return_ _ACRTIMP float __cdecl _fdpoly(_In_ float _X, _In_reads_(_N) float const* _Tab, _In_ int _N);
223
224_Check_return_ _ACRTIMP double __cdecl _dlog(_In_ double _X, _In_ int _Baseflag);
225_Check_return_ _ACRTIMP long double __cdecl _ldlog(_In_ long double _X, _In_ int _Baseflag);
226_Check_return_ _ACRTIMP float __cdecl _fdlog(_In_ float _X, _In_ int _Baseflag);
227
228_Check_return_ _ACRTIMP double __cdecl _dsin(_In_ double _X, _In_ unsigned int _Qoff);
229_Check_return_ _ACRTIMP long double __cdecl _ldsin(_In_ long double _X, _In_ unsigned int _Qoff);
230_Check_return_ _ACRTIMP float __cdecl _fdsin(_In_ float _X, _In_ unsigned int _Qoff);
231
232// double declarations
233typedef union
234{ // pun floating type as integer array
235 unsigned short _Sh[4];
236 double _Val;
238
239// float declarations
240typedef union
241{ // pun floating type as integer array
242 unsigned short _Sh[2];
243 float _Val;
244} _float_val;
245
246// long double declarations
247typedef union
248{ // pun floating type as integer array
249 unsigned short _Sh[4];
250 long double _Val;
252
253typedef union
254{ // pun float types as integer array
255 unsigned short _Word[4];
256 float _Float;
257 double _Double;
258 long double _Long_double;
260
264
268
269extern const double _Zero_C, _Xbig_C;
270extern const float _FZero_C, _FXbig_C;
271extern const long double _LZero_C, _LXbig_C;
272
273#define _FP_LT 1
274#define _FP_EQ 2
275#define _FP_GT 4
276
277#ifndef __cplusplus
278
279 #define _CLASS_ARG(_Val) __pragma(warning(suppress:6334))(sizeof ((_Val) + (float)0) == sizeof (float) ? 'f' : sizeof ((_Val) + (double)0) == sizeof (double) ? 'd' : 'l')
280 #define _CLASSIFY(_Val, _FFunc, _DFunc, _LDFunc) (_CLASS_ARG(_Val) == 'f' ? _FFunc((float)(_Val)) : _CLASS_ARG(_Val) == 'd' ? _DFunc((double)(_Val)) : _LDFunc((long double)(_Val)))
281 #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)))
282
283 #define fpclassify(_Val) (_CLASSIFY(_Val, _fdclass, _dclass, _ldclass))
284 #define _FPCOMPARE(_Val1, _Val2) (_CLASSIFY2(_Val1, _Val2, _fdpcomp, _dpcomp, _ldpcomp))
285
286 #define isfinite(_Val) (fpclassify(_Val) <= 0)
287 #define isinf(_Val) (fpclassify(_Val) == FP_INFINITE)
288 #define isnan(_Val) (fpclassify(_Val) == FP_NAN)
289 #define isnormal(_Val) (fpclassify(_Val) == FP_NORMAL)
290 #define signbit(_Val) (_CLASSIFY(_Val, _fdsign, _dsign, _ldsign))
291
292 #define isgreater(x, y) ((_FPCOMPARE(x, y) & _FP_GT) != 0)
293 #define isgreaterequal(x, y) ((_FPCOMPARE(x, y) & (_FP_EQ | _FP_GT)) != 0)
294 #define isless(x, y) ((_FPCOMPARE(x, y) & _FP_LT) != 0)
295 #define islessequal(x, y) ((_FPCOMPARE(x, y) & (_FP_LT | _FP_EQ)) != 0)
296 #define islessgreater(x, y) ((_FPCOMPARE(x, y) & (_FP_LT | _FP_GT)) != 0)
297 #define isunordered(x, y) (_FPCOMPARE(x, y) == 0)
298
299#else // __cplusplus
300extern "C++"
301{
302 _Check_return_ inline int fpclassify(_In_ float _X) throw()
303 {
304 return _fdtest(&_X);
305 }
306
307 _Check_return_ inline int fpclassify(_In_ double _X) throw()
308 {
309 return _dtest(&_X);
310 }
311
312 _Check_return_ inline int fpclassify(_In_ long double _X) throw()
313 {
314 return _ldtest(&_X);
315 }
316
317 _Check_return_ inline bool signbit(_In_ float _X) throw()
318 {
319 return _fdsign(_X) != 0;
320 }
321
322 _Check_return_ inline bool signbit(_In_ double _X) throw()
323 {
324 return _dsign(_X) != 0;
325 }
326
327 _Check_return_ inline bool signbit(_In_ long double _X) throw()
328 {
329 return _ldsign(_X) != 0;
330 }
331
332 _Check_return_ inline int _fpcomp(_In_ float _X, _In_ float _Y) throw()
333 {
334 return _fdpcomp(_X, _Y);
335 }
336
337 _Check_return_ inline int _fpcomp(_In_ double _X, _In_ double _Y) throw()
338 {
339 return _dpcomp(_X, _Y);
340 }
341
342 _Check_return_ inline int _fpcomp(_In_ long double _X, _In_ long double _Y) throw()
343 {
344 return _ldpcomp(_X, _Y);
345 }
346
347 template <class _Trc, class _Tre> struct _Combined_type
348 { // determine combined type
349 typedef float _Type;
350 };
351
352 template <> struct _Combined_type<float, double>
353 { // determine combined type
354 typedef double _Type;
355 };
356
357 template <> struct _Combined_type<float, long double>
358 { // determine combined type
359 typedef long double _Type;
360 };
361
362 template <class _Ty, class _T2> struct _Real_widened
363 { // determine widened real type
364 typedef long double _Type;
365 };
366
367 template <> struct _Real_widened<float, float>
368 { // determine widened real type
369 typedef float _Type;
370 };
371
372 template <> struct _Real_widened<float, double>
373 { // determine widened real type
374 typedef double _Type;
375 };
376
377 template <> struct _Real_widened<double, float>
378 { // determine widened real type
379 typedef double _Type;
380 };
381
382 template <> struct _Real_widened<double, double>
383 { // determine widened real type
384 typedef double _Type;
385 };
386
387 template <class _Ty> struct _Real_type
388 { // determine equivalent real type
389 typedef double _Type; // default is double
390 };
391
392 template <> struct _Real_type<float>
393 { // determine equivalent real type
394 typedef float _Type;
395 };
396
397 template <> struct _Real_type<long double>
398 { // determine equivalent real type
399 typedef long double _Type;
400 };
401
402 template <class _T1, class _T2>
403 _Check_return_ inline int _fpcomp(_In_ _T1 _X, _In_ _T2 _Y) throw()
404 { // compare _Left and _Right
405 typedef typename _Combined_type<float,
406 typename _Real_widened<
407 typename _Real_type<_T1>::_Type,
408 typename _Real_type<_T2>::_Type>::_Type>::_Type _Tw;
409 return _fpcomp((_Tw)_X, (_Tw)_Y);
410 }
411
412 template <class _Ty>
413 _Check_return_ inline bool isfinite(_In_ _Ty _X) throw()
414 {
415 return fpclassify(_X) <= 0;
416 }
417
418 template <class _Ty>
419 _Check_return_ inline bool isinf(_In_ _Ty _X) throw()
420 {
421 return fpclassify(_X) == FP_INFINITE;
422 }
423
424 template <class _Ty>
425 _Check_return_ inline bool isnan(_In_ _Ty _X) throw()
426 {
427 return fpclassify(_X) == FP_NAN;
428 }
429
430 template <class _Ty>
431 _Check_return_ inline bool isnormal(_In_ _Ty _X) throw()
432 {
433 return fpclassify(_X) == FP_NORMAL;
434 }
435
436 template <class _Ty1, class _Ty2>
437 _Check_return_ inline bool isgreater(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw()
438 {
439 return (_fpcomp(_X, _Y) & _FP_GT) != 0;
440 }
441
442 template <class _Ty1, class _Ty2>
443 _Check_return_ inline bool isgreaterequal(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw()
444 {
445 return (_fpcomp(_X, _Y) & (_FP_EQ | _FP_GT)) != 0;
446 }
447
448 template <class _Ty1, class _Ty2>
449 _Check_return_ inline bool isless(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw()
450 {
451 return (_fpcomp(_X, _Y) & _FP_LT) != 0;
452 }
453
454 template <class _Ty1, class _Ty2>
455 _Check_return_ inline bool islessequal(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw()
456 {
457 return (_fpcomp(_X, _Y) & (_FP_LT | _FP_EQ)) != 0;
458 }
459
460 template <class _Ty1, class _Ty2>
461 _Check_return_ inline bool islessgreater(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw()
462 {
463 return (_fpcomp(_X, _Y) & (_FP_LT | _FP_GT)) != 0;
464 }
465
466 template <class _Ty1, class _Ty2>
467 _Check_return_ inline bool isunordered(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw()
468 {
469 return _fpcomp(_X, _Y) == 0;
470 }
471} // extern "C++"
472#endif // __cplusplus
473
474
475
476#if _CRT_FUNCTIONS_REQUIRED
477
479 _Check_return_ long __cdecl labs(_In_ long _X);
480 _Check_return_ long long __cdecl llabs(_In_ long long _X);
481
482 _Check_return_ double __cdecl acos(_In_ double _X);
483 _Check_return_ double __cdecl asin(_In_ double _X);
484 _Check_return_ double __cdecl atan(_In_ double _X);
485 _Check_return_ double __cdecl atan2(_In_ double _Y, _In_ double _X);
486
487 _Check_return_ double __cdecl cos(_In_ double _X);
488 _Check_return_ double __cdecl cosh(_In_ double _X);
489 _Check_return_ double __cdecl exp(_In_ double _X);
491 _Check_return_ double __cdecl fmod(_In_ double _X, _In_ double _Y);
492 _Check_return_ double __cdecl log(_In_ double _X);
493 _Check_return_ double __cdecl log10(_In_ double _X);
494 _Check_return_ double __cdecl pow(_In_ double _X, _In_ double _Y);
495 _Check_return_ double __cdecl sin(_In_ double _X);
496 _Check_return_ double __cdecl sinh(_In_ double _X);
498 _Check_return_ double __cdecl tan(_In_ double _X);
499 _Check_return_ double __cdecl tanh(_In_ double _X);
500
504 _Check_return_ _ACRTIMP double __cdecl atof(_In_z_ char const* _String);
506 _Check_return_ _ACRTIMP double __cdecl _cabs(_In_ struct _complex _Complex_value);
507 _Check_return_ _ACRTIMP double __cdecl cbrt(_In_ double _X);
508 _Check_return_ _ACRTIMP double __cdecl ceil(_In_ double _X);
510 _Check_return_ _ACRTIMP double __cdecl copysign(_In_ double _Number, _In_ double _Sign);
511 _Check_return_ _ACRTIMP double __cdecl _copysign(_In_ double _Number, _In_ double _Sign);
512 _Check_return_ _ACRTIMP double __cdecl erf(_In_ double _X);
513 _Check_return_ _ACRTIMP double __cdecl erfc(_In_ double _X);
514 _Check_return_ _ACRTIMP double __cdecl exp2(_In_ double _X);
516 _Check_return_ _ACRTIMP double __cdecl fdim(_In_ double _X, _In_ double _Y);
518 _Check_return_ _ACRTIMP double __cdecl fma(_In_ double _X, _In_ double _Y, _In_ double _Z);
519 _Check_return_ _ACRTIMP double __cdecl fmax(_In_ double _X, _In_ double _Y);
520 _Check_return_ _ACRTIMP double __cdecl fmin(_In_ double _X, _In_ double _Y);
521 _Check_return_ _ACRTIMP double __cdecl frexp(_In_ double _X, _Out_ int* _Y);
522 _Check_return_ _ACRTIMP double __cdecl hypot(_In_ double _X, _In_ double _Y);
523 _Check_return_ _ACRTIMP double __cdecl _hypot(_In_ double _X, _In_ double _Y);
525 _Check_return_ _ACRTIMP double __cdecl ldexp(_In_ double _X, _In_ int _Y);
527 _Check_return_ _ACRTIMP long long __cdecl llrint(_In_ double _X);
528 _Check_return_ _ACRTIMP long long __cdecl llround(_In_ double _X);
530 _Check_return_ _ACRTIMP double __cdecl log2(_In_ double _X);
531 _Check_return_ _ACRTIMP double __cdecl logb(_In_ double _X);
534
535 int __CRTDECL _matherr(_Inout_ struct _exception* _Except);
536
537 _Check_return_ _ACRTIMP double __cdecl modf(_In_ double _X, _Out_ double* _Y);
538 _Check_return_ _ACRTIMP double __cdecl nan(_In_ char const* _X);
540 _Check_return_ _ACRTIMP double __cdecl nextafter(_In_ double _X, _In_ double _Y);
541 _Check_return_ _ACRTIMP double __cdecl nexttoward(_In_ double _X, _In_ long double _Y);
542 _Check_return_ _ACRTIMP double __cdecl remainder(_In_ double _X, _In_ double _Y);
543 _Check_return_ _ACRTIMP double __cdecl remquo(_In_ double _X, _In_ double _Y, _Out_ int* _Z);
544 _Check_return_ _ACRTIMP double __cdecl rint(_In_ double _X);
546 _Check_return_ _ACRTIMP double __cdecl scalbln(_In_ double _X, _In_ long _Y);
547 _Check_return_ _ACRTIMP double __cdecl scalbn(_In_ double _X, _In_ int _Y);
550 _Check_return_ _ACRTIMP double __cdecl _j0(_In_ double _X );
551 _Check_return_ _ACRTIMP double __cdecl _j1(_In_ double _X );
552 _Check_return_ _ACRTIMP double __cdecl _jn(int _X, _In_ double _Y);
553 _Check_return_ _ACRTIMP double __cdecl _y0(_In_ double _X);
554 _Check_return_ _ACRTIMP double __cdecl _y1(_In_ double _X);
555 _Check_return_ _ACRTIMP double __cdecl _yn(_In_ int _X, _In_ double _Y);
556
562 _Check_return_ _ACRTIMP float __cdecl copysignf(_In_ float _Number, _In_ float _Sign);
563 _Check_return_ _ACRTIMP float __cdecl _copysignf(_In_ float _Number, _In_ float _Sign);
568 _Check_return_ _ACRTIMP float __cdecl fdimf(_In_ float _X, _In_ float _Y);
569 _Check_return_ _ACRTIMP float __cdecl fmaf(_In_ float _X, _In_ float _Y, _In_ float _Z);
570 _Check_return_ _ACRTIMP float __cdecl fmaxf(_In_ float _X, _In_ float _Y);
571 _Check_return_ _ACRTIMP float __cdecl fminf(_In_ float _X, _In_ float _Y);
572 _Check_return_ _ACRTIMP float __cdecl _hypotf(_In_ float _X, _In_ float _Y);
575 _Check_return_ _ACRTIMP long long __cdecl llrintf(_In_ float _X);
582 _Check_return_ _ACRTIMP float __cdecl nanf(_In_ char const* _X);
584 _Check_return_ _ACRTIMP float __cdecl nextafterf(_In_ float _X, _In_ float _Y);
585 _Check_return_ _ACRTIMP float __cdecl nexttowardf(_In_ float _X, _In_ long double _Y);
586 _Check_return_ _ACRTIMP float __cdecl remainderf(_In_ float _X, _In_ float _Y);
587 _Check_return_ _ACRTIMP float __cdecl remquof(_In_ float _X, _In_ float _Y, _Out_ int* _Z);
590 _Check_return_ _ACRTIMP float __cdecl scalblnf(_In_ float _X, _In_ long _Y);
591 _Check_return_ _ACRTIMP float __cdecl scalbnf(_In_ float _X, _In_ int _Y);
594
595 #if defined _M_IX86
596
597 _Check_return_ _ACRTIMP int __cdecl _set_SSE2_enable(_In_ int _Flag);
598
599 #endif
600
601 #if defined _M_X64
602
604 _Check_return_ _ACRTIMP float __cdecl _nextafterf(_In_ float _X, _In_ float _Y);
606 _Check_return_ _ACRTIMP int __cdecl _isnanf(_In_ float _X);
607 _Check_return_ _ACRTIMP int __cdecl _fpclassf(_In_ float _X);
608
610 _Check_return_ _ACRTIMP int __cdecl _get_FMA3_enable(void);
611
612 #elif defined _M_ARM || defined _M_ARM64 || defined _M_HYBRID_X86_ARM64
613
616
617 #endif
618
619
620
621 #if defined _M_X64 || defined _M_ARM || defined _M_ARM64 || defined _M_HYBRID_X86_ARM64 || defined _CORECRT_BUILD_APISET || defined _M_ARM64EC
622
625 _Check_return_ _ACRTIMP float __cdecl atan2f(_In_ float _Y, _In_ float _X);
631
632 #else
633
635 {
636 return (float)acos(_X);
637 }
638
640 {
641 return (float)asin(_X);
642 }
643
644 _Check_return_ __inline float __CRTDECL atan2f(_In_ float _Y, _In_ float _X)
645 {
646 return (float)atan2(_Y, _X);
647 }
648
650 {
651 return (float)atan(_X);
652 }
653
655 {
656 return (float)ceil(_X);
657 }
658
660 {
661 return (float)cos(_X);
662 }
663
665 {
666 return (float)cosh(_X);
667 }
668
670 {
671 return (float)exp(_X);
672 }
673
674 #endif
675
676 #if defined _M_ARM || defined _M_ARM64 || defined _M_HYBRID_X86_ARM64 || defined _M_ARM64EC
677
679
680 #else
681
683 {
684 return (float)fabs(_X);
685 }
686
687 #endif
688
689 #if defined _M_X64 || defined _M_ARM || defined _M_ARM64 || defined _M_HYBRID_X86_ARM64 || defined _M_ARM64EC
690
692 _Check_return_ _ACRTIMP float __cdecl fmodf(_In_ float _X, _In_ float _Y);
693
694 #else
695
697 {
698 return (float)floor(_X);
699 }
700
701 _Check_return_ __inline float __CRTDECL fmodf(_In_ float _X, _In_ float _Y)
702 {
703 return (float)fmod(_X, _Y);
704 }
705
706 #endif
707
708 _Check_return_ __inline float __CRTDECL frexpf(_In_ float _X, _Out_ int *_Y)
709 {
710 return (float)frexp(_X, _Y);
711 }
712
713 _Check_return_ __inline float __CRTDECL hypotf(_In_ float _X, _In_ float _Y)
714 {
715 return _hypotf(_X, _Y);
716 }
717
718 _Check_return_ __inline float __CRTDECL ldexpf(_In_ float _X, _In_ int _Y)
719 {
720 return (float)ldexp(_X, _Y);
721 }
722
723 #if defined _M_X64 || defined _M_ARM || defined _M_ARM64 || defined _M_HYBRID_X86_ARM64 || defined _CORECRT_BUILD_APISET || defined _M_ARM64EC
724
727 _Check_return_ _ACRTIMP float __cdecl modff(_In_ float _X, _Out_ float *_Y);
728 _Check_return_ _ACRTIMP float __cdecl powf(_In_ float _X, _In_ float _Y);
734
735 #else
736
738 {
739 return (float)log10(_X);
740 }
741
743 {
744 return (float)log(_X);
745 }
746
747 _Check_return_ __inline float __CRTDECL modff(_In_ float _X, _Out_ float* _Y)
748 {
749 double _F, _I;
750 _F = modf(_X, &_I);
751 *_Y = (float)_I;
752 return (float)_F;
753 }
754
755 _Check_return_ __inline float __CRTDECL powf(_In_ float _X, _In_ float _Y)
756 {
757 return (float)pow(_X, _Y);
758 }
759
761 {
762 return (float)sin(_X);
763 }
764
766 {
767 return (float)sinh(_X);
768 }
769
771 {
772 return (float)sqrt(_X);
773 }
774
776 {
777 return (float)tan(_X);
778 }
779
781 {
782 return (float)tanh(_X);
783 }
784
785 #endif
786
787 _Check_return_ _ACRTIMP long double __cdecl acoshl(_In_ long double _X);
788
789 _Check_return_ __inline long double __CRTDECL acosl(_In_ long double _X)
790 {
791 return acos((double)_X);
792 }
793
794 _Check_return_ _ACRTIMP long double __cdecl asinhl(_In_ long double _X);
795
796 _Check_return_ __inline long double __CRTDECL asinl(_In_ long double _X)
797 {
798 return asin((double)_X);
799 }
800
801 _Check_return_ __inline long double __CRTDECL atan2l(_In_ long double _Y, _In_ long double _X)
802 {
803 return atan2((double)_Y, (double)_X);
804 }
805
806 _Check_return_ _ACRTIMP long double __cdecl atanhl(_In_ long double _X);
807
808 _Check_return_ __inline long double __CRTDECL atanl(_In_ long double _X)
809 {
810 return atan((double)_X);
811 }
812
813 _Check_return_ _ACRTIMP long double __cdecl cbrtl(_In_ long double _X);
814
815 _Check_return_ __inline long double __CRTDECL ceill(_In_ long double _X)
816 {
817 return ceil((double)_X);
818 }
819
820 _Check_return_ __inline long double __CRTDECL _chgsignl(_In_ long double _X)
821 {
822 return _chgsign((double)_X);
823 }
824
825 _Check_return_ _ACRTIMP long double __cdecl copysignl(_In_ long double _Number, _In_ long double _Sign);
826
827 _Check_return_ __inline long double __CRTDECL _copysignl(_In_ long double _Number, _In_ long double _Sign)
828 {
829 return _copysign((double)_Number, (double)_Sign);
830 }
831
832 _Check_return_ __inline long double __CRTDECL coshl(_In_ long double _X)
833 {
834 return cosh((double)_X);
835 }
836
837 _Check_return_ __inline long double __CRTDECL cosl(_In_ long double _X)
838 {
839 return cos((double)_X);
840 }
841
842 _Check_return_ _ACRTIMP long double __cdecl erfl(_In_ long double _X);
843 _Check_return_ _ACRTIMP long double __cdecl erfcl(_In_ long double _X);
844
845 _Check_return_ __inline long double __CRTDECL expl(_In_ long double _X)
846 {
847 return exp((double)_X);
848 }
849
850 _Check_return_ _ACRTIMP long double __cdecl exp2l(_In_ long double _X);
851 _Check_return_ _ACRTIMP long double __cdecl expm1l(_In_ long double _X);
852
853 _Check_return_ __inline long double __CRTDECL fabsl(_In_ long double _X)
854 {
855 return fabs((double)_X);
856 }
857
858 _Check_return_ _ACRTIMP long double __cdecl fdiml(_In_ long double _X, _In_ long double _Y);
859
860 _Check_return_ __inline long double __CRTDECL floorl(_In_ long double _X)
861 {
862 return floor((double)_X);
863 }
864
865 _Check_return_ _ACRTIMP long double __cdecl fmal(_In_ long double _X, _In_ long double _Y, _In_ long double _Z);
866 _Check_return_ _ACRTIMP long double __cdecl fmaxl(_In_ long double _X, _In_ long double _Y);
867 _Check_return_ _ACRTIMP long double __cdecl fminl(_In_ long double _X, _In_ long double _Y);
868
869 _Check_return_ __inline long double __CRTDECL fmodl(_In_ long double _X, _In_ long double _Y)
870 {
871 return fmod((double)_X, (double)_Y);
872 }
873
874 _Check_return_ __inline long double __CRTDECL frexpl(_In_ long double _X, _Out_ int *_Y)
875 {
876 return frexp((double)_X, _Y);
877 }
878
879 _Check_return_ _ACRTIMP int __cdecl ilogbl(_In_ long double _X);
880
881 _Check_return_ __inline long double __CRTDECL _hypotl(_In_ long double _X, _In_ long double _Y)
882 {
883 return _hypot((double)_X, (double)_Y);
884 }
885
886 _Check_return_ __inline long double __CRTDECL hypotl(_In_ long double _X, _In_ long double _Y)
887 {
888 return _hypot((double)_X, (double)_Y);
889 }
890
891 _Check_return_ __inline long double __CRTDECL ldexpl(_In_ long double _X, _In_ int _Y)
892 {
893 return ldexp((double)_X, _Y);
894 }
895
896 _Check_return_ _ACRTIMP long double __cdecl lgammal(_In_ long double _X);
897 _Check_return_ _ACRTIMP long long __cdecl llrintl(_In_ long double _X);
898 _Check_return_ _ACRTIMP long long __cdecl llroundl(_In_ long double _X);
899
900 _Check_return_ __inline long double __CRTDECL logl(_In_ long double _X)
901 {
902 return log((double)_X);
903 }
904
905 _Check_return_ __inline long double __CRTDECL log10l(_In_ long double _X)
906 {
907 return log10((double)_X);
908 }
909
910 _Check_return_ _ACRTIMP long double __cdecl log1pl(_In_ long double _X);
911 _Check_return_ _ACRTIMP long double __cdecl log2l(_In_ long double _X);
912 _Check_return_ _ACRTIMP long double __cdecl logbl(_In_ long double _X);
913 _Check_return_ _ACRTIMP long __cdecl lrintl(_In_ long double _X);
914 _Check_return_ _ACRTIMP long __cdecl lroundl(_In_ long double _X);
915
916 _Check_return_ __inline long double __CRTDECL modfl(_In_ long double _X, _Out_ long double* _Y)
917 {
918 double _F, _I;
919 _F = modf((double)_X, &_I);
920 *_Y = _I;
921 return _F;
922 }
923
924 _Check_return_ _ACRTIMP long double __cdecl nanl(_In_ char const* _X);
925 _Check_return_ _ACRTIMP long double __cdecl nearbyintl(_In_ long double _X);
926 _Check_return_ _ACRTIMP long double __cdecl nextafterl(_In_ long double _X, _In_ long double _Y);
927 _Check_return_ _ACRTIMP long double __cdecl nexttowardl(_In_ long double _X, _In_ long double _Y);
928
929 _Check_return_ __inline long double __CRTDECL powl(_In_ long double _X, _In_ long double _Y)
930 {
931 return pow((double)_X, (double)_Y);
932 }
933
934 _Check_return_ _ACRTIMP long double __cdecl remainderl(_In_ long double _X, _In_ long double _Y);
935 _Check_return_ _ACRTIMP long double __cdecl remquol(_In_ long double _X, _In_ long double _Y, _Out_ int* _Z);
936 _Check_return_ _ACRTIMP long double __cdecl rintl(_In_ long double _X);
937 _Check_return_ _ACRTIMP long double __cdecl roundl(_In_ long double _X);
938 _Check_return_ _ACRTIMP long double __cdecl scalblnl(_In_ long double _X, _In_ long _Y);
939 _Check_return_ _ACRTIMP long double __cdecl scalbnl(_In_ long double _X, _In_ int _Y);
940
941 _Check_return_ __inline long double __CRTDECL sinhl(_In_ long double _X)
942 {
943 return sinh((double)_X);
944 }
945
946 _Check_return_ __inline long double __CRTDECL sinl(_In_ long double _X)
947 {
948 return sin((double)_X);
949 }
950
951 _Check_return_ __inline long double __CRTDECL sqrtl(_In_ long double _X)
952 {
953 return sqrt((double)_X);
954 }
955
956 _Check_return_ __inline long double __CRTDECL tanhl(_In_ long double _X)
957 {
958 return tanh((double)_X);
959 }
960
961 _Check_return_ __inline long double __CRTDECL tanl(_In_ long double _X)
962 {
963 return tan((double)_X);
964 }
965
966 _Check_return_ _ACRTIMP long double __cdecl tgammal(_In_ long double _X);
967 _Check_return_ _ACRTIMP long double __cdecl truncl(_In_ long double _X);
968
969 #ifndef __cplusplus
970 #define _matherrl _matherr
971 #endif
972
973#endif // _CRT_FUNCTIONS_REQUIRED
974
975#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
976
977 #define DOMAIN _DOMAIN
978 #define SING _SING
979 #define OVERFLOW _OVERFLOW
980 #define UNDERFLOW _UNDERFLOW
981 #define TLOSS _TLOSS
982 #define PLOSS _PLOSS
983
984 #define matherr _matherr
985
986 #ifndef __assembler
987 #ifndef _M_CEE_PURE
988 extern double HUGE;
989 #else
990 double const HUGE = _HUGE;
991 #endif
992
999 #endif // !__assembler
1000
1001#endif // _CRT_INTERNAL_NONSTDC_NAMES
1002
1005#pragma warning(pop) // _UCRT_DISABLED_WARNINGS
1006#endif /* _INC_MATH */
#define _X(x)
Definition: CPath.cpp:42
_STLP_DECLSPEC complex< float > _STLP_CALL sinh(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL cos(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL tan(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL cosh(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL sin(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL sqrt(const complex< float > &)
Definition: complex.cpp:188
_STLP_DECLSPEC complex< float > _STLP_CALL tanh(const complex< float > &)
int FN_PROTOTYPE() _finitef(float x)
Definition: _finitef.c:32
valarray< _Tp > acos(const valarray< _Tp > &__x)
Definition: _valarray.h:901
valarray< _Tp > atan(const valarray< _Tp > &__x)
Definition: _valarray.h:919
valarray< _Tp > asin(const valarray< _Tp > &__x)
Definition: _valarray.h:910
valarray< _Tp > atan2(const valarray< _Tp > &__x, const valarray< _Tp > &__y)
Definition: _valarray.h:928
#define __inline
Definition: _wctype.cpp:15
#define __cdecl
Definition: accygwin.h:79
const _float_const _FInf_C
Definition: corecrt_math.h:262
_Check_return_ _ACRTIMP short __cdecl _dclass(_In_ double _X)
Definition: _dclass.c:30
_Check_return_ _ACRTIMP short __cdecl _ldexp(_Inout_ long double *_Px, _In_ long double _Y, _In_ long _Eoff)
const _float_const _Nan_C
Definition: corecrt_math.h:261
#define FP_NAN
Definition: corecrt_math.h:114
const _float_const _LInf_C
Definition: corecrt_math.h:263
#define _FP_EQ
Definition: corecrt_math.h:274
_Check_return_ _ACRTIMP short __cdecl _dtest(_In_ double *_Px)
Definition: _dtest.c:20
const _float_const _Denorm_C
#define isunordered(x, y)
Definition: corecrt_math.h:297
_ACRTIMP short __cdecl _fdunscale(_Out_ short *_Pex, _Inout_ float *_Px)
const _float_const _Snan_C
Definition: corecrt_math.h:261
#define _FP_LT
Definition: corecrt_math.h:273
const _float_const _FDenorm_C
_Check_return_ _ACRTIMP float __cdecl _fdsin(_In_ float _X, _In_ unsigned int _Qoff)
float float_t
Definition: corecrt_math.h:59
_ACRTIMP short __cdecl _fdscale(_Inout_ float *_Px, _In_ long _Lexp)
_Check_return_ _ACRTIMP int __cdecl _ldsign(_In_ long double _X)
_Check_return_ _ACRTIMP double __cdecl _dlog(_In_ double _X, _In_ int _Baseflag)
const _float_const _Hugeval_C
Definition: corecrt_math.h:261
_Check_return_ _ACRTIMP short __cdecl _fdnorm(_Inout_updates_(2) unsigned short *_Ps)
_ACRTIMP short __cdecl _fd_int(_Inout_ float *_Px, _In_ short _Xexp)
_Check_return_ _ACRTIMP double __cdecl _dpoly(_In_ double _X, _In_reads_(_N) double const *_Tab, _In_ int _N)
#define FP_INFINITE
Definition: corecrt_math.h:113
_ACRTIMP short __cdecl _d_int(_Inout_ double *_Px, _In_ short _Xexp)
const _float_const _Eps_C
const _float_const _LSnan_C
Definition: corecrt_math.h:263
_Check_return_ _ACRTIMP double __cdecl _dsin(_In_ double _X, _In_ unsigned int _Qoff)
#define isgreaterequal(x, y)
Definition: corecrt_math.h:293
#define _FP_GT
Definition: corecrt_math.h:275
#define islessgreater(x, y)
Definition: corecrt_math.h:296
_Check_return_ _ACRTIMP float __cdecl _fdpoly(_In_ float _X, _In_reads_(_N) float const *_Tab, _In_ int _N)
const _float_const _LRteps_C
Definition: corecrt_math.h:267
#define isless(x, y)
Definition: corecrt_math.h:294
const _float_const _LEps_C
const _float_const _FSnan_C
Definition: corecrt_math.h:262
double const _HUGE
Definition: huge_val.c:6
void __cdecl _fperrraise(_In_ int _Except)
_Check_return_ _ACRTIMP int __cdecl _fdsign(_In_ float _X)
const _float_const _FRteps_C
Definition: corecrt_math.h:266
const double _Xbig_C
Definition: corecrt_math.h:269
_ACRTIMP short __cdecl _ld_int(_Inout_ long double *_Px, _In_ short _Xexp)
#define isinf(_Val)
Definition: corecrt_math.h:287
#define isfinite(_Val)
Definition: corecrt_math.h:286
const float _FXbig_C
Definition: corecrt_math.h:270
_Check_return_ _ACRTIMP int __cdecl _dpcomp(_In_ double _X, _In_ double _Y)
const _float_const _LDenorm_C
const _float_const _FNan_C
Definition: corecrt_math.h:262
const _float_const _FEps_C
_Check_return_ _ACRTIMP int __cdecl _ldpcomp(_In_ long double _X, _In_ long double _Y)
_ACRTIMP short __cdecl _dunscale(_Out_ short *_Pex, _Inout_ double *_Px)
_Check_return_ _ACRTIMP short __cdecl _fdclass(_In_ float _X)
Definition: _fdclass.c:30
_Check_return_ _ACRTIMP short __cdecl _fdexp(_Inout_ float *_Px, _In_ float _Y, _In_ long _Eoff)
const _float_const _LNan_C
Definition: corecrt_math.h:263
_ACRTIMP short __cdecl _dscale(_Inout_ double *_Px, _In_ long _Lexp)
_Check_return_ _ACRTIMP int __cdecl _fdpcomp(_In_ float _X, _In_ float _Y)
#define FP_NORMAL
Definition: corecrt_math.h:115
#define isnormal(_Val)
Definition: corecrt_math.h:289
#define islessequal(x, y)
Definition: corecrt_math.h:295
_Check_return_ _ACRTIMP short __cdecl _ldtest(_In_ long double *_Px)
#define fpclassify(_Val)
Definition: corecrt_math.h:283
double double_t
Definition: corecrt_math.h:60
const double _Zero_C
const _float_const _Inf_C
Definition: corecrt_math.h:261
_Check_return_ _ACRTIMP short __cdecl _ldclass(_In_ long double _X)
_Check_return_ _ACRTIMP short __cdecl _dnorm(_Inout_updates_(4) unsigned short *_Ps)
_Check_return_ _ACRTIMP short __cdecl _fdtest(_In_ float *_Px)
Definition: _fdtest.c:20
_Check_return_ _ACRTIMP long double __cdecl _ldpoly(_In_ long double _X, _In_reads_(_N) long double const *_Tab, _In_ int _N)
#define isgreater(x, y)
Definition: corecrt_math.h:292
_Check_return_ _ACRTIMP long double __cdecl _ldsin(_In_ long double _X, _In_ unsigned int _Qoff)
const long double _LXbig_C
Definition: corecrt_math.h:271
_Check_return_ _ACRTIMP long double __cdecl _ldlog(_In_ long double _X, _In_ int _Baseflag)
const long double _LZero_C
_Check_return_ _ACRTIMP int __cdecl _dsign(_In_ double _X)
_Check_return_ _ACRTIMP float __cdecl _fdlog(_In_ float _X, _In_ int _Baseflag)
_ACRTIMP short __cdecl _ldunscale(_Out_ short *_Pex, _Inout_ long double *_Px)
#define signbit(_Val)
Definition: corecrt_math.h:290
const float _FZero_C
const _float_const _Rteps_C
Definition: corecrt_math.h:265
#define isnan(_Val)
Definition: corecrt_math.h:288
_ACRTIMP short __cdecl _ldscale(_Inout_ long double *_Px, _In_ long _Lexp)
_Check_return_ _ACRTIMP short __cdecl _dexp(_Inout_ double *_Px, _In_ double _Y, _In_ long _Eoff)
_String
#define fmax
Definition: graphics.c:64
double log2(double x)
Definition: stubs.c:62
long int lrintf(float x)
Definition: stubs.c:79
float log2f(float x)
Definition: stubs.c:68
float fmaf(float x, float y, float z)
Definition: stubs.c:56
double fma(double x, double y, double z)
Definition: stubs.c:50
long int lrint(double x)
Definition: stubs.c:73
unsigned long
Definition: typeof.h:102
#define abs(i)
Definition: fconv.c:206
int __cdecl _set_FMA3_enable(int flag)
double log10(double x)
Definition: freeldr.c:190
double pow(double x, double y)
Definition: freeldr.c:178
double asinh(double x)
Definition: fun_ieee.c:49
double atanh(double x)
Definition: fun_ieee.c:63
double acosh(double x)
Definition: fun_ieee.c:54
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _chgsign(_In_ double)
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _copysign(_In_ double, _In_ double)
_Check_return_ __CRT_INLINE long lround(_In_ double x)
Definition: math.h:297
_Check_return_ __CRT_INLINE float rintf(_In_ float x)
Definition: math.h:304
_Check_return_ float __cdecl acosf(_In_ float x)
Definition: math.h:233
_Check_return_ __CRT_INLINE float __CRTDECL fabsf(_In_ float x)
Definition: math.h:193
_Check_return_ __CRT_INLINE long double coshl(_In_ long double x)
Definition: math.h:265
_Check_return_ float __cdecl atanf(_In_ float x)
Definition: math.h:235
_Check_return_ __CRT_INLINE long lroundl(_In_ long double x)
Definition: math.h:299
_Check_return_ __CRT_INLINE long double roundl(_In_ long double x)
Definition: math.h:296
_Check_return_ __CRT_INLINE long double sinhl(_In_ long double x)
Definition: math.h:276
_Check_return_ long long __cdecl llabs(_In_ long long x)
Definition: stdlib.h:1435
_Check_return_ __CRT_INLINE long double atan2l(_In_ long double y, _In_ long double x)
Definition: math.h:262
_Check_return_ _CRTIMP double __cdecl _j0(_In_ double x)
_Check_return_ __CRT_INLINE long long llround(_In_ double x)
Definition: math.h:300
_Check_return_ _CRTIMP double __cdecl frexp(_In_ double x, _Out_ int *y)
_Check_return_ long __cdecl labs(_In_ long x)
_Check_return_ float __cdecl powf(_In_ float b, _In_ float e)
Definition: math.h:246
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
Definition: fabs.c:17
_Check_return_ float __cdecl logf(_In_ float x)
Definition: math.h:243
_Check_return_ _CRTIMP double __cdecl ldexp(_In_ double x, _In_ int y)
_Check_return_ float __cdecl expf(_In_ float x)
Definition: math.h:240
_Check_return_ _CRTIMP double __cdecl modf(_In_ double x, _Out_ double *y)
_Check_return_ float __cdecl modff(_In_ float x, _Out_ float *y)
Definition: math.h:245
_Check_return_ __CRT_INLINE long double cosl(_In_ long double x)
Definition: math.h:264
_Check_return_ __CRT_INLINE long double ceill(_In_ long double x)
Definition: math.h:263
_Check_return_ __CRT_INLINE long double frexpl(_In_ long double x, _Out_ int *y)
Definition: math.h:270
_Check_return_ __CRT_INLINE long double log10l(_In_ long double x)
Definition: math.h:273
_Check_return_ __CRT_INLINE long double _hypotl(_In_ long double x, _In_ long double y)
Definition: math.h:281
_Check_return_ float __cdecl cosf(_In_ float x)
Definition: math.h:238
_Check_return_ _CRTIMP double __cdecl _j1(_In_ double x)
_Check_return_ _CRTIMP double __cdecl _atof_l(_In_z_ const char *str, _In_opt_ _locale_t locale)
_Check_return_ __CRT_INLINE long double fabsl(_In_ long double x)
Definition: math.h:267
_Check_return_ __CRT_INLINE float roundf(_In_ float x)
Definition: math.h:295
_Check_return_ _CRTIMP double __cdecl _hypot(_In_ double x, _In_ double y)
_Check_return_ _CRTIMP double __cdecl _cabs(_In_ struct _complex a)
_Check_return_ double __cdecl fmod(_In_ double x, _In_ double y)
#define HUGE
Definition: math.h:328
_Check_return_ __CRT_INLINE long lrintl(_In_ long double x)
Definition: math.h:308
_Check_return_ __CRT_INLINE float __CRTDECL ldexpf(_In_ float x, _In_ int y)
Definition: math.h:182
_Check_return_ __CRT_INLINE long double _chgsignl(_In_ long double number)
Definition: math.h:279
_Check_return_ float __cdecl log10f(_In_ float x)
Definition: math.h:244
_Check_return_ __CRT_INLINE long double acosl(_In_ long double x)
Definition: math.h:259
int __CRTDECL _matherr(_Inout_ struct _exception *exception)
_Check_return_ __CRT_INLINE long double __CRTDECL tanl(_In_ long double x)
Definition: math.h:183
_Check_return_ float __cdecl _chgsignf(_In_ float x)
Definition: math.h:230
_Check_return_ __CRT_INLINE double hypot(_In_ double x, _In_ double y)
Definition: math.h:254
_Check_return_ float __cdecl tanhf(_In_ float x)
Definition: math.h:251
_Check_return_ __CRT_INLINE long long llroundl(_In_ long double x)
Definition: math.h:302
_Check_return_ __CRT_INLINE long double _copysignl(_In_ long double number, _In_ long double sign)
Definition: math.h:280
_Check_return_ _CRTIMP double __cdecl _y0(_In_ double x)
_Check_return_ __CRT_INLINE long double expl(_In_ long double x)
Definition: math.h:266
_Check_return_ __CRT_INLINE long double rintl(_In_ long double x)
Definition: math.h:305
_Check_return_ _CRTIMP double __cdecl _yn(_In_ int x, _In_ double y)
_Check_return_ __CRT_INLINE long double sqrtl(_In_ long double x)
Definition: math.h:277
_Check_return_ __CRT_INLINE float frexpf(_In_ float x, _Out_ int *y)
Definition: math.h:256
_Check_return_ __CRT_INLINE long double ldexpl(_In_ long double x, _In_ int y)
Definition: math.h:282
_Check_return_ __CRT_INLINE long long llrint(_In_ double x)
Definition: math.h:309
_Check_return_ __CRT_INLINE long double tanhl(_In_ long double x)
Definition: math.h:278
_Check_return_ float __cdecl coshf(_In_ float x)
Definition: math.h:239
_Check_return_ __CRT_INLINE long long llrintl(_In_ long double x)
Definition: math.h:311
_Check_return_ float __cdecl tanf(_In_ float x)
Definition: math.h:250
_Check_return_ __CRT_INLINE long double atanl(_In_ long double x)
Definition: math.h:261
_Check_return_ __CRT_INLINE long lroundf(_In_ float x)
Definition: math.h:298
_Check_return_ float __cdecl fmodf(_In_ float x, _In_ float y)
Definition: math.h:242
_Check_return_ __CRT_INLINE long long llroundf(_In_ float x)
Definition: math.h:301
_Check_return_ float __cdecl _hypotf(_In_ float x, _In_ float y)
Definition: math.h:232
_Check_return_ __CRT_INLINE double rint(_In_ double x)
Definition: math.h:303
_Check_return_ float __cdecl _copysignf(_In_ float x, _In_ float y)
Definition: math.h:231
_Check_return_ _CRTIMP double __cdecl _y1(_In_ double x)
_Check_return_ __CRT_INLINE long double logl(_In_ long double x)
Definition: math.h:272
_Check_return_ float __cdecl sinhf(_In_ float x)
Definition: math.h:248
_Check_return_ __CRT_INLINE long double sinl(_In_ long double x)
Definition: math.h:275
_Check_return_ float __cdecl asinf(_In_ float x)
Definition: math.h:234
_Check_return_ __CRT_INLINE float hypotf(_In_ float x, _In_ float y)
Definition: math.h:255
_Check_return_ __CRT_INLINE long double hypotl(_In_ long double x, _In_ long double y)
Definition: math.h:271
_Check_return_ _CRTIMP double __cdecl _jn(_In_ int x, _In_ double y)
_Check_return_ float __cdecl atan2f(_In_ float x, _In_ float y)
Definition: math.h:236
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
_Check_return_ __CRT_INLINE long double asinl(_In_ long double x)
Definition: math.h:260
_Check_return_ __CRT_INLINE long long llrintf(_In_ float x)
Definition: math.h:310
_Check_return_ _CRTIMP double __cdecl ceil(_In_ double x)
_Check_return_ float __cdecl sinf(_In_ float x)
Definition: math.h:247
_N
Definition: wchar.h:2530
GLint y0
Definition: linetemp.h:96
float _logbf(float x)
Definition: logbf.c:38
long double __cdecl truncl(long double)
int __cdecl ilogbf(float)
float __cdecl copysignf(float, float)
long double __cdecl erfcl(long double)
long double __cdecl asinhl(long double)
long double __cdecl exp2l(long double)
float __cdecl erfcf(float)
long double __cdecl atanhl(long double)
float __cdecl nexttowardf(float, long double)
long double __cdecl scalblnl(long double, long)
float __cdecl expm1f(float)
double __cdecl log1p(double)
float __cdecl nextafterf(float, float)
int __cdecl ilogb(double)
float __cdecl acoshf(float)
float __cdecl exp2f(float)
long double __cdecl cbrtl(long double)
float __cdecl cbrtf(float)
long double __cdecl fmaxl(long double, long double)
double __cdecl remquo(double, double, int *)
double __cdecl erf(double)
long double __cdecl fdiml(long double x, long double y)
long double __cdecl nearbyintl(long double)
long double __cdecl remainderl(long double, long double)
double __cdecl scalbln(double, long)
double __cdecl nan(const char *tagp)
float __cdecl atanhf(float)
long double __cdecl acoshl(long double)
long double __cdecl copysignl(long double, long double)
double __cdecl logb(double)
Definition: mingw_math.h:243
long double __cdecl nextafterl(long double, long double)
double __cdecl lgamma(double)
long double __cdecl lgammal(long double)
long double __cdecl remquol(long double, long double, int *)
float __cdecl remquof(float, float, int *)
double __cdecl erfc(double)
int __cdecl ilogbl(long double)
float __cdecl asinhf(float)
long double __cdecl expm1l(long double)
float __cdecl remainderf(float, float)
Definition: remainderf.c:60
float __cdecl truncf(float)
double __cdecl remainder(double, double)
Definition: remainder.c:75
double __cdecl cbrt(double)
float __cdecl nearbyintf(float)
double __cdecl trunc(double)
float __cdecl nanf(const char *tagp)
float __cdecl scalblnf(float, long)
float __cdecl tgammaf(float)
double __cdecl scalbn(double, int)
long double __cdecl nexttowardl(long double, long double)
float __cdecl fdimf(float x, float y)
long double __cdecl nanl(const char *tagp)
double __cdecl nearbyint(double)
long double __cdecl logbl(long double)
Definition: mingw_math.h:259
long double __cdecl erfl(long double)
long double __cdecl log1pl(long double)
float __cdecl fminf(float, float)
long double __cdecl tgammal(long double)
double __cdecl nexttoward(double, long double)
double __cdecl copysign(double, double)
long double __cdecl fminl(long double, long double)
double __cdecl expm1(double)
float __cdecl logbf(float)
Definition: mingw_math.h:251
long double __cdecl fmal(long double, long double, long double)
double __cdecl exp2(double)
Definition: exp2.c:47
double __cdecl fmin(double, double)
long double __cdecl scalbnl(long double, int)
float __cdecl log1pf(float)
float __cdecl erff(float)
float __cdecl fmaxf(float, float)
float __cdecl scalbnf(float, int)
double __cdecl nextafter(double, double)
long double __cdecl log2l(long double)
double __cdecl tgamma(double)
double __cdecl fdim(double x, double y)
float __cdecl lgammaf(float)
#define modfl
Definition: modf.c:12
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
Definition: string.c:89
static float(__cdecl *square_half_float)(float x
DWORD exp
Definition: msg.c:16058
#define ceilf(x)
Definition: mymath.h:62
#define floorf(x)
Definition: mymath.h:65
#define sqrtf(x)
Definition: mymath.h:59
#define _In_reads_(s)
Definition: no_sal2.h:168
#define _Inout_updates_(s)
Definition: no_sal2.h:182
#define _Inout_
Definition: no_sal2.h:162
#define _In_z_
Definition: no_sal2.h:164
#define _Check_return_
Definition: no_sal2.h:60
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define round(x)
Definition: opentype.c:47
_In_ size_t _In_z_ _Printf_format_string_ const char _In_ const struct tm _In_opt_ _locale_t _Locale
Definition: time.h:159
#define log(outFile, fmt,...)
Definition: util.h:15
#define _I
Definition: strtoclr.c:24
Definition: math.h:31
double y
Definition: math.h:32
double x
Definition: math.h:32
double retval
Definition: math.h:25
char * name
Definition: math.h:22
double arg2
Definition: math.h:24
int type
Definition: math.h:21
double arg1
Definition: math.h:23
double atof()
#define floorl(x)
Definition: trio.c:273
#define powl(x, y)
Definition: trio.c:275
#define fmodl(x, y)
Definition: trio.c:274
#define _CRT_NONSTDC_DEPRECATE(_NewName)
Definition: corecrt.h:439
#define _ACRTIMP
Definition: corecrt.h:138
#define _UCRT_DISABLE_CLANG_WARNINGS
Definition: corecrt.h:109
#define _UCRT_RESTORE_CLANG_WARNINGS
Definition: corecrt.h:117
#define _CRT_JIT_INTRINSIC
Definition: corecrt.h:175
long double _Long_double
Definition: corecrt_math.h:258
double _Double
Definition: corecrt_math.h:257
long double _Val
Definition: corecrt_math.h:250
#define _CRT_END_C_HEADER
Definition: vcruntime.h:42
#define _CRT_BEGIN_C_HEADER
Definition: vcruntime.h:40
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3709
#define __CRTDECL
Definition: yvals.h:17