Module Abstract_interp.Int
include module type of Integer with type t = Z.t
Euclidean division (that returns a positive rem). Implemented by Z.ediv
Equivalent to C division if both operands are positive. Equivalent to a floored division if b > 0 (rounds downwards), otherwise rounds upwards. Note: it is possible that e_div (-a) b <> e_div a (-b).
e_div_rem a b returns (e_div a b, e_rem a b). Implemented by Z.ediv_rem
Remainder of the truncated division towards 0 (like in C99). Implemented by Z.rem
c_div_rem a b returns (c_div a b, c_rem a b). Implemented by Z.div_rem
val is_zero : t -> boolval is_one : t -> boolval is_even : t -> boolval zero : tval one : tval two : tval four : tval eight : tval sixteen : tval thirtytwo : tval onethousand : tval billion_one : tval minus_one : tval max_int64 : tval min_int64 : tval two_power_32 : tval two_power_64 : tval of_int : int -> tval of_int64 : Stdlib.Int64.t -> tval of_int32 : Stdlib.Int32.t -> tval to_int : t -> intval to_int64 : t -> int64val to_int32 : t -> int32val to_float : t -> floatval of_float : float -> tround_up_to_r m r modu is the smallest number n such that n>=m and n = r modulo modu
round_down_to_r m r modu is the largest number n such that n<=m and n = r modulo modu
val two_power_of_int : int -> tComputes 2^n
val power_int_positive_int : int -> int -> tExponentiation
val popcount : t -> intval hash : t -> intval to_string : t -> stringval of_string : string -> tval pp_bin : ?nbits:int -> ?sep:string -> t Pretty_utils.formatterPrint binary format. Digits are output by blocs of 4 bits separated by ~sep with at least ~nbits total bits. If nbits is non positive, it will be ignored.
Positive values are prefixed with "0b" and negative values are printed as their 2-complement (lnot) with prefix "1b".
val pp_hex : ?nbits:int -> ?sep:string -> t Pretty_utils.formatterPrint hexadecimal format. Digits are output by blocs of 16 bits (4 hex digits) separated by ~sep with at least ~nbits total bits. If nbits is non positive, it will be ignored.
Positive values are preffixed with "0x" and negative values are printed as their 2-complement (lnot) with prefix "1x".
module Set : sig ... endval pretty : Stdlib.Format.formatter -> t -> unit