__FPE
fp_except flags = __FPE(excepts);
fpsetmask(omask & ~__FPE(excepts));
fpsetmask(omask | __FPE(excepts));
fpsetsticky(fpgetsticky() | __FPE(excepts));
int mask = __FPE(excepts);
fpsetsticky((fpgetsticky() & ~mask) | (__FPE(*flagp) & mask));
#define FP_X_IMP __FPE(FE_INEXACT) /* imprecise (loss of precision) */
#define FP_X_DZ __FPE(FE_DIVBYZERO) /* divide-by-zero exception */
#define FP_X_UFL __FPE(FE_UNDERFLOW) /* underflow exception */
#define FP_X_OFL __FPE(FE_OVERFLOW) /* overflow exception */
#define FP_X_INV __FPE(FE_INVALID) /* invalid operation exception */
#define FP_X_IMP __FPE(FE_INEXACT) /* imprecise (loss of precision) */
#define FP_X_UFL __FPE(FE_UNDERFLOW) /* underflow exception */
#define FP_X_OFL __FPE(FE_OVERFLOW) /* overflow exception */
#define FP_X_DZ __FPE(FE_DIVBYZERO) /* divide-by-zero exception */
#define FP_X_INV __FPE(FE_INVALID) /* invalid operation exception */
#define FP_X_IMP __FPE(FE_INEXACT) /* imprecise (loss of precision) */
#define FP_X_DZ __FPE(FE_DIVBYZERO) /* divide-by-zero exception */
#define FP_X_UFL __FPE(FE_UNDERFLOW) /* underflow exception */
#define FP_X_OFL __FPE(FE_OVERFLOW) /* overflow exception */
#define FP_X_INV __FPE(FE_INVALID) /* invalid operation exception */