Signed bounds for conventional IEEE directed dyadic rounding #
The semantic contracts of roundDyadicDown and roundDyadicUp give outward bounds for signed
dyadics. For every exact signed dyadic and conventional IEEE FloatFormat, executable downward
rounding is an extended-real lower bound and executable upward rounding is an extended-real
upper bound.
Infinities are handled by the positive-magnitude results. Negative inputs follow by swapping the magnitude rounders and reversing order under negation.
For every descriptor, the directed rounders, the nearest-even general rounder, and the packing helpers they share turn a nonnegative exact value into a value with a nonnegative real meaning. A value that is not finite denotes zero, which covers the NaN that a finite-unsigned-zero encoding delivers on overflow.
Conventional IEEE overflow results of opposite signs are negations of each other.
When the format has signed zeros, rounding a magnitude downward and attaching a negative sign is the negation of the same rounded magnitude with a positive sign.
When the format has signed zeros and sign-symmetric overflow results, rounding a magnitude upward and attaching a negative sign is the negation of the same rounded magnitude with a positive sign.
Directed-down rounding of an exact signed dyadic never produces a NaN.
Directed-up rounding of an exact signed dyadic never produces a NaN.
Directed-down dyadic rounding never exceeds the exact signed dyadic value.
The exact signed dyadic value never exceeds directed-up dyadic rounding.
Nonnegative results of positive rounding #
A value that is not finite denotes zero.
A value with a clear sign bit has a nonnegative real value, whether or not it is finite.
The positive native overflow value has a nonnegative real value in every encoding.
Rounding a positive magnitude downward gives a nonnegative value.
Rounding a positive magnitude upward gives a nonnegative value.
Nearest-even rounding of a nonnegative dyadic gives a nonnegative value.
Rounding a nonnegative dyadic upward gives a nonnegative value.
Rounding a nonnegative dyadic downward gives a nonnegative value.