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