Module Linexpr0


module Linexpr0: sig .. end
APRON Linear expressions of level 0

type t 

APRON Linear expressions of level 0
val make : int option -> t
Create a linear expression. Its representation is sparse if None is provided, dense of size size if Some size is provided.
val of_list : int option -> (Coeff.t * Dim.t) list -> Coeff.t option -> t
Combines Linexpr0.make and Linexpr0.set_list (see below)
val of_array : int option -> (Coeff.t * Dim.t) array -> Coeff.t option -> t
Combines Linexpr0.make and Linexpr0.set_array (see below)
val minimize : t -> unit
In case of sparse representation, remove zero coefficients
val copy : t -> t
Copy
val compare : t -> t -> int
Comparison with lexicographic ordering using Coeff.cmp, terminating by constant
val hash : t -> int
Hashing function
val get_size : t -> int
Get the size of the linear expression (which may be sparse or dense)
val get_cst : t -> Coeff.t
Get the constant
val get_coeff : t -> int -> Coeff.t
Get the coefficient corresponding to the dimension
val set_list : t -> (Coeff.t * Dim.t) list -> Coeff.t option -> unit
Set simultaneously a number of coefficients.

set_list expr [(c1,1); (c2,2)] (Some cst) assigns coefficients c1 to dimension 1, coefficient c2 to dimension 2, and coefficient cst to the constant. If (Some cst) is replaced by None, the constant coefficient is not assigned.

val set_array : t -> (Coeff.t * Dim.t) array -> Coeff.t option -> unit
Set simultaneously a number of coefficients, as set_list.
val set_cst : t -> Coeff.t -> unit
Set the constant
val set_coeff : t -> int -> Coeff.t -> unit
Set the coefficient corresponding to the dimension

Iter the function on the pairs coefficient/dimension of the linear expression
val iter : (Coeff.t -> Dim.t -> unit) -> t -> unit
val print : (Dim.t -> string) -> Format.formatter -> t -> unit
Print a linear expression, using a function converting from dimensions to names