64-bit integers.
include Base__.Int_intf.S with type t = int64include Identifiable.S with type t := tinclude Comparable.S with type t := tinclude Base__.Comparable_intf.Polymorphic_compareascending is identical to compare. descending x y = ascending y x. These are
intended to be mnemonic when used like List.sort ~compare:ascending and List.sort
~cmp:descending, since they cause the list to be sorted in ascending or descending
order, respectively.
clamp_exn t ~min ~max returns t', the closest value to t such that
between t' ~low:min ~high:max is true.
Raises if not (min <= max).
val clamp : t ‑> min:t ‑> max:t ‑> t Or_error.tinclude Comparator.S with type t := tval comparator : (t, comparator_witness) Comparator.comparatorinclude Base__.Comparable_intf.Validate with type t := tval validate_lbound : min:t Maybe_bound.t ‑> t Validate.checkval validate_ubound : max:t Maybe_bound.t ‑> t Validate.checkval validate_bound : min:t Maybe_bound.t ‑> max:t Maybe_bound.t ‑> t Validate.checkinclude Comparable.With_zero with type t := tval validate_positive : t Validate.checkval validate_non_negative : t Validate.checkval validate_negative : t Validate.checkval validate_non_positive : t Validate.checkval is_positive : t ‑> boolval is_non_negative : t ‑> boolval is_negative : t ‑> boolval is_non_positive : t ‑> boolval sign : t ‑> Base__.Sign0.tReturns Neg, Zero, or Pos in a way consistent with the above functions.
val zero : tval one : tval minus_one : tNegation
There are two pairs of integer division and remainder functions, /% and %, and
/ and rem. They both satisfy the same equation relating the quotient and the
remainder:
x = (x /% y) * y + (x % y);
x = (x / y) * y + (rem x y);The functions return the same values if x and y are positive. They all raise
if y = 0.
The functions differ if x < 0 or y < 0.
If y < 0, then % and /% raise, whereas / and rem do not.
x % y always returns a value between 0 and y - 1, even when x < 0. On the
other hand, rem x y returns a negative value if and only if x < 0; that value
satisfies abs (rem x y) <= abs y - 1.
include Base__.Int_intf.Round with type t := tround rounds an int to a multiple of a given to_multiple_of argument, according
to a direction dir, with default dir being `Nearest. round will raise if
to_multiple_of <= 0.
| `Down | rounds toward Int.neg_infinity |
| `Up | rounds toward Int.infinity |
| `Nearest | rounds to the nearest multiple, or `Up in case of a tie |
| `Zero | rounds toward zero |Here are some examples for round ~to_multiple_of:10 for each direction:
| `Down | {10 .. 19} --> 10 | { 0 ... 9} --> 0 | {-10 ... -1} --> -10 |
| `Up | { 1 .. 10} --> 10 | {-9 ... 0} --> 0 | {-19 .. -10} --> -10 |
| `Zero | {10 .. 19} --> 10 | {-9 ... 9} --> 0 | {-19 .. -10} --> -10 |
| `Nearest | { 5 .. 14} --> 10 | {-5 ... 4} --> 0 | {-15 ... -6} --> -10 |For convenience and performance, there are variants of round with dir
hard-coded. If you are writing performance-critical code you should use these.
pow base exponent returns base raised to the power of exponent. It is OK if
base <= 0. pow raises if exponent < 0, or an integer overflow would occur.
The results are unspecified for negative shifts and shifts >= num_bits.
val decr : t Base__.Import.ref ‑> unitval incr : t Base__.Import.ref ‑> unitval of_int32_exn : int32 ‑> tval to_int32_exn : t ‑> int32val of_int64_exn : int64 ‑> tval to_int64 : t ‑> int64val of_nativeint_exn : nativeint ‑> tval to_nativeint_exn : t ‑> nativeintval of_float_unchecked : float ‑> tof_float_unchecked truncates the given floating point number to an integer,
rounding towards zero.
The result is unspecified if the argument is nan or falls outside the range
of representable integers.
val num_bits : intThe number of bits available in this integer type. Note that the integer representations are signed.
module O : Base__.Int_intf.Operators with type t := tA sub-module designed to be opened to make working with ints more convenient.
val of_int : int ‑> tval to_int : t ‑> int optionval of_int32 : int32 ‑> tval to_int32 : t ‑> int32 optionval of_nativeint : nativeint ‑> tval to_nativeint : t ‑> nativeint optionThese functions return the least-significant bits of the input. In cases where
optional conversions return Some x, truncating conversions return x.
val to_int_trunc : t ‑> intval to_int32_trunc : t ‑> int32val to_nativeint_trunc : t ‑> nativeintval bits_of_float : float ‑> tval float_of_bits : t ‑> float