40 operator float(
void)
const;
67 if (fabs(fSinglePrecision) < .0001) {
68 fSinglePrecision = 0.0f;
76 mantissa =
x & ((1 << 23) - 1);
81 if (exp >= HALF_FLOAT_MAX_BIASED_EXP_AS_SINGLE_FP_EXP)
84 if (mantissa && (exp == FLOAT_MAX_BIASED_EXP))
87 mantissa = (1 << 23) - 1;
98 else if (exp <= HALF_FLOAT_MIN_BIASED_EXP_AS_SINGLE_FP_EXP)
101 exp = (HALF_FLOAT_MIN_BIASED_EXP_AS_SINGLE_FP_EXP - exp) >> 23;
102 mantissa >>= (14 + exp);
126 inline vrv_float16::operator float(
void)
const
137 if (exp == HALF_FLOAT_MAX_BIASED_EXP)
145 mantissa = (1 << 23) - 1;
156 while ((mantissa & (1 << 10)) == 0)
165 mantissa &= ((1 << 10) - 1);
177 exp = (exp << 13) + HALF_FLOAT_MIN_BIASED_EXP_AS_SINGLE_FP_EXP;
180 x = (sign << 31) | exp | mantissa;