Odoc_utils.IntSourceinclude module type of struct include Int endThe 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.
Rounding division. div x y is the real quotient x / y rounded towards zero to an integer. See Stdlib.(/) for details.
rem x y is the remainder of the rounding division div x y. We have rem x y = x - div x y * y. See Stdlib.(mod) for details.
Floor division. fdiv x y is the real quotient x / y rounded down to an integer. We have fdiv x y <= div x y <= cdiv x y and cdiv x y - fdiv x y <= 1.
Ceil division. cdiv x y is the real quotient x / y rounded up to an integer. We have fdiv x y <= div x y <= cdiv x y and cdiv x y - fdiv x y <= 1.
Euclidean division. ediv x y is the real quotient x / y rounded down to an integer if y > 0 and rounded up to an integer if y < 0. The remainder erem x y = x - ediv x y * y is always non-negative. Moreover, ediv x (-y) = - ediv x y.
Euclidean remainder. If y is not zero, we have x = ediv x y * y + erem x y and 0 <= erem x y <= abs y - 1. The result of erem x y is always non-negative, unlike the result of rem x y, which has the sign of x.
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, 2Sys.int_size - 1-1.
min_int is the smallest representable integer, -2Sys.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_logical 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.
Population count, also known as Hamming weight. popcount n is the number of 1 bits in the binary representation of n. Negative n are represented in two's complement.
unsigned_bitsize n is the minimal number of bits needed to represent n as an unsigned binary number. It is the smallest integer i between 0 and Sys.int_size inclusive such that 0 <= n < 2{^i} (unsigned).
signed_bitsize n is the minimal number of bits needed to represent n as a signed, two's complement binary number. It is the smallest integer i between 1 and Sys.int_size inclusive such that -2{^i-1} <= n < 2{^i-1} (signed).
leading_zeros n is the number of leading (most significant) 0 bits in the binary representation of n. It is an integer between 0 and Sys.int_size inclusive. If n is negative, leading_zeros n = 0 since the most significant bit of n is 1. leading_zeros n = {!Sys.int_size} if and only if n = zero. Note that leading_zeros n + unsigned_bitsize n = {!Sys.int_size}.
leading_sign_bits n is the number of leading (most significant) sign bits in the binary representation of n, excluding the sign bit itself. It is an integer between 0 and {!Sys.int_size} - 1 inclusive. For positive n, it is the number of leading zero bits minus one. For negative n, it is the number of leading one bits minus one. Note that leading_sign_bits n + signed_bitsize n = {!Sys.int_size}.
trailing_zeros n is the number of trailing (least significant) 0 bits in the binary representation of n. It is an integer between 0 and Sys.int_size inclusive. It is the largest integer i <= {!Sys.int_size} such that 2{^i} divides n evenly. For example, trailing_zeros n = 0 if and only if n is odd, and trailing_zeros n = {!Sys.int_size} if and only if n = zero.
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.