18 #define FE_TONEAREST _RC_NEAR
19 #define FE_UPWARD _RC_UP
20 #define FE_DOWNWARD _RC_DOWN
21 #define FE_TOWARDZERO _RC_CHOP
23 #define FE_ROUND_MASK _MCW_RC
41 #define FE_INEXACT _SW_INEXACT // _EM_INEXACT 0x00000001 inexact (precision)
42 #define FE_UNDERFLOW _SW_UNDERFLOW // _EM_UNDERFLOW 0x00000002 underflow
43 #define FE_OVERFLOW _SW_OVERFLOW // _EM_OVERFLOW 0x00000004 overflow
44 #define FE_DIVBYZERO _SW_ZERODIVIDE // _EM_ZERODIVIDE 0x00000008 zero divide
45 #define FE_INVALID _SW_INVALID // _EM_INVALID 0x00000010 invalid
47 #define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
57 #if !defined __midl // MIDL does not support compound initializers
71 #define FE_DFL_ENV (&_Fenv1)
82 #if _CRT_FUNCTIONS_REQUIRED
83 #if !defined(_BEGIN_PRAGMA_OPTIMIZE_DISABLE)
84 #define _BEGIN_PRAGMA_OPTIMIZE_DISABLE(flags, bug, reason) \
85 __pragma(optimize(flags, off))
86 #define _BEGIN_PRAGMA_OPTIMIZE_ENABLE(flags, bug, reason) \
87 __pragma(optimize(flags, on))
88 #define _END_PRAGMA_OPTIMIZE() \
89 __pragma(optimize("", on))
91 _BEGIN_PRAGMA_OPTIMIZE_DISABLE(
"", MSFT:4499495,
"If optimizations are on, the floating-point exception might not get triggered (because the compiler optimizes it out), breaking the function.")
117 for (_N = 0; _N <
sizeof(_Table) /
sizeof(_Table[0]); ++
_N)
119 if ((_Except & _Table[_N]._Except_Val) != 0)
121 _Ans = _Table[
_N]._Num / _Table[
_N]._Denom;
126 #if defined _M_IX86 && _M_IX86_FP == 0
147 #endif // _CRT_FUNCTIONS_REQUIRED
149 #endif // !defined _M_CEE && !defined _CORECRT_BUILD
#define _Out_
Definition: sal.h:342
#define _ACRTIMP
Definition: corecrt.h:27
_ACRTIMP int __cdecl fegetenv(_Out_ fenv_t *_Env)
__inline int __CRTDECL feupdateenv(_In_ const fenv_t *_Penv)
Definition: fenv.h:136
#define FE_OVERFLOW
Definition: fenv.h:43
#define FE_DIVBYZERO
Definition: fenv.h:44
_ACRTIMP int __cdecl fegetround(void)
unsigned long _Fe_stat
Definition: fenv.h:36
_In_ size_t _Deref_pre_opt_z_ char const _In_ size_t _N
Definition: wchar.h:78
_ACRTIMP int __cdecl fesetexceptflag(_In_ fexcept_t const *_Except, _In_ int _SetFlags)
#define FE_UNDERFLOW
Definition: fenv.h:42
#define _CRT_BEGIN_C_HEADER
Definition: vcruntime.h:73
__inline int __CRTDECL feraiseexcept(_In_ int _Except)
Definition: fenv.h:92
#define __CRTDECL
Definition: vcruntime.h:156
unsigned long _Fe_ctl
Definition: fenv.h:36
#define _In_
Definition: sal.h:305
__declspec(selectany) extern const fenv_t _Fenv1
#define _END_PRAGMA_OPTIMIZE()
Definition: fenv.h:88
_ACRTIMP int __cdecl fesetround(_In_ int _Round)
_ACRTIMP int __cdecl feclearexcept(_In_ int _Flags)
_ACRTIMP int __cdecl fetestexcept(_In_ int _Flags)
#define FE_INVALID
Definition: fenv.h:45
char int *typedef int(__CRTDECL *_CRT_REPORT_HOOKW)(int
Definition: crtdbg.h:45
#define FE_ALL_EXCEPT
Definition: fenv.h:47
#define FE_INEXACT
Definition: fenv.h:41
#define _BEGIN_PRAGMA_OPTIMIZE_DISABLE(flags, bug, reason)
Definition: fenv.h:84
_ACRTIMP _Success_(return==0) int __cdecl feholdexcept(_Out_ fenv_t *_Env)
_ACRTIMP int __cdecl fegetexceptflag(_Out_ fexcept_t *_Except, _In_ int _TestFlags)
_ACRTIMP int __cdecl fesetenv(_In_ fenv_t const *_Env)
#define _CRT_END_C_HEADER
Definition: vcruntime.h:76
constexpr _To _Round(const duration< _Rep, _Period > &_Dur, false_type, false_type)
Definition: chrono:721
unsigned long fexcept_t
Definition: fenv.h:32