TorchLean API

FloatLib.Floats.Formats.BinaryInterchange.DirectedSemantics.Bounds

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.