1 FPI *fpi, fpi1; 2 int Rounding; 3 #ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */ 4 Rounding = Flt_Rounds; 5 #else /*}{*/ 6 Rounding = 1; 7 switch(fegetround()) { 8 case FE_TOWARDZERO: Rounding = 0; break; 9 case FE_UPWARD: Rounding = 2; break; 10 case FE_DOWNWARD: Rounding = 3; 11 } 12 #endif /*}}*/ 13 fpi = &fpi0; 14 if (Rounding != 1) { 15 fpi1 = fpi0; 16 fpi = &fpi1; 17 fpi1.rounding = Rounding; 18 } 19