SNG_EXP
#define SNG_MASK (SNG_EXP(1) - 1) /* mask for fraction */
return (sign | SNG_EXP(SNG_EXP_INFNAN));
if (fpround(fe, fp) && fp->fp_mant[3] == SNG_EXP(1)) {
return (sign | SNG_EXP(1) | 0);
return (sign | SNG_EXP(0) | fp->fp_mant[3]);
if ((fp->fp_mant[3] & SNG_EXP(1 << FP_NG)) == 0)
if (fpround(fe, fp) && fp->fp_mant[3] == SNG_EXP(2))
return (sign | SNG_EXP(SNG_EXP_INFNAN));
return (sign | SNG_EXP(SNG_EXP_INFNAN - 1) | SNG_MASK);
return (sign | SNG_EXP(exp) | (fp->fp_mant[3] & SNG_MASK));