Module Picasso.Drawable

Module of drawable abstractions

Types

type t

The type of drawable abstractions

type var = string

Drawing dimensions are given string identifiers

type point = float list

Multi-dimensional points

type range = float * float

Float ranges

Constructors

val of_box : Box.t Apron.Abstract1.t -> t

Drawable from an element of the Boxes abstract domain

val of_oct : Oct.t Apron.Abstract1.t -> t

Drawable from an element of the Octagon abstract domain

val of_pol : Polka.strict Polka.t Apron.Abstract1.t -> t

Drawable from an element of the Polyhedra abstract domain

val of_gens : Apron.Generator1.t list -> t

Builds the drawable space corresponding to the polyhedra defined by the list of generators.

val of_lcons : Apron.Lincons1.t list -> t

Builds the drawable space corresponding to the polyhedra defined by the conjunction of a list of constraints.

val of_hull : string list -> point list -> t

Same as of_gens, but build a convex hull from a list of a variables defining an environment and a list of points.

  • raises Invalid_arg

    if one points or more do not have as many dimension as the number of variables

val of_ranges : string list -> range list -> t

Builds a drawable hypercube from a list of variable and a list of ranges.

  • raises Invalid_argument

    if the range list and the variable list do not have the same length

Operations

val union : t -> t -> t

Merges two drawable into one drawable, where the elements will be drawn one after the other

val product : t -> t -> t

Merges two drawable into one drawable, where only the intersection of the elements will be drawn.