module Fcl_expr:sig
..end
Arithmetic Expressions over Variables of Type Var.Fd.t
This module provides functions and operators to build arithmetic expressions.
type
agg_op =
| |
Pluse |
| |
Multe |
type
bin_op =
| |
Dive |
| |
Mode |
type
un_op =
| |
Abse |
type
var =
| |
Var of |
| |
Aux of |
type
t =
| |
Agg of |
|||
| |
Bin of |
|||
| |
Un of |
|||
| |
Inte of |
|||
| |
Fde of |
(* | Type of arithmetic expressions over variables of type | *) |
val fprint : Stdlib.out_channel -> t -> unit
fprint chan e
prints expression e
on channel chan
.
val eval : t -> int
eval e
returns the integer numerical value of a fully instantiated
expression e
. Raises Invalid_argument
if e
is not instantiated.
val min_of_expr : t -> int
val max_of_expr : t -> int
min_of_expr e
(resp. max_of_expr e
) returns the minimal (resp. maximal)
possible value of expression e
.
val min_max_of_expr : t -> int * int
min_max_of_expr e
is equivalent to (min_of_expr e, max_of_expr e)
.
val compare_expr : t -> t -> int
val compare_intexpr : int * t -> int * t -> int
val reduce : t -> t
reduce e
normalizes expression e
.
val constrain : t -> Fcl_linear.operator -> Fcl_cstr.t
constrain e op
returns the constraint e op = 0
and post
intermediate constraints.