include Base__.Int63_backends.Dynamicinclude sig ... endval hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.stateval hash : t ‑> Base.Hash.hash_valueinclude Base__.Int_intf.S with type t := tinclude sig ... endval hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.stateval hash : t ‑> Base.Hash.hash_valueval t_of_sexp : Base.Sexp.t ‑> tval sexp_of_t : t ‑> Base.Sexp.tinclude Base.Identifiable.S with type t := tinclude sig ... endval hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.stateval hash : t ‑> Base.Hash.hash_valueval t_of_sexp : Base.Sexp.t ‑> tval sexp_of_t : t ‑> Base.Sexp.tinclude Base.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 Base.Or_error.tinclude Base.Comparator.S with type t := tval comparator : (t, comparator_witness) Base.Comparator.comparatorinclude Base__.Comparable_intf.Validate with type t := tval validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.checkinclude Base.Comparable.With_zero with type t := tval validate_positive : t Base.Validate.checkval validate_non_negative : t Base.Validate.checkval validate_negative : t Base.Validate.checkval validate_non_positive : t Base.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 to_int_trunc : t ‑> intval of_int32 : int32 ‑> tval to_int32 : t ‑> Base.Int32.t optionval to_int32_trunc : t ‑> Base.Int32.tval of_int64 : Base.Int64.t ‑> t optionval of_int64_trunc : Base.Int64.t ‑> tval of_nativeint : nativeint ‑> t optionval to_nativeint : t ‑> nativeint optionval of_nativeint_trunc : nativeint ‑> tval to_nativeint_trunc : t ‑> nativeintval of_float_unchecked : float ‑> tval repr : (t, t) Base__.Int63_emul.Repr.t