You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
2.0 KiB

(*
* Copyright (c) 2009-2013, Monoidics ltd.
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
open! IStd
module F = Format
(** signed and unsigned integer literals *)
type t
exception OversizedShift
val add : t -> t -> t
val compare : t -> t -> int
(** compare integers ignoring the distinction between pointers and non-pointers *)
val compare_value : t -> t -> int
(** compare the value of the integers, notice this is different from const compare, which
distinguished between signed and unsigned +1 *)
val div : t -> t -> t
val eq : t -> t -> bool
val of_int : int -> t
val of_int32 : int32 -> t
val of_int64 : int64 -> t
val of_string : string -> t
val geq : t -> t -> bool
val gt : t -> t -> bool [@@warning "-32"]
val isminusone : t -> bool
val isnegative : t -> bool
val isnull : t -> bool
val isone : t -> bool
val iszero : t -> bool
val leq : t -> t -> bool
val logand : t -> t -> t
val lognot : t -> t
val logor : t -> t -> t
val logxor : t -> t -> t
val lt : t -> t -> bool
val minus_one : t
val mul : t -> t -> t
val neg : t -> t
val neq : t -> t -> bool
val null : t
(** null behaves like zero except for the function isnull *)
val one : t
val pp : F.formatter -> t -> unit
val rem : t -> t -> t
val shift_left : t -> t -> t
(* shift_right performs arithmetic shift, for the following reasons: *)
(* In C++, whether right shift is logical or arithmetical is implementation defined.
* Usually an arithmetic shift is implemented. *)
(* In Java, the current frontend refuses to translate logical right shift. *)
val shift_right : t -> t -> t
val sub : t -> t -> t
val max : t -> t -> t
val min : t -> t -> t
val to_int : t -> int option
val to_int_exn : t -> int
val to_big_int : t -> Z.t
val to_float : t -> float
val to_signed : t -> t option
val to_string : t -> string
(** convert to signed if the value is representable *)
val two : t
val zero : t