module Constraint:Arithmetic constraints.sig
..end
Constraints have the form t1 {<=,>,=} t2 where t1,t2 are index expressions.
Author(s): Vincent Aravantinos
type
inequality =
| |
Le |
(* | Lower or Equal | *) |
| |
Gt |
(* | Greater Than | *) |
| |
Eq |
(* | Equal | *) |
type
t
exception UnsupportedConstraint
exception NonRegularBounds
val top : t
val constraint_atom : Indexes.t -> inequality -> Indexes.t -> t
val bounds_constraint : Indexes.t -> inequality -> Indexes.t -> t
NonRegularBounds
if the parameters cannot come from iteration bounds.val bounds_conjunction : t -> t -> t
val is_false : t -> bool
val is_equality : t -> bool
val to_string : ?parenthesized:bool -> t -> string
val print : t -> unit
val equal : t -> t -> bool
val always_greater : ?hyp:t -> Indexes.t -> Indexes.t -> bool
val always_different : ?hyp:t -> Indexes.t -> Indexes.t -> bool
val normalize_index : t -> idx:Indexes.t -> Indexes.t