
#if FLT_RADIX != 2 && FLT_RADIX != 10
  #if FLT_ROUNDS == 1
	#if DIV_ROUNDS == 1
		y= ldexp((evens+odds)/(evens-odds),m);
	#else
		y= ldexp(odds/(evens-odds) + .5,m+1);
	#endif
  #elif FLT_ROUNDS == 0 /* make it round up */
	y= ldexp((odds*2/(evens-odds)+(odds>0?
		.5*(1+DBL_EPSILON):.5)) + .5, m );
  #else	/* just make sure it gets promoted to maximum precision */
	y= ldexp(((long double)evens+odds)/((long double)evens-odds),m);
  #endif
#else /* undesirable radix, keep intermediate calculation in best zone
** pow(radix,n) * frac where  .5 <= frac <= 1  */
	y= odds<0?ldexp(odds*2/(evens-odds)+1,m):
		ldexp(odds/(evens-odds)+.5,m+1);
#endif

