1187806Sdas FPI *fpi, fpi1; 2187806Sdas int Rounding; 3187806Sdas#ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */ 4187806Sdas Rounding = Flt_Rounds; 5187806Sdas#else /*}{*/ 6187806Sdas Rounding = 1; 7187806Sdas switch(fegetround()) { 8187806Sdas case FE_TOWARDZERO: Rounding = 0; break; 9187806Sdas case FE_UPWARD: Rounding = 2; break; 10187806Sdas case FE_DOWNWARD: Rounding = 3; 11187806Sdas } 12187806Sdas#endif /*}}*/ 13187806Sdas fpi = &fpi0; 14187806Sdas if (Rounding != 1) { 15187806Sdas fpi1 = fpi0; 16187806Sdas fpi = &fpi1; 17187806Sdas fpi1.rounding = Rounding; 18187806Sdas } 19