16#pragma warning(disable: _UCRT_DISABLED_WARNINGS)
23#ifndef _CRT_MANAGED_FP_DEPRECATE
24 #ifdef _CRT_MANAGED_FP_NO_DEPRECATE
25 #define _CRT_MANAGED_FP_DEPRECATE
28 #define _CRT_MANAGED_FP_DEPRECATE _CRT_DEPRECATE_TEXT("Direct floating point control is not supported or reliable from within managed code. ")
30 #define _CRT_MANAGED_FP_DEPRECATE
51 #define FLT_EVAL_METHOD -1
55 #define FLT_EVAL_METHOD 0
57 #define FLT_EVAL_METHOD 2
60 #define FLT_EVAL_METHOD 0
71#define DBL_DECIMAL_DIG 17
73#define DBL_EPSILON 2.2204460492503131e-016
74#define DBL_HAS_SUBNORM 1
75#define DBL_MANT_DIG 53
76#define DBL_MAX 1.7976931348623158e+308
77#define DBL_MAX_10_EXP 308
78#define DBL_MAX_EXP 1024
79#define DBL_MIN 2.2250738585072014e-308
80#define DBL_MIN_10_EXP (-307)
81#define DBL_MIN_EXP (-1021)
83#define DBL_TRUE_MIN 4.9406564584124654e-324
85#define FLT_DECIMAL_DIG 9
87#define FLT_EPSILON 1.192092896e-07F
88#define FLT_HAS_SUBNORM 1
90#define FLT_MANT_DIG 24
91#define FLT_MAX 3.402823466e+38F
92#define FLT_MAX_10_EXP 38
93#define FLT_MAX_EXP 128
94#define FLT_MIN 1.175494351e-38F
95#define FLT_MIN_10_EXP (-37)
96#define FLT_MIN_EXP (-125)
97#define FLT_NORMALIZE 0
99#define FLT_TRUE_MIN 1.401298464e-45F
101#define LDBL_DIG DBL_DIG
102#define LDBL_EPSILON DBL_EPSILON
103#define LDBL_HAS_SUBNORM DBL_HAS_SUBNORM
104#define LDBL_MANT_DIG DBL_MANT_DIG
105#define LDBL_MAX DBL_MAX
106#define LDBL_MAX_10_EXP DBL_MAX_10_EXP
107#define LDBL_MAX_EXP DBL_MAX_EXP
108#define LDBL_MIN DBL_MIN
109#define LDBL_MIN_10_EXP DBL_MIN_10_EXP
110#define LDBL_MIN_EXP DBL_MIN_EXP
111#define _LDBL_RADIX _DBL_RADIX
112#define LDBL_TRUE_MIN DBL_TRUE_MIN
114#define DECIMAL_DIG DBL_DECIMAL_DIG
123#define _SW_INEXACT 0x00000001
124#define _SW_UNDERFLOW 0x00000002
125#define _SW_OVERFLOW 0x00000004
126#define _SW_ZERODIVIDE 0x00000008
127#define _SW_INVALID 0x00000010
128#define _SW_DENORMAL 0x00080000
131#define _EM_AMBIGUIOUS 0x80000000
132#define _EM_AMBIGUOUS 0x80000000
135#define _MCW_EM 0x0008001f
136#define _EM_INEXACT 0x00000001
137#define _EM_UNDERFLOW 0x00000002
138#define _EM_OVERFLOW 0x00000004
139#define _EM_ZERODIVIDE 0x00000008
140#define _EM_INVALID 0x00000010
141#define _EM_DENORMAL 0x00080000
143#define _MCW_RC 0x00000300
144#define _RC_NEAR 0x00000000
145#define _RC_DOWN 0x00000100
146#define _RC_UP 0x00000200
147#define _RC_CHOP 0x00000300
150#define _MCW_PC 0x00030000
151#define _PC_64 0x00000000
152#define _PC_53 0x00010000
153#define _PC_24 0x00020000
155#define _MCW_IC 0x00040000
156#define _IC_AFFINE 0x00040000
157#define _IC_PROJECTIVE 0x00000000
160#define _MCW_DN 0x03000000
161#define _DN_SAVE 0x00000000
162#define _DN_FLUSH 0x01000000
163#define _DN_FLUSH_OPERANDS_SAVE_RESULTS 0x02000000
164#define _DN_SAVE_OPERANDS_FLUSH_RESULTS 0x03000000
169#define _SW_UNEMULATED 0x0040
170#define _SW_SQRTNEG 0x0080
171#define _SW_STACKOVERFLOW 0x0200
172#define _SW_STACKUNDERFLOW 0x0400
177#define _FPE_INVALID 0x81
178#define _FPE_DENORMAL 0x82
179#define _FPE_ZERODIVIDE 0x83
180#define _FPE_OVERFLOW 0x84
181#define _FPE_UNDERFLOW 0x85
182#define _FPE_INEXACT 0x86
184#define _FPE_UNEMULATED 0x87
185#define _FPE_SQRTNEG 0x88
186#define _FPE_STACKOVERFLOW 0x8a
187#define _FPE_STACKUNDERFLOW 0x8b
189#define _FPE_EXPLICITGEN 0x8c
192#define _FPE_MULTIPLE_TRAPS 0x8d
193#define _FPE_MULTIPLE_FAULTS 0x8e
197#define _FPCLASS_SNAN 0x0001
198#define _FPCLASS_QNAN 0x0002
199#define _FPCLASS_NINF 0x0004
200#define _FPCLASS_NN 0x0008
201#define _FPCLASS_ND 0x0010
202#define _FPCLASS_NZ 0x0020
203#define _FPCLASS_PZ 0x0040
204#define _FPCLASS_PD 0x0080
205#define _FPCLASS_PN 0x0100
206#define _FPCLASS_PINF 0x0200
213 #define _CW_DEFAULT (_RC_NEAR + _PC_53 + _EM_INVALID + _EM_ZERODIVIDE + _EM_OVERFLOW + _EM_UNDERFLOW + _EM_INEXACT + _EM_DENORMAL)
215#elif defined _M_X64 || defined _M_ARM || defined _M_ARM64
217 #define _CW_DEFAULT (_RC_NEAR + _EM_INVALID + _EM_ZERODIVIDE + _EM_OVERFLOW + _EM_UNDERFLOW + _EM_INEXACT + _EM_DENORMAL)
234#pragma warning(disable: 4141)
238 _In_ unsigned int _NewValue,
246 _In_ unsigned int _NewValue,
253 _In_ unsigned int _NewValue,
273#define _clear87 _clearfp
274#define _status87 _statusfp
278 _In_ unsigned int _NewValue,
285 _In_ unsigned int _NewValue,
296#define _fpecode (*__fpecode())
301#define FLT_ROUNDS (__fpe_flt_rounds())
302#define _DBL_ROUNDS FLT_ROUNDS
303#define _LDBL_ROUNDS _DBL_ROUNDS
332#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
334 #define clear87 _clear87
335 #define status87 _status87
336 #define control87 _control87
341 #define DBL_RADIX _DBL_RADIX
342 #define DBL_ROUNDS _DBL_ROUNDS
344 #define LDBL_RADIX _LDBL_RADIX
345 #define LDBL_ROUNDS _LDBL_ROUNDS
348 #define EM_AMBIGUIOUS _EM_AMBIGUOUS
349 #define EM_AMBIGUOUS _EM_AMBIGUOUS
351 #define MCW_EM _MCW_EM
352 #define EM_INVALID _EM_INVALID
353 #define EM_DENORMAL _EM_DENORMAL
354 #define EM_ZERODIVIDE _EM_ZERODIVIDE
355 #define EM_OVERFLOW _EM_OVERFLOW
356 #define EM_UNDERFLOW _EM_UNDERFLOW
357 #define EM_INEXACT _EM_INEXACT
359 #define MCW_IC _MCW_IC
360 #define IC_AFFINE _IC_AFFINE
361 #define IC_PROJECTIVE _IC_PROJECTIVE
363 #define MCW_RC _MCW_RC
364 #define RC_CHOP _RC_CHOP
366 #define RC_DOWN _RC_DOWN
367 #define RC_NEAR _RC_NEAR
369 #define MCW_PC _MCW_PC
374 #define CW_DEFAULT _CW_DEFAULT
376 #define SW_INVALID _SW_INVALID
377 #define SW_DENORMAL _SW_DENORMAL
378 #define SW_ZERODIVIDE _SW_ZERODIVIDE
379 #define SW_OVERFLOW _SW_OVERFLOW
380 #define SW_UNDERFLOW _SW_UNDERFLOW
381 #define SW_INEXACT _SW_INEXACT
383 #define SW_UNEMULATED _SW_UNEMULATED
384 #define SW_SQRTNEG _SW_SQRTNEG
385 #define SW_STACKOVERFLOW _SW_STACKOVERFLOW
386 #define SW_STACKUNDERFLOW _SW_STACKUNDERFLOW
388 #define FPE_INVALID _FPE_INVALID
389 #define FPE_DENORMAL _FPE_DENORMAL
390 #define FPE_ZERODIVIDE _FPE_ZERODIVIDE
391 #define FPE_OVERFLOW _FPE_OVERFLOW
392 #define FPE_UNDERFLOW _FPE_UNDERFLOW
393 #define FPE_INEXACT _FPE_INEXACT
395 #define FPE_UNEMULATED _FPE_UNEMULATED
396 #define FPE_SQRTNEG _FPE_SQRTNEG
397 #define FPE_STACKOVERFLOW _FPE_STACKOVERFLOW
398 #define FPE_STACKUNDERFLOW _FPE_STACKUNDERFLOW
400 #define FPE_EXPLICITGEN _FPE_EXPLICITGEN
_Check_return_ __MINGW_NOTHROW _CRTIMP int __cdecl _fpclass(_In_ double)
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _logb(_In_ double)
__MINGW_NOTHROW _CRTIMP int *__cdecl __fpecode(void)
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _nextafter(_In_ double, _In_ double)
__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _control87(_In_ unsigned int unNew, _In_ unsigned int unMask)
__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _controlfp(_In_ unsigned int unNew, _In_ unsigned int unMask)
__MINGW_NOTHROW void __cdecl _fpreset(void)
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _scalb(_In_ double, _In_ long)
_Check_return_ __MINGW_NOTHROW _CRTIMP int __cdecl _isnan(_In_ double)
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _chgsign(_In_ double)
_Check_return_ __MINGW_NOTHROW _CRTIMP int __cdecl _finite(_In_ double)
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _copysign(_In_ double, _In_ double)
__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _clearfp(void)
__MINGW_NOTHROW _CRTIMP unsigned int __cdecl _statusfp(void)
__MINGW_NOTHROW void __cdecl fpreset(void)
_CRT_MANAGED_FP_DEPRECATE _ACRTIMP void __cdecl _set_controlfp(_In_ unsigned int _NewValue, _In_ unsigned int _Mask)
_Check_return_ _ACRTIMP int __cdecl __fpe_flt_rounds(void)
#define _CRT_MANAGED_FP_DEPRECATE
_CRT_MANAGED_FP_DEPRECATE _ACRTIMP errno_t __cdecl _controlfp_s(_Out_opt_ unsigned int *_CurrentState, _In_ unsigned int _NewValue, _In_ unsigned int _Mask)
_CRT_MANAGED_FP_DEPRECATE _In_ unsigned int _Mask
#define _UCRT_DISABLE_CLANG_WARNINGS
#define _UCRT_RESTORE_CLANG_WARNINGS
#define _CRT_END_C_HEADER
#define _CRT_BEGIN_C_HEADER
#define _CRT_INSECURE_DEPRECATE(_Replacement)