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; }