21 #ifndef feexceptErsatz_H
22 #define feexceptErsatz_H
29 inline int feenableexcept(
unsigned int excepts)
32 unsigned int new_excepts = excepts & FE_ALL_EXCEPT;
33 unsigned int old_excepts;
39 old_excepts = fenv.__control & FE_ALL_EXCEPT;
42 fenv.__control &= ~new_excepts;
43 fenv.__mxcsr &= ~(new_excepts << 7);
45 return fesetenv(&fenv) ? -1 : old_excepts;
49 inline int fedisableexcept(
unsigned int excepts)
52 unsigned int new_excepts = excepts & FE_ALL_EXCEPT;
53 unsigned int old_excepts;
60 old_excepts = fenv.__control & FE_ALL_EXCEPT;
63 fenv.__control |= new_excepts;
64 fenv.__mxcsr |= new_excepts << 7;
66 return fesetenv(&fenv) ? -1 : old_excepts;