14bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes FPI *fpi, fpi1; 24bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes int Rounding; 34bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes#ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */ 44bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes Rounding = Flt_Rounds; 54bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes#else /*}{*/ 64bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes Rounding = 1; 74bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes switch(fegetround()) { 84bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes case FE_TOWARDZERO: Rounding = 0; break; 94bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes case FE_UPWARD: Rounding = 2; break; 104bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes case FE_DOWNWARD: Rounding = 3; 114bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes } 124bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes#endif /*}}*/ 134bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes fpi = &fpi0; 144bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes if (Rounding != 1) { 154bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes fpi1 = fpi0; 164bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes fpi = &fpi1; 174bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes fpi1.rounding = Rounding; 184bd97cee28dd815fff54fc97560be60d566c1fa5Elliott Hughes } 19