1 #ifdef _SOFT_FLOAT 2 #define FE_ALL_EXCEPT 0 3 #define FE_TONEAREST 0 4 #else 5 #define FE_TONEAREST 0 6 #define FE_TOWARDZERO 1 7 #define FE_UPWARD 2 8 #define FE_DOWNWARD 3 9 10 #define FE_INEXACT 0x02000000 11 #define FE_DIVBYZERO 0x04000000 12 #define FE_UNDERFLOW 0x08000000 13 #define FE_OVERFLOW 0x10000000 14 #define FE_INVALID 0x20000000 15 16 #define FE_ALL_EXCEPT 0x3e000000 17 18 #ifdef _GNU_SOURCE 19 #define FE_INVALID_SNAN 0x01000000 20 #define FE_INVALID_ISI 0x00800000 21 #define FE_INVALID_IDI 0x00400000 22 #define FE_INVALID_ZDZ 0x00200000 23 #define FE_INVALID_IMZ 0x00100000 24 #define FE_INVALID_COMPARE 0x00080000 25 #define FE_INVALID_SOFTWARE 0x00000400 26 #define FE_INVALID_SQRT 0x00000200 27 #define FE_INVALID_INTEGER_CONVERSION 0x00000100 28 29 #define FE_ALL_INVALID 0x01f80700 30 #endif 31 #endif 32 33 typedef unsigned fexcept_t; 34 typedef double fenv_t; 35 36 #define FE_DFL_ENV ((const fenv_t *)-1) 37