☰
wrappingInteger
🌌wrappingInteger
§ wrappingInteger(W type :wrappingInteger wrappingInteger.W) => wrappingInteger wrappingInteger.W:integer wrappingInteger.W,wrappingIntegers wrappingInteger.W
§ wrappingInteger(W
type
:wrappingInteger wrappingInteger.W) =>
wrappingInteger wrappingInteger.W:
integer wrappingInteger.W,wrappingIntegers wrappingInteger.Wexponentiation for positive exponent
'zero ** zero' is permitted and results in 'one'.
'zero ** zero' is permitted and results in 'one'.
exponentiation with overflow checking semantics
'zero **? zero' is permitted and results in 'one'.
'zero **? zero' is permitted and results in 'one'.
exponentiation with saturating semantics
'zero **^ zero' is permitted and results in 'one'.
'zero **^ zero' is permitted and results in 'one'.
exponentiation with wrap-around semantics
'zero **° zero' is permitted and results in 'one'.
'zero **° zero' is permitted and results in 'one'.
check if this type of wrappingInteger is bounded
wrappingIntegers are assumed to be a bound set by default, so
this returns true unless redefined by an implementation
wrappingIntegers are assumed to be a bound set by default, so
this returns true unless redefined by an implementation
would addition thiz + other cause an overflow or underflow?
would exponentiation 'this ** other' cause an overflow?
would multiplication thiz * other cause an overflow or underflow?
would subtraction thiz - other cause an overflow or underflow?
preconditions used in 'numeric' for basic operations: true if the
operation is permitted for the given values
operation is permitted for the given values
overflow checking operations
would negation -thiz cause an overflow?
wrappingInteger is the abstract ancestor of integer numbers that have min and
max values and operations with wrap-around semantics.