FPI *fpi, fpi1; | |
int Rounding; | |
#ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */ | |
Rounding = Flt_Rounds; | |
#else /*}{*/ | |
Rounding = 1; | |
switch(fegetround()) { | |
case FE_TOWARDZERO: Rounding = 0; break; | |
case FE_UPWARD: Rounding = 2; break; | |
case FE_DOWNWARD: Rounding = 3; | |
} | |
#endif /*}}*/ | |
fpi = &fpi0; | |
if (Rounding != 1) { | |
fpi1 = fpi0; | |
fpi = &fpi1; | |
fpi1.rounding = Rounding; | |
} |