Module Base.Int63
63-bit integers.
The size of Int63 is always 63 bits. On a 64-bit platform it is just an int (63-bits), and on a 32-bit platform it is an int64 wrapped to respect the semantics of 63-bit integers.
Because Int63 has different representations on 32-bit and 64-bit platforms, marshalling Int63 will not work between 32-bit and 64-bit platforms -- unmarshal will segfault.
In 64-bit architectures, we expose type t = private int so that the compiler can omit caml_modify when dealing with record fields holding Int63.t.
Code should not explicitly make use of the private, e.g., via (i :> int), since such code will not compile on 32-bit platforms.
include Base__.Int_intf.S with type t = Base__.Int63_backend.t
- val hash_fold_t : Hash.state -> t -> Hash.state
- val hash : t -> Hash.hash_value
include Identifiable.S with type t := t
- val hash_fold_t : Hash.state -> t -> Hash.state
- val hash : t -> Hash.hash_value
include Comparable.S with type t := t
include Base__.Comparable_intf.Polymorphic_compare
- val ascending : t -> t -> int
- ascendingis identical to- compare.- descending x y = ascending y x. These are intended to be mnemonic when used like- List.sort ~compare:ascendingand- List.sort ~cmp:descending, since they cause the list to be sorted in ascending or descending order, respectively.
- val descending : t -> t -> int
- val between : t -> low:t -> high:t -> bool
- between t ~low ~highmeans- low <= t <= high
- val clamp_exn : t -> min:t -> max:t -> t
- clamp_exn t ~min ~maxreturns- t', the closest value to- tsuch that- between t' ~low:min ~high:maxis true.- Raises if - not (min <= max).
- val clamp : t -> min:t -> max:t -> t Or_error.t
include Comparator.S with type t := t
- val comparator : (t, comparator_witness) Comparator.comparator
include Base__.Comparable_intf.Validate with type t := t
- val validate_lbound : min:t Maybe_bound.t -> t Validate.check
- val validate_ubound : max:t Maybe_bound.t -> t Validate.check
- val validate_bound : min:t Maybe_bound.t -> max:t Maybe_bound.t -> t Validate.check
include Comparable.With_zero with type t := t
- val validate_positive : t Validate.check
- val validate_non_negative : t Validate.check
- val validate_negative : t Validate.check
- val validate_non_positive : t Validate.check
- val is_positive : t -> bool
- val is_non_negative : t -> bool
- val is_negative : t -> bool
- val is_non_positive : t -> bool
- val sign : t -> Base__.Sign0.t
- Returns - Neg,- Zero, or- Posin a way consistent with the above functions.
- val to_string_hum : ?delimiter:char -> t -> string
- delimiteris an underscore by default.
Infix operators and constants
- val zero : t
- val one : t
- val minus_one : t
- val (+) : t -> t -> t
- val (-) : t -> t -> t
- val (*) : t -> t -> t
- val (**) : t -> t -> t
- Integer exponentiation 
Other common functions
include Base__.Int_intf.Round with type t := t
Successor and predecessor functions
Exponentiation
Bit-wise logical operations
Bit-shifting operations
The results are unspecified for negative shifts and shifts >= num_bits.
Increment and decrement functions for integer references
- val decr : t Base__.Import.ref -> unit
- val incr : t Base__.Import.ref -> unit
Conversion functions to related integer types
- val of_int32_exn : int32 -> t
- val to_int32_exn : t -> int32
- val of_int64_exn : int64 -> t
- val to_int64 : t -> int64
- val of_nativeint_exn : nativeint -> t
- val to_nativeint_exn : t -> nativeint
- val of_float_unchecked : float -> t
- of_float_uncheckedtruncates 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 : int
- The number of bits available in this integer type. Note that the integer representations are signed. 
- val max_value : t
- The largest representable integer. 
- val min_value : t
- The smallest representable integer. 
- val shift_right_logical : t -> int -> t
- Shifts right, filling in with zeroes, which will not preserve the sign of the input. 
- val ceil_pow2 : t -> t
- ceil_pow2 xreturns the smallest power of 2 that is greater than or equal to- x. The implementation may only be called for- x > 0. Example:- ceil_pow2 17 = 32
- val floor_pow2 : t -> t
- floor_pow2 xreturns the largest power of 2 that is less than or equal to- x. The implementation may only be called for- x > 0. Example:- floor_pow2 17 = 16
- val ceil_log2 : t -> int
- ceil_log2 xreturns the ceiling of log-base-2 of- x, and raises if- x <= 0.
- val floor_log2 : t -> int
- floor_log2 xreturns the floor of log-base-2 of- x, and raises if- x <= 0.
- val is_pow2 : t -> bool
- is_pow2 xreturns true iff- xis a power of 2.- is_pow2raises if- x <= 0.
- module O : Base__.Int_intf.Operators with type t := t
- A sub-module designed to be opened to make working with ints more convenient. 
Arithmetic with overflow
Unlike the usual operations, these never overflow, preferring instead to raise.
module Overflow_exn : sig ... endConversion functions
- val of_int : int -> t
- val to_int : t -> int option
- val of_int32 : Int32.t -> t
- val to_int32 : t -> Int32.t option
- val of_int64 : Int64.t -> t option
- val of_nativeint : nativeint -> t option
- val to_nativeint : t -> nativeint option
Truncating conversions
These functions return the least-significant bits of the input. In cases where optional conversions return Some x, truncating conversions return x.
Random generation
- val random : ?state:Random.State.t -> t -> t
- random ~state boundreturns a random integer between 0 (inclusive) and- bound(exclusive).- boundmust be greater than 0.- The default - ~stateis- Random.State.default.
- val random_incl : ?state:Random.State.t -> t -> t -> t
- random_incl ~state lo hireturns a random integer between- lo(inclusive) and- hi(inclusive). Raises if- lo > hi.- The default - ~stateis- Random.State.default.
- val floor_log2 : t -> int
- floor_log2 xreturns the floor of log-base-2 of- x, and raises if- x <= 0.