CONST FPI *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;
               }