Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Checked_oint.U128SourceThe implementation of u128.
include S with type t = u128The particular integer type.
The bitwise operations bit_not, bit_or, bit_and, bit_xor, shift_left, and shift_right assume that signed integers are represented in the two's complement notation.
NOTE: implementations may not support polymorphic comparison operators. Use equal and compare instead.
The number of bits of this integer type.
Whether this integer type is signed or not.
Constructs a value out of int; returns None on overflow/underflow.
Constructs a value out of string; returns None on overflow/underflow.
We allow the following classes of non-negative integers:
0b (0B) followed by a non-empty sequence of binary digits 0 and 1.0o (0O) followed by a non-empty sequence of octal digits 0, ..., 7.0, ..., 9.0x (0X) followed by a non-empty sequence of decimal digits 0, ..., 9 and letters a, ..., f (A, ..., F).A negative integer is described by the - character followed by a well-formed non-negative integer.
All other combinations of characters will return None.
Performs left shifting; returns None on overflow/underflow.
Performs right shifting; returns None on overflow/underflow.
This is a logical shift for unsigned integer types and arithmetic shift for signed integer types.
Same as of_int but raises Out_of_range instead of returning None.
Same as of_string but raises Out_of_range instead of returning None.
Finds a successor; raises Out_of_range on overflow.
Finds a predecessor; raises Out_of_range on underflow.
Performs unary negation; raises Out_of_range on overflow/underflow.
Finds an absolute value; raises Out_of_range on overflow.
Performs addition; raises Out_of_range on overflow/underflow.
Performs subtraction; raises Out_of_range on overflow/underflow.
Performs multiplication; raises Out_of_range on overflow/underflow.
Performs division; raises Out_of_range on overflow/underflow.
Finds a remainder; raises Out_of_range on overflow/underflow.
Performs left shifting; raises Out_of_range on overflow/underflow.
Performs right shifting; raises Out_of_range on overflow/underflow.
This is a logical shift for unsigned integer types and arithmetic shift for signed integer types.
Projects u128 into the high and low parts, respectively.
This function is useful for generating 128-bit literals from within C code. Suppose that U128.split x is (high, low); in order to obtain the original x, one can write the following C expression:
((unsigned __int128)high << 64 | (unsigned __int128)low)