1#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) 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 33typedef unsigned fexcept_t; 34typedef double fenv_t; 35 36#define FE_DFL_ENV ((const fenv_t *)-1) 37