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.
90 lines
1.4 KiB
90 lines
1.4 KiB
(*
|
|
* Copyright (c) 2017-present, Facebook, Inc.
|
|
*
|
|
* 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
|
|
|
|
module NonZeroInt : sig
|
|
type t = private Z.t [@@deriving compare]
|
|
|
|
exception DivisionNotExact
|
|
|
|
val one : t
|
|
|
|
val minus_one : t
|
|
|
|
val of_big_int : Z.t -> t option
|
|
|
|
val opt_to_big_int : t option -> Z.t
|
|
|
|
val is_one : t -> bool
|
|
|
|
val is_minus_one : t -> bool
|
|
|
|
val is_multiple : Z.t -> t -> bool
|
|
|
|
val is_negative : t -> bool
|
|
|
|
val is_positive : t -> bool
|
|
|
|
val ( ~- ) : t -> t
|
|
|
|
val ( * ) : t -> t -> t
|
|
|
|
val plus : t -> t -> t option
|
|
|
|
val exact_div_exn : t -> t -> t
|
|
|
|
val max : t -> t -> t
|
|
|
|
val min : t -> t -> t
|
|
end
|
|
|
|
module NonNegativeInt : sig
|
|
type t = private Z.t [@@deriving compare]
|
|
|
|
val zero : t
|
|
|
|
val one : t
|
|
|
|
val of_big_int : Z.t -> t option
|
|
|
|
val of_int_exn : int -> t
|
|
|
|
val of_big_int_exn : Z.t -> t
|
|
|
|
val to_int_exn : t -> int
|
|
|
|
val is_zero : t -> bool
|
|
|
|
val is_one : t -> bool
|
|
|
|
val ( <= ) : lhs:t -> rhs:t -> bool
|
|
|
|
val succ : t -> t
|
|
|
|
val log2_ceil_exn : t -> t
|
|
|
|
val ( + ) : t -> t -> t
|
|
|
|
val ( * ) : t -> t -> t
|
|
|
|
val pp : F.formatter -> t -> unit
|
|
end
|
|
|
|
module PositiveInt : sig
|
|
type t = private NonNegativeInt.t [@@deriving compare]
|
|
|
|
val one : t
|
|
|
|
val of_big_int : Z.t -> t option
|
|
|
|
val succ : t -> t
|
|
|
|
val pp_exponent : F.formatter -> t -> unit
|
|
end
|