Module Interval


module Interval: sig  end

Accessors



type t = {
   dom : Dom.t;
   lo : (bool * Mpa.Q.t) option;
   hi : (Mpa.Q.t * bool) option;
}

type low = bool * Mpa.Q.t


Accessors


val dom : t -> Dom.t
Parameters:
i : t
val lo : t -> (bool * Mpa.Q.t) option
Parameters:
i : t
val hi : t -> (Mpa.Q.t * bool) option
Parameters:
i : t
val destructure : t -> Dom.t * (bool * Mpa.Q.t) option * (Mpa.Q.t * bool) option
Parameters:
i : t


Pretty-printing


val pp : Format.formatter -> t -> unit
Parameters:
fmt : Format.formatter
i : t


Equality and Subsumption


val eq : t -> t -> bool
Parameters:
i : t
j : t


Constructors


val mk_empty : t
val mk_real : t
val mk_int : t
val mk_nat : t
val mk_pos : t
val mk_nonneg : t
val mk_neg : t
val mk_nonpos : t
val mk_dom : Dom.t -> t
Parameters:
?? : Dom.t
val mk_singleton : Mpa.Q.t -> t
Parameters:
q : Mpa.Q.t
val mk_zero : t
val mk_one : t
val make : Dom.t * (bool * Mpa.Q.t) option * (Mpa.Q.t * bool) option -> t
Parameters:
(d,lo,hi) : Dom.t * (bool * Mpa.Q.t) option * (Mpa.Q.t * bool) option


Recognizers


val is_empty : t -> bool
Parameters:
i : t
val is_full : t -> bool
Parameters:
i : t
val d_singleton : t -> Mpa.Q.t option
Parameters:
i : t

type status =
| Empty
| Full
| Singleton of Mpa.Q.t
| Other

val status : t -> status
Parameters:
i : t


Membership test


val mem : Mpa.Q.t -> t -> bool
Parameters:
q : Mpa.Q.t
i : t
val is_sub : t -> t -> bool
Parameters:
i : t
j : t
val is_sub : t -> t -> bool
Parameters:
i : t
j : t
val is_disjoint : t -> t -> bool
Parameters:
i : t
j : t
val is_disjoint : t -> t -> bool
Parameters:
i : t
j : t
val inter : t -> t -> t
Parameters:
i : t
j : t
val inter : t -> t -> t
Parameters:
i : t
j : t
val complement : t -> t
Parameters:
i : t
val is_complementable : t -> bool
Parameters:
i : t


Interval Arithmetic


val add : t -> t -> t
Adding two intervals
Parameters:
i : t
j : t
val addl : t list -> t
Parameters:
?? : t list
val sub : t -> t -> t
Subtraction of intervals
Parameters:
i : t
j : t
val addq : Mpa.Q.t -> t -> t
Shifting by a rational.
Parameters:
q : Mpa.Q.t
i : t
val multq : Mpa.Q.t -> t -> t
Multiply by a rational.
Parameters:
q : Mpa.Q.t
i : t
val multq : Mpa.Q.t -> t -> t
Parameters:
q : Mpa.Q.t
i : t

Multiplying intervals.

val mult : t -> t -> t
Parameters:
i : t
j : t
val multl : t list -> t
Parameters:
?? : t list
val expt : int -> t -> t
Exponentiation of an interval.
Parameters:
n : int
i : t
val inv : t -> t
Inverse of an Interval
Parameters:
i : t
val div : t -> t -> t
Division of interverals.
Parameters:
i : t
j : t