2 #include "cetlib/ProvideFilePathMacro.h" 3 #include "cetlib/container_algorithms.h" 12 : enableDivByZeroEx_{c().enableDivByZeroEx()}
31 <<
"\nUpdated FP settings per user's configuration";
66 unsigned short int enable_except{};
67 unsigned short int enable_sse{};
70 enable_except |= FE_DIVBYZERO;
71 enable_sse |= fpControl_ZM_MASK;
75 enable_except |= FE_INVALID;
76 enable_sse |= fpControl_IM_MASK;
80 enable_except |= FE_OVERFLOW;
81 enable_sse |= fpControl_OM_MASK;
85 enable_except |= FE_UNDERFLOW;
86 enable_sse |= fpControl_UM_MASK;
92 fpControl.fpcw = (fpControl.fpcw | FE_ALL_EXCEPT) & (~enable_except);
97 (fpControl.fpcw & (~fpControl_ALL_PREC)) | fpControl_DOUBLE_PREC;
100 #ifdef fpControl_HAVE_MXCSR 103 (fpControl.mxcsr | fpControl_ALL_SSE_EXCEPT) & (~enable_sse);
118 <<
"Floating point exception mask is " << std::showbase << std::hex
119 << femask <<
"\tDivByZero exception is" 120 <<
on_or_off(femask & FE_DIVBYZERO) <<
"\tInvalid exception is" 121 <<
on_or_off(femask & FE_INVALID) <<
"\tOverFlow exception is" 122 <<
on_or_off(femask & FE_OVERFLOW) <<
"\tUnderFlow exception is" 128 CET_PROVIDE_FILE_PATH()
MaybeLogger_< ELseverityLevel::ELsev_info, true > LogVerbatim
unsigned short int mask_t
fp_detail::fp_control_t OSdefault_
FloatingPointControl(FloatingPointControl const &)=delete
precision_t getPrecision() const
char const * on_or_off(bool const b)
#define FHICL_PROVIDE_ALLOWED_CONFIGURATION(klass)
fp_control_t getFPControl()
fp_control_t setFPControl(fp_control_t const &fpControl)