14848dd08SDavid Schultz FPI *fpi, fpi1; 24848dd08SDavid Schultz int Rounding; 34848dd08SDavid Schultz #ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */ 44848dd08SDavid Schultz Rounding = Flt_Rounds; 54848dd08SDavid Schultz #else /*}{*/ 64848dd08SDavid Schultz Rounding = 1; 74848dd08SDavid Schultz switch(fegetround()) { 84848dd08SDavid Schultz case FE_TOWARDZERO: Rounding = 0; break; 94848dd08SDavid Schultz case FE_UPWARD: Rounding = 2; break; 104848dd08SDavid Schultz case FE_DOWNWARD: Rounding = 3; 114848dd08SDavid Schultz } 124848dd08SDavid Schultz #endif /*}}*/ 134848dd08SDavid Schultz fpi = &fpi0; 144848dd08SDavid Schultz if (Rounding != 1) { 154848dd08SDavid Schultz fpi1 = fpi0; 164848dd08SDavid Schultz fpi = &fpi1; 174848dd08SDavid Schultz fpi1.rounding = Rounding; 184848dd08SDavid Schultz } 19