16 #ifndef __APXX_ABSTRACT0_HH 17 #define __APXX_ABSTRACT0_HH 20 #include "ap_abstract0.h" 286 void print(
manager& m,
char** name_of_dim=NULL, FILE* stream=stdout)
const;
bool is_bottom(manager &m) const
Whether *this represents the empty set.
Definition: apxx_abstract0.hh:353
abstract0 & add_rays(manager &m, const generator0_array &y)
Adds some rays to *this (modified in-place).
Definition: apxx_abstract0.hh:637
Dimension permutation object (ap_dimperm_t wrapper).
Definition: apxx_dimension.hh:292
abstract0 & fold(manager &m, size_t size, const ap_dim_t dim[])
Folds dimensions dim[0] to dim[size-1] in *this (modified in-place).
Definition: apxx_abstract0.hh:1093
friend bool operator<=(const abstract0 &x, const abstract0 &y)
Whether x is included within y (set-wise).
Definition: apxx_abstract0.hh:422
Dimension change object (ap_dimchange_t wrapper).
Definition: apxx_dimension.hh:102
Definition: apxx_abstract0.hh:27
abstract0 & set(manager &m, const abstract0 &x)
Replaces *this with a copy of x.
Definition: apxx_abstract0.hh:168
friend std::ostream & operator<<(std::ostream &os, const abstract0 &s)
Prints in constraint form.
Definition: apxx_abstract0.hh:293
abstract0 & assign(manager &m, ap_dim_t dim, const linexpr0 &l, const abstract0 &inter=null)
In-place assignment of linear expression.
Definition: apxx_abstract0.hh:700
void print(manager &m, char **name_of_dim=NULL, FILE *stream=stdout) const
Pretty-printing to a C stream.
Definition: apxx_abstract0.hh:275
friend bool operator>=(const abstract0 &x, const abstract0 &y)
Whether x contains y (set-wise).
Definition: apxx_abstract0.hh:429
bool is_dimension_unconstrained(manager &m, ap_dim_t dim) const
Whether the points in *this are unbounded in the given dimension.
Definition: apxx_abstract0.hh:402
friend bool operator==(const abstract0 &x, const abstract0 &y)
Whether x and y represent the same set.
Definition: apxx_abstract0.hh:410
std::string * serialize(manager &m) const
Serializes an abstract element.
Definition: apxx_abstract0.hh:305
ap_abstract0_t * a
Pointer managed by APRON.
Definition: apxx_abstract0.hh:82
array of interval(s).
Definition: apxx_interval.hh:302
abstract0 & expand(manager &m, ap_dim_t dim, size_t n=1)
Duplicates dimension dim into n copies in *this (modified in-place).
Definition: apxx_abstract0.hh:1077
Level 0 abstract value (ap_abstract0_t* wrapper).
Definition: apxx_abstract0.hh:78
Array of generators (ap_generator0_array_t wrapper).
Definition: apxx_generator0.hh:214
abstract0 & operator=(const interval_array &x)
Assigns a box to *this.
Definition: apxx_abstract0.hh:131
manager get_manager() const
Returns the manager the abstract element was created with (with reference count incremented).
Definition: apxx_abstract0.hh:329
friend bool operator<(const abstract0 &x, const abstract0 &y)
Whether x is strictly included within y (set-wise).
Definition: apxx_abstract0.hh:439
bool is_eq(manager &m, const abstract0 &x) const
Whether *this and x represent the same set.
Definition: apxx_abstract0.hh:367
Library manager (ap_manager_t wrapper).
Definition: apxx_manager.hh:137
abstract0 & forget(manager &m, ap_dim_t dim, bool project=false)
Forgets about the value of dimension dim in *this.
Definition: apxx_abstract0.hh:963
interval bound(manager &m, const linexpr0 &l) const
Returns some bounds for a linear expression evaluated in all points in the abstract element.
Definition: apxx_abstract0.hh:448
abstract0 & canonicalize(manager &m)
Puts the abstract element in canonical form (if such a notion exists).
Definition: apxx_abstract0.hh:257
bool sat(manager &m, const lincons0 &l) const
Whether all points in *this satisfy a linear constraint.
Definition: apxx_abstract0.hh:381
abstract0 & operator+=(const abstract0 &y)
Replaces *this with the join of *this and the abstract element y.
Definition: apxx_abstract0.hh:665
friend abstract0 & deserialize(manager &m, abstract0 &dst, const std::string &s, size_t *eaten)
Reconstruct an abstract element form a serialized byte-stream and put it into dst.
Definition: apxx_abstract0.hh:314
bool is_top(manager &m) const
Whether *this represents the full space.
Definition: apxx_abstract0.hh:360
ap_dimension_t get_dimension(manager &m) const
Returns the number of integer and real dimensions in the abstract element.
Definition: apxx_abstract0.hh:334
friend bool operator!=(const abstract0 &x, const abstract0 &y)
Whether x and y represent different sets.
Definition: apxx_abstract0.hh:417
abstract0 & approximate(manager &m, int algorithm)
Simplifies the abstract element, potentially loosing precision.
Definition: apxx_abstract0.hh:264
abstract0 & join(manager &m, const abstract0 &y)
Replaces *this with the join of *this and the abstract element y.
Definition: apxx_abstract0.hh:554
abstract0 & minimize(manager &m)
Minimizes the size of the representation, to save memory.
Definition: apxx_abstract0.hh:250
abstract0 & remove_dimensions(manager &m, const dimchange &d)
Removes some dimensions from *this.
Definition: apxx_abstract0.hh:1022
bool is_leq(manager &m, const abstract0 &x) const
Whether *this is included in x (set-wise).
Definition: apxx_abstract0.hh:374
abstract0 & substitute(manager &m, ap_dim_t dim, const linexpr0 &l, const abstract0 &inter=null)
In-place substitution (backward assignment) of linear expression.
Definition: apxx_abstract0.hh:831
void dump(manager &m, FILE *stream=stdout) const
Raw printing to a C stream (mainly for debug purposes).
Definition: apxx_abstract0.hh:287
friend void printdiff(manager &m, const abstract0 &x, const abstract0 &y, char **name_of_dim, FILE *stream)
Pretty-printing the difference between x and y to a C stream.
Definition: apxx_abstract0.hh:281
ap_abstract0_t * get_ap_abstract0_t()
Returns a pointer to the internal APRON object stored in *this.
Definition: apxx_abstract0.hh:1173
Level 0 arbitrary expression tree (ap_texpr0_t wrapper).
Definition: apxx_texpr0.hh:92
Empty interval or domain, to simplify initialisations and assignments.
Definition: apxx_interval.hh:33
generator0_array to_generator_array(manager &m) const
Returns a generator representation of (an over-approximation of) the set represented by the abstract ...
Definition: apxx_abstract0.hh:500
void free(manager &m)
Destroys the abstract element using the given manager.
Definition: apxx_abstract0.hh:90
~abstract0()
Destroys the abstract element.
Definition: apxx_abstract0.hh:84
Full interval (]-oo,+oo[) or domain, to simplify initialisations and assignments.
Definition: apxx_interval.hh:27
abstract0 & permute_dimensions(manager &m, const dimperm &d)
Permutes some dimensions in *this.
Definition: apxx_abstract0.hh:1030
lincons0_array to_lincons_array(manager &m) const
Returns a linear constraint representation of (an over-approximation of) the set represented by the a...
Definition: apxx_abstract0.hh:484
Level 0 arbitrary constraint (ap_tcons0_t wrapper).
Definition: apxx_tcons0.hh:47
tcons0_array to_tcons_array(manager &m) const
Returns a constraint representation of (an over-approximation of) the set represented by the abstract...
Definition: apxx_abstract0.hh:492
Interval (ap_interval_t wrapper).
Definition: apxx_interval.hh:47
Inherited by most wrappers to map new and delete to malloc and free.
Definition: apxx_scalar.hh:69
abstract0 & meet(manager &m, const abstract0 &y)
Replaces *this with the meet of *this and the abstract element y.
Definition: apxx_abstract0.hh:512
Array of linear constraints (ap_lincons0_array_t wrapper).
Definition: apxx_lincons0.hh:341
abstract0(ap_abstract0_t *x)
Internal use only. Wraps an abstract0 around the pointer x, taking ownership of the object.
Definition: apxx_abstract0.hh:28
friend bool operator>(const abstract0 &x, const abstract0 &y)
Whether x strictly contains y (set-wise).
Definition: apxx_abstract0.hh:434
size_t size(manager &m) const
Returns the (abstract) size of the abstract element.
Definition: apxx_abstract0.hh:341
abstract0 & operator *=(const abstract0 &y)
Replaces *this with the meet of *this and the abstract element y.
Definition: apxx_abstract0.hh:658
abstract0 & add_dimensions(manager &m, const dimchange &d, bool project=false)
Adds some dimensions to *this.
Definition: apxx_abstract0.hh:1012
friend abstract0 & widening(manager &m, abstract0 &dst, const abstract0 &x, const abstract0 &y)
Stores in dst the result of x widened with y.
Definition: apxx_abstract0.hh:1128
abstract0 & closure(manager &m)
Replaces *this with its topological closure.
Definition: apxx_abstract0.hh:1152
Array of arbitrary constraints (ap_tcons0_array_t wrapper).
Definition: apxx_tcons0.hh:350
Level 0 linear constraint (ap_lincons0_t wrapper).
Definition: apxx_lincons0.hh:43
Represents a dimension (i.e., variable by index) in an expression tree.
Definition: apxx_texpr0.hh:33
abstract0 & operator=(const abstract0 &t)
Assigns a copy of t to *this.
Definition: apxx_abstract0.hh:100
interval_array to_box(manager &m) const
Returns a bounding box for the set represented by the abstract element.
Definition: apxx_abstract0.hh:476
Level 0 linear expression (ap_linexpr0_t wrapper).
Definition: apxx_linexpr0.hh:44