Module Core_kernel.Int
This module extends Base.Int.
include Base.Int.Int_without_module_types with module Hex := Base.Int.Hex
include Base__.Int_intf.S with type t = int
- val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
- val hash : t -> Base.Hash.hash_value
include Base.Sexpable.S with type t := t
- val t_of_sexp : Base.Sexp.t -> t
- val sexp_of_t : t -> Base.Sexp.t
include Base.Identifiable.S with type t := t
- val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
- val hash : t -> Base.Hash.hash_value
include Base.Sexpable.S with type t := t
- val t_of_sexp : Base.Sexp.t -> t
- val sexp_of_t : t -> Base.Sexp.t
include Base.Stringable.S with type t := t
include Base.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 Base.Or_error.t
include Base.Comparator.S with type t := t
- val comparator : (t, comparator_witness) Base.Comparator.comparator
include Base__.Comparable_intf.Validate with type t := t
- val validate_lbound : min:t Base.Maybe_bound.t -> t Base.Validate.check
- val validate_ubound : max:t Base.Maybe_bound.t -> t Base.Validate.check
- val validate_bound : min:t Base.Maybe_bound.t -> max:t Base.Maybe_bound.t -> t Base.Validate.check
include Base.Comparable.With_zero with type t := t
- val validate_positive : t Base.Validate.check
- val validate_non_negative : t Base.Validate.check
- val validate_negative : t Base.Validate.check
- val validate_non_positive : t Base.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. 
- val max_value_30_bits : t
- max_value_30_bits = 2^30 - 1. It is useful for writing tests that work on both 64-bit and 32-bit platforms.
Conversion functions
- val of_int : int -> t
- val to_int : t -> int
- val of_int32 : int32 -> t option
- val to_int32 : t -> int32 option
- val of_int64 : int64 -> t option
- val of_nativeint : nativeint -> t option
- val to_nativeint : t -> nativeint
Truncating conversions
These functions return the least-significant bits of the input. In cases where optional conversions return Some x, truncating conversions return x.
include Int_intf.Extension_with_stable with type t := t and type comparator_witness := comparator_witness
include Int_intf.Extension
include Bin_prot.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
- val bin_size_t : t Bin_prot.Size.sizer
- val bin_write_t : t Bin_prot.Write.writer
- val bin_read_t : t Bin_prot.Read.reader
- val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
- This function only needs implementation if - texposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant- tafterwards.
- val bin_shape_t : Bin_prot.Shape.t
- val bin_writer_t : t Bin_prot.Type_class.writer
- val bin_reader_t : t Bin_prot.Type_class.reader
- val bin_t : t Bin_prot.Type_class.t
include Typerep_lib.Typerepable.S with type t := t
- val typerep_of_t : t Typerep_lib.Std_internal.Typerep.t
- val typename_of_t : t Typerep_lib.Typename.t
include Identifiable.S with type t := t
include Bin_prot.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
- val bin_size_t : t Bin_prot.Size.sizer
- val bin_write_t : t Bin_prot.Write.writer
- val bin_read_t : t Bin_prot.Read.reader
- val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
- This function only needs implementation if - texposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant- tafterwards.
- val bin_shape_t : Bin_prot.Shape.t
- val bin_writer_t : t Bin_prot.Type_class.writer
- val bin_reader_t : t Bin_prot.Type_class.reader
- val bin_t : t Bin_prot.Type_class.t
- val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
- val hash : t -> Base.Hash.hash_value
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
- val t_of_sexp : Sexplib0.Sexp.t -> t
- val sexp_of_t : t -> Sexplib0.Sexp.t
include Identifiable.S_common with type t := t
- val compare : t -> t -> Core_kernel__.Import.int
- val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
- val hash : t -> Base.Hash.hash_value
- val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
include Core_kernel__.Import.Stringable.S with type t := t
include Core_kernel__.Import.Pretty_printer.S with type t := t
- val pp : Base.Formatter.t -> t -> unit
include Comparable.S_binable with type t := t
include Core_kernel__.Comparable_intf.S_common
include Base.Comparable.S
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 Base.Or_error.t
include Base.Comparator.S with type t := t
- val comparator : (t, comparator_witness) Base.Comparator.comparator
include Base__.Comparable_intf.Validate with type t := t
- val validate_lbound : min:t Base.Maybe_bound.t -> t Base.Validate.check
- val validate_ubound : max:t Base.Maybe_bound.t -> t Base.Validate.check
- val validate_bound : min:t Base.Maybe_bound.t -> max:t Base.Maybe_bound.t -> t Base.Validate.check
module Replace_polymorphic_compare : Core_kernel__.Comparable_intf.Polymorphic_compare with type t := tinclude Core_kernel__.Comparable_intf.Map_and_set_binable with type t := t with type comparator_witness := comparator_witness
include Comparator.S with type t := t
- val comparator : (t, comparator_witness) Comparator.comparator
module Map : Map.S_binable with type Key.t = t with type Key.comparator_witness = comparator_witnessmodule Set : Set.S_binable with type Elt.t = t with type Elt.comparator_witness = comparator_witnessinclude Hashable.S_binable with type t := t
- val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
- val hash : t -> Base.Hash.hash_value
- val hashable : t Hashtbl.Hashable.t
module Table : Hashtbl.S_binable with type key = tmodule Hash_set : Hash_set.S_binable with type elt = tmodule Hash_queue : Hash_queue.S with type Key.t = tinclude Quickcheckable.S_int with type t := t
include Quickcheck_intf.S
- val quickcheck_generator : t Base_quickcheck.Generator.t
- val quickcheck_observer : t Base_quickcheck.Observer.t
- val quickcheck_shrinker : t Base_quickcheck.Shrinker.t
- val gen_incl : t -> t -> t Base_quickcheck.Generator.t
- gen_incl lower_bound upper_boundproduces values between- lower_boundand- upper_bound, inclusive. It uses an ad hoc distribution that stresses boundary conditions more often than a uniform distribution, while still able to produce any value in the range. Raises if- lower_bound > upper_bound.
- val gen_uniform_incl : t -> t -> t Base_quickcheck.Generator.t
- gen_uniform_incl lower_bound upper_boundproduces a generator for values uniformly distributed between- lower_boundand- upper_bound, inclusive. Raises if- lower_bound > upper_bound.
- val gen_log_uniform_incl : t -> t -> t Base_quickcheck.Generator.t
- gen_log_uniform_incl lower_bound upper_boundproduces a generator for values between- lower_boundand- upper_bound, inclusive, where the number of bits used to represent the value is uniformly distributed. Raises if- (lower_bound < 0) || (lower_bound > upper_bound).
- val gen_log_incl : t -> t -> t Base_quickcheck.Generator.t
- gen_log_incl lower_bound upper_boundis like- gen_log_uniform_incl, but weighted slightly more in favor of generating- lower_boundand- upper_boundspecifically.
module Stable : Int_intf.Stable with type V1.t = t and type V1.comparator_witness = comparator_witness