...if cl_inhibit_floating_point_underflow was set to true.
Reported by Jan Rheinländer <jrheinlaender@gmx.de>.
if ( ((uintE)(-(uexp = uexp+udelta)) <= (uintE)(-udelta)) // oder Exponent-Unterlauf?
|| (uexp < LF_exp_low) // oder Exponent zu klein?
)
- { throw floating_point_underflow_exception(); }
+ { if (underflow_allowed())
+ { throw floating_point_underflow_exception(); }
+ else
+ { return encode_LF0(TheLfloat(x)->len); } // Ergebnis 0.0
+ }
}
var uintC len = TheLfloat(x)->len;
return encode_LFu(TheLfloat(x)->sign,uexp,arrayMSDptr(TheLfloat(x)->data,len),len);
|| (uexp < LF_exp_low) // oder Exponent zu klein?
)
underflow:
- { throw floating_point_underflow_exception(); }
+ { if (underflow_allowed())
+ { throw floating_point_underflow_exception(); }
+ else
+ { return encode_LF0(TheLfloat(x)->len); } // Ergebnis 0.0
+ }
goto ok;
ok: