I have read why use gradual underflow.
Gradual underflow satisfies the following formula.
a != b then ab != 0
I see why. But what else do we need to be satisfied with? And how to prove it?
The following does not seem to hold.
ab = 0 then a=0 or b=0, a/b = 0 then a=0
Is this okay?
But what else do we need to be satisfied with?
Avoids abrupt subtraction differences with small values. @Patricia Shanahan
Subtracting various nearby values several powers-of-2 just above DBL_MIN
would otherwise result in 0. With sub-normals, the difference is gradual and non-zero.
The following does not seem to hold.
ab = 0 then a=0 or b=0, a/b = 0 then a=0
Is this okay?
Yes. When a,b
are both non-zero and much less than sqrt(DBL_MIN)
, the product rounds to zero.
Similar situation can occur with a/b
: a = sqrt(DBL_MIN)
and b much greater than sqrt(DBL_MAX)
.
In these cases, the gradual precision loss of sub-normal is not the key issue. Finite range of the exponents causes a rounding to 0.
Sub-normals also allow a non-zero answer to a unit in the last place function for all finite double
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.