Stdlib.Int
SourceInteger values.
Integers are Sys.int_size
bits wide and use two's complement representation. All operations are taken modulo 2Sys.int_size
. They do not fail on overflow.
The type for integer values.
zero
is the integer 0
.
one
is the integer 1
.
minus_one
is the integer -1
.
neg x
is ~-x
.
add x y
is the addition x + y
.
sub x y
is the subtraction x - y
.
mul x y
is the multiplication x * y
.
div x y
is the division x / y
. See Stdlib.(/)
for details.
rem x y
is the remainder x mod y
. See Stdlib.(mod)
for details.
succ x
is add x 1
.
pred x
is sub x 1
.
abs x
is the absolute value of x
. That is x
if x
is positive and neg x
if x
is negative. Warning. This may be negative if the argument is min_int
.
max_int
is the greatest representable integer, 2
Sys.int_size - 1
-1
.
min_int
is the smallest representable integer, -2
Sys.int_size - 1
.
logand x y
is the bitwise logical and of x
and y
.
logor x y
is the bitwise logical or of x
and y
.
logxor x y
is the bitwise logical exclusive or of x
and y
.
lognot x
is the bitwise logical negation of x
.
shift_left x n
shifts x
to the left by n
bits. The result is unspecified if n < 0
or n >
Sys.int_size
.
shift_right x n
shifts x
to the right by n
bits. This is an arithmetic shift: the sign bit of x
is replicated and inserted in the vacated bits. The result is unspecified if n < 0
or n >
Sys.int_size
.
shift_right x n
shifts x
to the right by n
bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of x
. The result is unspecified if n < 0
or n >
Sys.int_size
.
equal x y
is true
if and only if x = y
.
compare x y
is Stdlib.compare
x y
but more efficient.
Return the smaller of the two arguments.
Return the greater of the two arguments.
to_float x
is x
as a floating point number.
of_float x
truncates x
to an integer. The result is unspecified if the argument is nan
or falls outside the range of representable integers.
to_string x
is the written representation of x
in decimal.
A seeded hash function for ints, with the same output value as Hashtbl.seeded_hash
. This function allows this module to be passed as argument to the functor Hashtbl.MakeSeeded
.
An unseeded hash function for ints, with the same output value as Hashtbl.hash
. This function allows this module to be passed as argument to the functor Hashtbl.Make
.