module Apronexpr: sig
.. end
Types of numerical variables (distinction is exploited when
negating constraints)
type 'a
symbol = 'a Bdd.Env.symbol
= {
|
compare :'a -> 'a -> int ; |
|
marshal :'a -> string ; |
|
unmarshal :string -> 'a ; |
|
mutable print :Format.formatter -> 'a -> unit ; |
}
type
typ = [ `Int | `Real ]
type ('a, [> typ ])
typ_of_var = 'a -> ([> typ ] as 'b)
Expressions
Linear expressions
module Lin: sig
.. end
Polynomial expressions
module Poly: sig
.. end
Tree expressions
module Tree: sig
.. end
Conversions
val lin_of_poly : 'a symbol ->
'a Poly.t -> 'a Lin.t
val lin_of_tree : 'a symbol ->
'a Tree.t -> 'a Lin.t
val poly_of_tree : 'a symbol ->
'a Tree.t -> 'a Poly.t
val tree_of_lin : 'a Lin.t -> 'a Tree.t
val tree_of_poly : 'a Poly.t -> 'a Tree.t
General expressions and operations
type 'a
t =
type 'a
expr = 'a t
val var : 'a symbol ->
('a, [> typ ]) typ_of_var ->
'a -> 'a t
val zero : 'a t
val one : 'a t
val cst : Apron.Coeff.t -> 'a t
val add : 'a symbol ->
?typ:Apron.Texpr1.typ ->
?round:Apron.Texpr1.round ->
'a t -> 'a t -> 'a t
val sub : 'a symbol ->
?typ:Apron.Texpr1.typ ->
?round:Apron.Texpr1.round ->
'a t -> 'a t -> 'a t
val mul : 'a symbol ->
?typ:Apron.Texpr1.typ ->
?round:Apron.Texpr1.round ->
'a t -> 'a t -> 'a t
val div : 'a symbol ->
?typ:Apron.Texpr1.typ ->
?round:Apron.Texpr1.round ->
'a t -> 'a t -> 'a t
val gmod : 'a symbol ->
?typ:Apron.Texpr1.typ ->
?round:Apron.Texpr1.round ->
'a t -> 'a t -> 'a t
val negate : 'a t -> 'a t
val cast : ?typ:Apron.Texpr1.typ ->
?round:Apron.Texpr1.round ->
'a t -> 'a t
val sqrt : ?typ:Apron.Texpr1.typ ->
?round:Apron.Texpr1.round ->
'a t -> 'a t
val support : 'a symbol -> 'a t -> 'a PSette.t
val substitute_by_var : 'a symbol ->
'a t -> ('a, 'a) PMappe.t -> 'a t
val normalize : 'a symbol ->
'a t -> 'a t
val equal : 'a symbol ->
'a t -> 'a t -> bool
val hash : 'a symbol -> 'a t -> int
val compare : 'a symbol ->
'a t -> 'a t -> int
val normalize_as_constraint : 'a t -> 'a t
val is_dependent_on_integer_only : ('a, [> typ ]) typ_of_var ->
'a t -> bool
val typ_of_expr : ('a, [> typ ]) typ_of_var ->
'a t -> [ `Int | `Real ]
val print : 'a symbol ->
Format.formatter -> 'a t -> unit
val print_typ : Format.formatter -> [> typ ] -> unit
val of_linexpr0 : 'a symbol ->
Apron.Environment.t -> Apron.Linexpr0.t -> 'a t
val of_linexpr1 : 'a symbol -> Apron.Linexpr1.t -> 'a t
val to_linexpr0 : 'a symbol ->
Apron.Environment.t -> 'a t -> Apron.Linexpr0.t
val to_linexpr1 : 'a symbol ->
Apron.Environment.t -> 'a t -> Apron.Linexpr1.t
val of_texpr0 : 'a symbol ->
Apron.Environment.t -> Apron.Texpr0.t -> 'a t
val of_texpr1 : 'a symbol -> Apron.Texpr1.t -> 'a t
val to_texpr0 : 'a symbol ->
Apron.Environment.t -> 'a t -> Apron.Texpr0.t
val to_texpr1 : 'a symbol ->
Apron.Environment.t -> 'a t -> Apron.Texpr1.t
val to_apron0 : 'a symbol ->
Apron.Environment.t ->
'a t ->
[ `Lin of Apron.Linexpr0.t | `Tree of Apron.Texpr0.t ]
val to_apron1 : 'a symbol ->
Apron.Environment.t ->
'a t ->
[ `Lin of Apron.Linexpr1.t | `Tree of Apron.Texpr1.t ]
Constraints
module Condition: sig
.. end