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;
friend bool operator==(const abstract0 &x, const abstract0 &y)
Whether x and y represent the same set.
Definition apxx_abstract0.hh:410
interval_array to_box(manager &m) const
Returns a bounding box for the set represented by the abstract element.
Definition apxx_abstract0.hh:476
abstract0 & operator+=(const abstract0 &y)
Replaces *this with the join of *this and the abstract element y.
Definition apxx_abstract0.hh:665
abstract0 & set(manager &m, const abstract0 &x)
Replaces *this with a copy of x.
Definition apxx_abstract0.hh:168
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
abstract0 & permute_dimensions(manager &m, const dimperm &d)
Permutes some dimensions in *this.
Definition apxx_abstract0.hh:1030
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
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
friend abstract0 & join(manager &m, abstract0 &dst, size_t size, const abstract0 *const x[])
Replaces dst with the join of all size abstract elements in x.
Definition apxx_abstract0.hh:570
void free(manager &m)
Destroys the abstract element using the given manager.
Definition apxx_abstract0.hh:90
friend bool operator<=(const abstract0 &x, const abstract0 &y)
Whether x is included within y (set-wise).
Definition apxx_abstract0.hh:422
abstract0 & join(manager &m, const abstract0 &y)
Replaces *this with the join of *this and the abstract element y.
Definition apxx_abstract0.hh:554
friend bool operator>(const abstract0 &x, const abstract0 &y)
Whether x strictly contains y (set-wise).
Definition apxx_abstract0.hh:434
friend bool operator<(const abstract0 &x, const abstract0 &y)
Whether x is strictly included within y (set-wise).
Definition apxx_abstract0.hh:439
static const abstract0 null
NULL abstract element, to be used only as default argument in assign and substitute.
Definition apxx_abstract0.hh:88
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
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
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
abstract0 & meet(manager &m, const abstract0 &y)
Replaces *this with the meet of *this and the abstract element y.
Definition apxx_abstract0.hh:512
abstract0 & set(manager &m, const tcons0_array &x, size_t intdim=AP_DIM_MAX, size_t realdim=AP_DIM_MAX)
Replaces *this with a conjunction of arbitrary constraints.
Definition apxx_abstract0.hh:232
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
abstract0 & approximate(manager &m, int algorithm)
Simplifies the abstract element, potentially loosing precision.
Definition apxx_abstract0.hh:264
friend class manager
Definition apxx_abstract0.hh:90
ap_abstract0_t * a
Pointer managed by APRON.
Definition apxx_abstract0.hh:82
bool is_eq(manager &m, const abstract0 &x) const
Whether *this and x represent the same set.
Definition apxx_abstract0.hh:367
manager get_manager() const
Returns the manager the abstract element was created with (with reference count incremented).
Definition apxx_abstract0.hh:329
ap_abstract0_t * get_ap_abstract0_t()
Returns a pointer to the internal APRON object stored in *this.
Definition apxx_abstract0.hh:1173
void dump(manager &m, FILE *stream=stdout) const
Raw printing to a C stream (mainly for debug purposes).
Definition apxx_abstract0.hh:287
abstract0 & remove_dimensions(manager &m, const dimchange &d)
Removes some dimensions from *this.
Definition apxx_abstract0.hh:1022
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
abstract0 & add_dimensions(manager &m, const dimchange &d, bool project=false)
Adds some dimensions to *this.
Definition apxx_abstract0.hh:1012
abstract0 & canonicalize(manager &m)
Puts the abstract element in canonical form (if such a notion exists).
Definition apxx_abstract0.hh:257
abstract0 & minimize(manager &m)
Minimizes the size of the representation, to save memory.
Definition apxx_abstract0.hh:250
bool is_leq(manager &m, const abstract0 &x) const
Whether *this is included in x (set-wise).
Definition apxx_abstract0.hh:374
abstract0 & operator=(const abstract0 &t)
Assigns a copy of t to *this.
Definition apxx_abstract0.hh:100
abstract0 & closure(manager &m)
Replaces *this with its topological closure.
Definition apxx_abstract0.hh:1152
friend bool operator>=(const abstract0 &x, const abstract0 &y)
Whether x contains y (set-wise).
Definition apxx_abstract0.hh:429
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
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
friend bool operator!=(const abstract0 &x, const abstract0 &y)
Whether x and y represent different sets.
Definition apxx_abstract0.hh:417
abstract0 & add_rays(manager &m, const generator0_array &y)
Adds some rays to *this (modified in-place).
Definition apxx_abstract0.hh:637
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
friend std::ostream & operator<<(std::ostream &os, const abstract0 &s)
Prints in constraint form.
Definition apxx_abstract0.hh:293
std::string * serialize(manager &m) const
Serializes an abstract element.
Definition apxx_abstract0.hh:305
size_t size(manager &m) const
Returns the (abstract) size of the abstract element.
Definition apxx_abstract0.hh:341
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
bool sat(manager &m, const lincons0 &l) const
Whether all points in *this satisfy a linear constraint.
Definition apxx_abstract0.hh:381
bool is_top(manager &m) const
Whether *this represents the full space.
Definition apxx_abstract0.hh:360
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
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
void print(manager &m, char **name_of_dim=NULL, FILE *stream=stdout) const
Pretty-printing to a C stream.
Definition apxx_abstract0.hh:275
~abstract0()
Destroys the abstract element.
Definition apxx_abstract0.hh:84
abstract0 & operator*=(const abstract0 &y)
Replaces *this with the meet of *this and the abstract element y.
Definition apxx_abstract0.hh:658
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
bool is_bottom(manager &m) const
Whether *this represents the empty set.
Definition apxx_abstract0.hh:353
Represents a dimension (i.e., variable by index) in an expression tree.
Definition apxx_texpr0.hh:33
Dimension change object (ap_dimchange_t wrapper).
Definition apxx_dimension.hh:102
Dimension permutation object (ap_dimperm_t wrapper).
Definition apxx_dimension.hh:292
Array of generators (ap_generator0_array_t wrapper).
Definition apxx_generator0.hh:214
array of interval(s).
Definition apxx_interval.hh:302
Interval (ap_interval_t wrapper).
Definition apxx_interval.hh:47
Array of linear constraints (ap_lincons0_array_t wrapper).
Definition apxx_lincons0.hh:341
Level 0 linear constraint (ap_lincons0_t wrapper).
Definition apxx_lincons0.hh:43
Level 0 linear expression (ap_linexpr0_t wrapper).
Definition apxx_linexpr0.hh:44
Array of arbitrary constraints (ap_tcons0_array_t wrapper).
Definition apxx_tcons0.hh:350
Level 0 arbitrary constraint (ap_tcons0_t wrapper).
Definition apxx_tcons0.hh:47
Level 0 arbitrary expression tree (ap_texpr0_t wrapper).
Definition apxx_texpr0.hh:92
Definition apxx_abstract0.hh:27
Empty interval or domain, to simplify initialisations and assignments.
Definition apxx_interval.hh:33
Full interval (]-oo,+oo[) or domain, to simplify initialisations and assignments.
Definition apxx_interval.hh:27
Inherited by most wrappers to map new and delete to malloc and free.
Definition apxx_scalar.hh:69