Fuzion Logo
flang.dev — The Fuzion Language Portal
JavaScript seems to be disabled. Functionality is limited.

wrappingInteger

🌌wrappingInteger

wrappingInteger


wrappingInteger is the abstract ancestor of integer numbers that have min and
max values and operations with wrap-around semantics.

§infix *(other T)
 => 
T
:
Object

multiplication, with check for overflow

§infix **(other T)
 => 
T
:
Object

exponentiation for positive exponent

'zero ** zero' is permitted and results in 'one'.

exponentiation with overflow checking semantics

'zero **? zero' is permitted and results in 'one'.

§infix **^(other T)
 => 
T
:
Object

exponentiation with saturating semantics

'zero **^ zero' is permitted and results in 'one'.

§infix **°(other T)
 => 
T
:
Object

exponentiation with wrap-around semantics

'zero **° zero' is permitted and results in 'one'.

§infix *^(other T)
 => 
T
:
Object

§infix *°(other T)
 => 
T
:
Object

§infix +(other T)
 => 
T
:
Object

addition, with check for overflow

§infix +^(other T)
 => 
T
:
Object

§infix +°(other T)
 => 
T
:
Object

§infix -(other T)
 => 
T
:
Object

substraction, with check for overflow

§infix -^(other T)
 => 
T
:
Object

§infix -°(other T)
 => 
T
:
Object

would addtion 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?

negation, with check for overflow

preconditions used in 'numeric' for basic operations: true if the
operation is permitted for the given values

overflow checking operations

saturating operations

neg, add, sub, mul with wrap-around semantics

would negation -thiz cause an overflow?