> Date: Tue, 10 Jun 2003 15:05:13 -0500
> From: Harry R Millwater <[log in to unmask]>
> One of our compilers has a compiler option that says:
>
> disables IEEE gradual underflow, producing zero instead of a denormalised
> number.
>
> Can someone explain what is a "denormalised number"? I've never seen that
> terminology before.
A normalized floating-point number is one in which the most-significant
bit of the mantissa is zero (IEEE).
A denormalized number is one in which the most-significant bit
of the mantissa is zero. The mantissa of such a number may have
fewer significant bits than a normalized number.
When a number underflows slightly (the value is about 10**(-4000)),
the value can be accommodated by retaining a zero exponent,
and leaving the mantissa in an un-normalized state. In this case,
the mantissa is held with fewer significant bits.
In an extreme case, the mantissa would have only one significant bit.
In other words, in this case the value is virtually useless.
Some folks prefer that the value be replaced by zero when
underflow occurs.
(Note that in the case of single precision, underflow occurs at around
10**(-300)).
|