APRONXX
0.9.12
|
Level 1 abstract value (ap_abstract1_t wrapper). More...
#include <apxx_abstract1.hh>
Inherits apron::use_malloc.
Public Member Functions | |
Constructors | |
abstract1 (manager &m, const environment &e, top x) | |
Creates an abstract element representing the whole space. More... | |
abstract1 (manager &m, const environment &e, bottom x) | |
Creates an abstract element representing the empty set. More... | |
abstract1 (manager &m, const abstract1 &t) | |
Creates a (deep) copy of the abstract element. More... | |
abstract1 (manager &m, const environment &e, const abstract0 &t) | |
Creates a (deep) copy of the abstract element and associates an environment (reference count incremented). More... | |
abstract1 (manager &m, const environment &e, const var v[], const interval_array &x) | |
Creates an abstract element from a box. More... | |
abstract1 (manager &m, const environment &e, const std::vector< var > &v, const interval_array &x) | |
Creates an abstract element from a box. More... | |
abstract1 (manager &m, const lincons1_array &x) | |
Creates an abstract element from a conjunction of linear constraints. More... | |
abstract1 (manager &m, const tcons1_array &x) | |
Creates an abstract element from a conjunction of arbitrary constraints. More... | |
abstract1 (const abstract1 &t) | |
Creates a (deep) copy of the abstract element. More... | |
Destructors | |
~abstract1 () | |
Destroys the abstract element. More... | |
void | free (manager &m) |
Destroys the abstract element using the given manager. More... | |
Copies and conversions to abstract elements | |
abstract1 & | operator= (const abstract1 &t) |
Assigns a copy of t to *this. More... | |
abstract1 & | operator= (top t) |
Assigns the full space to *this. More... | |
abstract1 & | operator= (bottom t) |
Assigns the empty set to *this. More... | |
abstract1 & | operator= (const interval_array &x) |
Assigns a box to *this. More... | |
abstract1 & | operator= (const lincons1_array &x) |
Assigns a conjunction of linear constraints to *this. More... | |
abstract1 & | operator= (const tcons1_array &x) |
Assigns a conjunction of arbitrary constraints to *this. More... | |
abstract1 & | set (manager &m, const abstract1 &x) |
Replaces *this with a copy of x. More... | |
abstract1 & | set (manager &m, top t) |
Replaces *this with the full space. More... | |
abstract1 & | set (manager &m, const environment &e, top t) |
Replaces *this with the full space. More... | |
abstract1 & | set (manager &m, bottom t) |
Replaces *this with the empty set. More... | |
abstract1 & | set (manager &m, const environment &e, bottom t) |
Replaces *this with the empty set. More... | |
abstract1 & | set (manager &m, const interval_array &x) |
Replaces *this with a box. More... | |
abstract1 & | set (manager &m, const environment &e, const var v[], const interval_array &x) |
Replaces *this with a box. More... | |
abstract1 & | set (manager &m, const environment &e, const std::vector< var > &v, const interval_array &x) |
Replaces *this with a box. More... | |
abstract1 & | set (manager &m, const lincons1_array &x) |
Replaces *this with a conjunction of linear constraints. More... | |
abstract1 & | set (manager &m, const tcons1_array &x) |
Replaces *this with a conjunction of arbitrary constraints. More... | |
Control of internal representation | |
abstract1 & | minimize (manager &m) |
Minimizes the size of the representation, to save memory. More... | |
abstract1 & | canonicalize (manager &m) |
Puts the abstract element in canonical form (if such a notion exists). More... | |
abstract1 & | approximate (manager &m, int algorithm) |
Simplifies the abstract element, potentially loosing precision. More... | |
Access | |
manager | get_manager () const |
Returns the manager the abstract element was created with (with reference count incremented). More... | |
environment | get_environment () const |
Returns the environment of the abstract element (with reference count incremented). More... | |
abstract0 & | get_abstract0 () |
Returns a (modifiable) reference to the underlying abstract0. More... | |
const abstract0 & | get_abstract0 () const |
Returns a reference to the underlying abstract0. More... | |
size_t | size (manager &m) const |
Returns the (abstract) size of the abstract element. More... | |
Property extraction | |
interval | bound (manager &m, const linexpr1 &l) const |
Returns some bounds for a linear expression evaluated in all points in the abstract element. More... | |
interval | bound (manager &m, const texpr1 &l) const |
Returns some bounds for an arbitrary expression evaluated in all points in the abstract element. More... | |
interval | bound (manager &m, const var &v) const |
Returns some bounds for the given variable on all points in the abstract element. More... | |
interval_array | to_box (manager &m) const |
Returns a bounding box for the set represented by the abstract element. More... | |
generator1_array | to_generator_array (manager &m) const |
Returns a generator representation of (an over-approximation of) the set represented by the abstract element. More... | |
lincons1_array | to_lincons_array (manager &m) const |
Returns a linear constraint representation of (an over-approximation of) the set represented by the abstract element. More... | |
tcons1_array | to_tcons_array (manager &m) const |
Returns a constraint representation of (an over-approximation of) the set represented by the abstract element. More... | |
C API compatibility | |
ap_abstract1_t * | get_ap_abstract1_t () |
Returns a pointer to the internal APRON object stored in *this. More... | |
const ap_abstract1_t * | get_ap_abstract1_t () const |
Returns a pointer to the internal APRON object stored in *this. More... | |
![]() | |
void * | operator new (size_t sz) |
void * | operator new[] (size_t sz) |
void | operator delete (void *p) |
void | operator delete[] (void *p) |
Protected Member Functions | |
abstract1 (ap_abstract1_t x) | |
Internal use only. Shallow copy of structure. More... | |
Protected Attributes | |
ap_abstract1_t | a |
Structure managed by APRON. More... | |
Static Protected Attributes | |
static const abstract1 | null |
NULL abstract element, to be used only as default argument in assign and substitute. More... | |
Friends | |
Widening | |
abstract1 & | widening (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y) |
Stores in dst the result of x widened with y. More... | |
abstract1 & | widening (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y, const lincons1_array &l) |
Stores in dst the result of x widened with y, using some widening thresholds. More... | |
Printing | |
void | printdiff (manager &m, const abstract1 &x, const abstract1 &y, FILE *stream) |
Pretty-printing the difference between x and y to a C stream. More... | |
std::ostream & | operator<< (std::ostream &os, const abstract1 &s) |
Prints in constraint form. More... | |
void | print (manager &m, FILE *stream=stdout) const |
Pretty-printing to a C stream. More... | |
void | dump (manager &m, FILE *stream=stdout) const |
Raw printing to a C stream (mainly for debug purposes). More... | |
Serialisation | |
abstract1 & | deserialize (manager &m, abstract1 &dst, const std::string &s, size_t *eaten) |
Reconstruct an abstract element form a serialized byte-stream and put it into dst. More... | |
std::string * | serialize (manager &m) const |
Serializes an abstract element. More... | |
Predicates | |
bool | operator== (const abstract1 &x, const abstract1 &y) |
Whether x and y represent the same set. More... | |
bool | operator!= (const abstract1 &x, const abstract1 &y) |
Whether x and y represent different sets. More... | |
bool | operator<= (const abstract1 &x, const abstract1 &y) |
Whether x is included within y (set-wise). More... | |
bool | operator>= (const abstract1 &x, const abstract1 &y) |
Whether x contains y (set-wise). More... | |
bool | operator> (const abstract1 &x, const abstract1 &y) |
Whether x strictly contains y (set-wise). More... | |
bool | operator< (const abstract1 &x, const abstract1 &y) |
Whether x is strictly included within y (set-wise). More... | |
bool | is_bottom (manager &m) const |
Whether *this represents the empty set. More... | |
bool | is_top (manager &m) const |
Whether *this represents the full space. More... | |
bool | is_eq (manager &m, const abstract1 &x) const |
Whether *this and x represent the same set. More... | |
bool | is_leq (manager &m, const abstract1 &x) const |
Whether *this is included in x (set-wise). More... | |
bool | sat (manager &m, const lincons1 &l) const |
Whether all points in *this satisfy a linear constraint. More... | |
bool | sat (manager &m, const tcons1 &l) const |
Whether all points in *this satisfy an arbitrary constraint. More... | |
bool | sat (manager &m, const var &v, const interval &i) const |
Whether the component v of all points in *this is included in the given interval. More... | |
bool | is_variable_unconstrained (manager &m, const var &v) const |
Whether the points in *this are unbounded in the given variable. More... | |
Meet and unification | |
abstract1 & | meet (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y) |
Replaces dst with the meet of x and y. More... | |
abstract1 & | unify (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y) |
Replaces dst with the meet of x and y. More... | |
abstract1 & | meet (manager &m, abstract1 &dst, const std::vector< const abstract1 * > &x) |
Replaces dst with the meet of all abstract elements in x. More... | |
abstract1 & | meet (manager &m, abstract1 &dst, size_t size, const abstract1 *const x[]) |
Replaces dst with the meet of all size abstract elements in x. More... | |
abstract1 & | meet (manager &m, abstract1 &dst, const abstract1 &x, const lincons1_array &y) |
Replaces dst with the meet of x and some linear constraints. More... | |
abstract1 & | meet (manager &m, abstract1 &dst, const abstract1 &x, const tcons1_array &y) |
Replaces dst with the meet of x and some arbitrary constraints. More... | |
abstract1 & | meet (manager &m, const abstract1 &y) |
Replaces *this with the meet of *this and the abstract element y. More... | |
abstract1 & | unify (manager &m, const abstract1 &y) |
Replaces *this with the meet of *this and the abstract element y. More... | |
abstract1 & | meet (manager &m, const lincons1_array &y) |
Adds some linear constraints to *this (modified in-place). More... | |
abstract1 & | meet (manager &m, const tcons1_array &y) |
Adds some arbitrary constraints to *this (modified in-place). More... | |
abstract1 & | operator *= (const abstract1 &y) |
Replaces *this with the meet of *this and the abstract element y. More... | |
abstract1 & | operator *= (const lincons1_array &y) |
Adds some linear constraints to *this (modified in-place). More... | |
abstract1 & | operator *= (const tcons1_array &y) |
Adds some arbitrary constraints to *this (modified in-place). More... | |
Join | |
abstract1 & | join (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y) |
Replaces dst with the join of x and y. More... | |
abstract1 & | join (manager &m, abstract1 &dst, const std::vector< const abstract1 * > &x) |
Replaces dst with the join of all abstract elements in x. More... | |
abstract1 & | join (manager &m, abstract1 &dst, size_t size, const abstract1 *const x[]) |
Replaces dst with the join of all size abstract elements in x. More... | |
abstract1 & | add_rays (manager &m, abstract1 &dst, const abstract1 &x, const generator1_array &y) |
Replaces dst with x with some rays added. More... | |
abstract1 & | join (manager &m, const abstract1 &y) |
Replaces *this with the join of *this and the abstract element y. More... | |
abstract1 & | add_rays (manager &m, const generator1_array &y) |
Adds some rays to *this (modified in-place). More... | |
abstract1 & | operator+= (const abstract1 &y) |
Replaces *this with the join of *this and the abstract element y. More... | |
abstract1 & | operator+= (const generator1_array &y) |
Adds some rays to *this (modified in-place). More... | |
Assignment | |
abstract1 & | assign (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const linexpr1 &l, const abstract1 &inter) |
Assignment of linear expression. More... | |
abstract1 & | assign (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], const linexpr1 *const l[], const abstract1 &inter) |
Parallel assignment of linear expressions. More... | |
abstract1 & | assign (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, const std::vector< const linexpr1 * > &l, const abstract1 &inter) |
Parallel assignment of linear expressions. More... | |
abstract1 & | assign (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const texpr1 &l, const abstract1 &inter) |
Assignment of arbitrary expression. More... | |
abstract1 & | assign (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], const texpr1 *const l[], const abstract1 &inter) |
Parallel assignment of arbitrary expressions. More... | |
abstract1 & | assign (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, const std::vector< const texpr1 * > &l, const abstract1 &inter) |
Parallel assignment of arbitrary expressions. More... | |
abstract1 & | assign (manager &m, const var &v, const linexpr1 &l, const abstract1 &inter=null) |
In-place assignment of linear expression. More... | |
abstract1 & | assign (manager &m, size_t size, const var v[], const linexpr1 *const l[], const abstract1 &inter=null) |
In-place parallel assignment of linear expressions. More... | |
abstract1 & | assign (manager &m, const std::vector< var > &v, const std::vector< const linexpr1 * > &l, const abstract1 &inter=null) |
In-place parallel assignment of linear expressions. More... | |
abstract1 & | assign (manager &m, const var &v, const texpr1 &l, const abstract1 &inter=null) |
In-place assignment of arbitrary expression. More... | |
abstract1 & | assign (manager &m, size_t size, const var v[], const texpr1 *const l[], const abstract1 &inter=null) |
In-place parallel assignment of arbitrary expressions. More... | |
abstract1 & | assign (manager &m, const std::vector< var > &v, const std::vector< const texpr1 * > &l, const abstract1 &inter=null) |
In-place parallel assignment of arbitrary expressions. More... | |
Substitution | |
abstract1 & | substitute (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const linexpr1 &l, const abstract1 &inter) |
Substitution (backward assignment) of linear expression. More... | |
abstract1 & | substitute (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], const linexpr1 *const l[], const abstract1 &inter) |
Parallel substitution (backward assignment) of linear expressions. More... | |
abstract1 & | substitute (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, const std::vector< const linexpr1 * > &l, const abstract1 &inter) |
Parallel substitution (backward assignment) of linear expressions. More... | |
abstract1 & | substitute (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const texpr1 &l, const abstract1 &inter) |
Substitution (backward assignment) of arbitrary expression. More... | |
abstract1 & | substitute (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], const texpr1 *const l[], const abstract1 &inter) |
Parallel substitution (backward assignment) of arbitrary expressions. More... | |
abstract1 & | substitute (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, const std::vector< const texpr1 * > &l, const abstract1 &inter) |
Parallel substitution (backward assignment) of arbitrary expressions. More... | |
abstract1 & | substitute (manager &m, const var &v, const linexpr1 &l, const abstract1 &inter=null) |
In-place substitution (backward assignment) of linear expression. More... | |
abstract1 & | substitute (manager &m, size_t size, const var v[], const linexpr1 *const l[], const abstract1 &inter=null) |
In-place parallel substitution (backward assignment) of linear expressions. More... | |
abstract1 & | substitute (manager &m, const std::vector< var > &v, const std::vector< const linexpr1 * > &l, const abstract1 &inter=null) |
In-place parallel substitution (backward assignment) of linear expressions. More... | |
abstract1 & | substitute (manager &m, const var &v, const texpr1 &l, const abstract1 &inter=null) |
In-place substitution (backward assignment) of arbitrary expression. More... | |
abstract1 & | substitute (manager &m, size_t size, const var v[], const texpr1 *const l[], const abstract1 &inter=null) |
In-place parallel substitution (backward assignment) of arbitrary expressions. More... | |
abstract1 & | substitute (manager &m, const std::vector< var > &v, const std::vector< const texpr1 * > &l, const abstract1 &inter=null) |
In-place parallel substitution (backward assignment) of arbitrary expressions. More... | |
Projection, forget | |
abstract1 & | forget (manager &m, abstract1 &dst, const abstract1 &src, const var &v, bool project) |
Stores in dst the result of forgetting the value of variable v in src. More... | |
abstract1 & | forget (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], bool project) |
Stores in dst the result of forgetting the value of variables v[0] to v[size-1] in src. More... | |
abstract1 & | forget (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, bool project) |
Stores in dst the result of forgetting the value of all the variables in v in src. More... | |
abstract1 & | forget (manager &m, const var &v, bool project=false) |
Forgets about the value of variable v in *this. More... | |
abstract1 & | forget (manager &m, size_t size, const var v[], bool project=false) |
Forgets about the value of variables v[0] to v[size-1] in *this. More... | |
abstract1 & | forget (manager &m, const std::vector< var > &v, bool project=false) |
Forgets about the value of all the variables in v in *this. More... | |
Change of environment | |
abstract1 & | change_environment (manager &m, abstract1 &dst, const abstract1 &src, const environment &e, bool project) |
Replaces dst with src and changes its environment. More... | |
abstract1 & | minimize_environment (manager &m, abstract1 &dst, const abstract1 &src) |
Replaces dst with src and removes the variables that are unconstrained. More... | |
abstract1 & | rename (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var oldv[], const var newv[]) |
Replaces dst with src and renames oldv[i] into newv[i]. More... | |
abstract1 & | rename (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &oldv, const std::vector< var > &newv) |
Replaces dst with src and renames oldv[i] into newv[i]. More... | |
abstract1 & | change_environment (manager &m, const environment &e, bool project=false) |
Modifies the environment of *this. More... | |
abstract1 & | minimize_environment (manager &m) |
Removes from *this the variables that are unconstrained. More... | |
abstract1 & | rename (manager &m, size_t size, const var oldv[], const var newv[]) |
Renames oldv[i] into newv[i] in *this. More... | |
abstract1 & | rename (manager &m, const std::vector< var > &oldv, const std::vector< var > &newv) |
Renames oldv[i] into newv[i] in *this. More... | |
Expansion and folding | |
abstract1 & | expand (manager &m, abstract1 &dst, const abstract1 &src, const var &v, size_t size, const var vv[]) |
Replaces dst with a copy of src and duplicates variable v into size copies. More... | |
abstract1 & | expand (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const std::vector< var > &vv) |
Replaces dst with a copy of src and duplicates variable v. More... | |
abstract1 & | fold (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[]) |
Replaces dst with a copy of src and folds variables v[0] to v[size-1]. More... | |
abstract1 & | fold (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v) |
Replaces dst with a copy of src and folds all variables in v. More... | |
abstract1 & | expand (manager &m, const var &v, size_t size, const var vv[]) |
Duplicates variable v into size copies in *this (modified in-place). More... | |
abstract1 & | expand (manager &m, const var &v, const std::vector< var > &vv) |
Duplicates variable v in *this (modified in-place). More... | |
abstract1 & | fold (manager &m, size_t size, const var v[]) |
Folds variables v[0] to v[size-1] in *this (modified in-place). More... | |
abstract1 & | fold (manager &m, const std::vector< var > &v) |
Folds all variables v in *this (modified in-place). More... | |
Closure | |
abstract1 & | closure (manager &m, abstract1 &dst, const abstract1 &src) |
Stores in dst the topological closure of src. More... | |
abstract1 & | closure (manager &m) |
Replaces *this with its topological closure. More... | |
Level 1 abstract value (ap_abstract1_t wrapper).
Level 1 version of abstract values. Variable names (var) are used in place of dimensions (ap_dim_t). Internally, an abstract1 wraps together an abstract0 (memory managed) and an environment (holding a reference count).
|
inlineprotected |
Internal use only. Shallow copy of structure.
|
inline |
Creates an abstract element representing the whole space.
|
inline |
Creates an abstract element representing the empty set.
Creates a (deep) copy of the abstract element.
|
inline |
Creates a (deep) copy of the abstract element and associates an environment (reference count incremented).
|
inline |
Creates an abstract element from a box.
x[i] is the bound for the variable v[i]. Variables not in v have unconstrained bounds.
|
inline |
Creates an abstract element from a box.
x[i] is the bound for all the variables in v. Variables not in v have unconstrained bounds.
|
inline |
Creates an abstract element from a conjunction of linear constraints.
|
inline |
Creates an abstract element from a conjunction of arbitrary constraints.
|
inline |
Creates a (deep) copy of the abstract element.
Implicitly uses the manager used to create *this.
|
inline |
Destroys the abstract element.
Implicitly uses the manager used to create *this.
|
inline |
Adds some rays to *this (modified in-place).
y
can only contain rays and lines, not vertexes.Simplifies the abstract element, potentially loosing precision.
|
inline |
In-place assignment of linear expression.
*this is modified in-place to reflect the effect of assigning l to variable v. If inter is specified, *this is then intersected with it.
|
inline |
In-place parallel assignment of linear expressions.
*this is modified in-place to reflect the effect of assigning l[i] to variable v[i], for i from 0 to size-1. Assignments are performed in parallel. If inter is specified, *this is then intersected with it.
|
inline |
In-place parallel assignment of linear expressions.
*this is modified in-place to reflect the effect of assigning l[i] to variable v[i]. Assignments are performed in parallel. If inter is specified, *this is then intersected with it.
std::invalid_argument | if the vectors have different size. |
|
inline |
In-place assignment of arbitrary expression.
*this is modified in-place to reflect the effect of assigning l to variable v. If inter is specified, *this is then intersected with it.
|
inline |
In-place parallel assignment of arbitrary expressions.
*this is modified in-place to reflect the effect of assigning l[i] to variable v[i], for i from 0 to size-1. Assignments are performed in parallel. If inter is specified, *this is then intersected with it.
|
inline |
In-place parallel assignment of arbitrary expressions.
*this is modified in-place to reflect the effect of assigning l[i] to variable v[i]. Assignments are performed in parallel. If inter is specified, *this is then intersected with it.
std::invalid_argument | if the vectors have different size. |
Returns some bounds for a linear expression evaluated in all points in the abstract element.
Returns some bounds for an arbitrary expression evaluated in all points in the abstract element.
Returns some bounds for the given variable on all points in the abstract element.
Puts the abstract element in canonical form (if such a notion exists).
|
inline |
Modifies the environment of *this.
project
whether new variables are initialized to 0 (if true), or undefined (if false).Replaces *this with its topological closure.
|
inline |
Raw printing to a C stream (mainly for debug purposes).
Duplicates variable v into size copies in *this (modified in-place).
New variables are named vv[0] to vv[size-1].
Duplicates variable v in *this (modified in-place).
The i-th new variable is named vv[i].
Folds variables v[0] to v[size-1] in *this (modified in-place).
After folding, only v[0] is kept and other variables are removed.
Folds all variables v in *this (modified in-place).
After folding, only v[0] is kept and other variables are removed.
Forgets about the value of variable v in *this.
project
whether to reset the variable to 0 (if true), or leave it undefined (if false).
|
inline |
Forgets about the value of variables v[0] to v[size-1] in *this.
project
whether to reset the variables to 0 (if true), or it them undefined (if false).
|
inline |
Forgets about the value of all the variables in v in *this.
project
whether to reset the variables to 0 (if true), or leave them undefined (if false).
|
inline |
Destroys the abstract element using the given manager.
The abstract element cannot be used after being freed. However, the standard destructor can be safely be called (resulting in a no-op).
|
inline |
Returns a (modifiable) reference to the underlying abstract0.
|
inline |
Returns a reference to the underlying abstract0.
|
inline |
Returns a pointer to the internal APRON object stored in *this.
|
inline |
Returns a pointer to the internal APRON object stored in *this.
|
inline |
Returns the environment of the abstract element (with reference count incremented).
|
inline |
Returns the manager the abstract element was created with (with reference count incremented).
|
inline |
Whether *this represents the empty set.
Whether *this and x represent the same set.
Whether *this is included in x (set-wise).
|
inline |
Whether *this represents the full space.
Whether the points in *this are unbounded in the given variable.
Replaces *this with the join of *this and the abstract element y.
Replaces *this with the meet of *this and the abstract element y.
|
inline |
Adds some linear constraints to *this (modified in-place).
|
inline |
Adds some arbitrary constraints to *this (modified in-place).
Minimizes the size of the representation, to save memory.
Removes from *this the variables that are unconstrained.
Replaces *this with the meet of *this and the abstract element y.
Implicitly uses the manager used to create *this.
|
inline |
Adds some linear constraints to *this (modified in-place).
Implicitly uses the manager used to create *this.
|
inline |
Adds some arbitrary constraints to *this (modified in-place).
Implicitly uses the manager used to create *this.
Replaces *this with the join of *this and the abstract element y.
Implicitly uses the manager used to create *this.
|
inline |
Adds some rays to *this (modified in-place).
Implicitly uses the manager used to create *this.
y
can only contain rays and lines, not vertexes.Assigns a copy of t to *this.
Implicitly uses the manager used to create *this.
Assigns the full space to *this.
Implicitly uses the manager used to create *this.
Assigns the empty set to *this.
Implicitly uses the manager used to create *this. Does not change the environment.
|
inline |
Assigns a box to *this.
Implicitly uses the manager used to create *this. Does not change the environment.
std::invalid_argument | if the array has insufficient size. |
|
inline |
Assigns a conjunction of linear constraints to *this.
Implicitly uses the manager used to create *this. Does not change the environment.
|
inline |
Assigns a conjunction of arbitrary constraints to *this.
Implicitly uses the manager used to create *this.
|
inline |
Pretty-printing to a C stream.
|
inline |
Renames oldv[i] into newv[i] in *this.
|
inline |
Renames oldv[i] into newv[i] in *this.
Whether all points in *this satisfy a linear constraint.
Whether all points in *this satisfy an arbitrary constraint.
Whether the component v of all points in *this is included in the given interval.
|
inline |
Serializes an abstract element.
The string can be safely stored to disk and reloaded later or transmitted across a network. The format is library-specific but is generally a machine-readable byte-stream.
Replaces *this with a copy of x.
Replaces *this with the full space.
Does not change the environment.
|
inline |
Replaces *this with the full space.
Replaces *this with the empty set.
Does not change the environment.
|
inline |
Replaces *this with the empty set.
|
inline |
Replaces *this with a box.
Does not change the environment.
|
inline |
Replaces *this with a box.
|
inline |
Replaces *this with a box.
|
inline |
Replaces *this with a conjunction of linear constraints.
|
inline |
Replaces *this with a conjunction of arbitrary constraints.
|
inline |
Returns the (abstract) size of the abstract element.
The unit in which size is computed is library-specific. It is guaranteed to be the same as the unit for the max_object_size
field of the ap_funopt_t structure.
|
inline |
In-place substitution (backward assignment) of linear expression.
*this is modified in-place to reflect the effect of substituting l to variable v. If inter is specified, *this is then intersected with it.
|
inline |
In-place parallel substitution (backward assignment) of linear expressions.
*this is modified in-place to reflect the effect of substituting l[i] to variable v[i], for i from 0 to size-1. Substitutions are performed in parallel. If inter is specified, *this is then intersected with it.
|
inline |
In-place parallel substitution (backward assignment) of linear expressions.
*this is modified in-place to reflect the effect of substituting l[i] to variable v[i]. Substitutions are performed in parallel. If inter is specified, *this is then intersected with it.
std::invalid_argument | if the vectors have different size. |
|
inline |
In-place substitution (backward assignment) of arbitrary expression.
*this is modified in-place to reflect the effect of substituting l to variable v. If inter is specified, *this is then intersected with it.
|
inline |
In-place parallel substitution (backward assignment) of arbitrary expressions.
*this is modified in-place to reflect the effect of substituting l[i] to variable v[i], for i from 0 to size-1. Substitutions are performed in parallel. If inter is specified, *this is then intersected with it.
|
inline |
In-place parallel substitution (backward assignment) of arbitrary expressions.
*this is modified in-place to reflect the effect of substituting l[i] to variable v[i]. Substitutions are performed in parallel. If inter is specified, *this is then intersected with it.
std::invalid_argument | if the vectors have different size. |
|
inline |
Returns a bounding box for the set represented by the abstract element.
|
inline |
Returns a generator representation of (an over-approximation of) the set represented by the abstract element.
|
inline |
Returns a linear constraint representation of (an over-approximation of) the set represented by the abstract element.
|
inline |
Returns a constraint representation of (an over-approximation of) the set represented by the abstract element.
Replaces *this with the meet of *this and the abstract element y.
*this and y can have different environment. They are first embedded into the least common environment before the meet is computed.
|
friend |
Replaces dst with x with some rays added.
y
can only contain rays and lines, not vertexes.
|
friend |
Assignment of linear expression.
dst is replaced with the effect of assigning l to variable v in src. If inter is specified, dst is then intersected with it.
|
friend |
Parallel assignment of linear expressions.
dst is replaced with the effect of assigning l[i] to variable v[i] in src, for i from 0 to size-1. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.
|
friend |
Parallel assignment of linear expressions.
dst is replaced with the effect of assigning l[i] to variable v[i] in src. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.
std::invalid_argument | if the vectors have different size. |
|
friend |
Assignment of arbitrary expression.
dst is replaced with the effect of assigning l to variable v in src. If inter is specified, dst is then intersected with it.
|
friend |
Parallel assignment of arbitrary expressions.
dst is replaced with the effect of assigning l[i] to variable v[i] in src, for i from 0 to size-1. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.
|
friend |
Parallel assignment of arbitrary expressions.
dst is replaced with the effect of assigning l[i] to variable v[i] in src. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.
std::invalid_argument | if the vectors have different size. |
|
friend |
Replaces dst with src and changes its environment.
project
whether new variables are initialized to 0 (if true), or undefined (if false).Stores in dst the topological closure of src.
|
friend |
Reconstruct an abstract element form a serialized byte-stream and put it into dst.
The managers used to serialized and deserialize need not be the same, but they must have been created using the same library and with the same arguments.
eaten
, if not NULL, will be set to the actual number of bytes consumed from the string.
|
friend |
Replaces dst with a copy of src and duplicates variable v into size copies.
New variables are named vv[0] to vv[size-1].
|
friend |
Replaces dst with a copy of src and duplicates variable v.
The i-th new variables is named vv[i].
|
friend |
Replaces dst with a copy of src and folds variables v[0] to v[size-1].
After folding, only v[0] is kept and other variables are removed.
|
friend |
Replaces dst with a copy of src and folds all variables in v.
After folding, only v[0] is kept and other variables are removed.
|
friend |
Stores in dst the result of forgetting the value of variable v in src.
project
if true, resets the variable to 0 (if true).
|
friend |
Stores in dst the result of forgetting the value of variables v[0] to v[size-1] in src.
project
whether to reset the variables to 0 (if true), or leave them undefined (if false).
|
friend |
Stores in dst the result of forgetting the value of all the variables in v in src.
project
whether to reset the variables to 0 (if true), or leave them undefined (if false).Replaces dst with the join of x and y.
Replaces dst with the join of all abstract elements in x.
Replaces dst with the join of all size abstract elements in x.
Replaces dst with the meet of x and y.
Replaces dst with the meet of all abstract elements in x.
Replaces dst with the meet of all size abstract elements in x.
|
friend |
Replaces dst with the meet of x and some linear constraints.
|
friend |
Replaces dst with the meet of x and some arbitrary constraints.
Replaces dst with src and removes the variables that are unconstrained.
Whether x and y represent different sets.
The manager for the left argument is used implicitly.
Whether x is strictly included within y (set-wise).
The manager for the left argument is used implicitly.
|
friend |
Prints in constraint form.
Whether x is included within y (set-wise).
The manager for the left argument is used implicitly.
Whether x and y represent the same set.
The manager for the left argument is used implicitly.
Whether x strictly contains y (set-wise).
The manager for the left argument is used implicitly.
Whether x contains y (set-wise).
The manager for the left argument is used implicitly.
|
friend |
Pretty-printing the difference between x and y to a C stream.
|
friend |
Replaces dst with src and renames oldv[i] into newv[i].
|
friend |
Replaces dst with src and renames oldv[i] into newv[i].
|
friend |
Substitution (backward assignment) of linear expression.
dst is replaced with the effect of substituting l to variable v in src. If inter is specified, dst is then intersected with it.
|
friend |
Parallel substitution (backward assignment) of linear expressions.
dst is replaced with the effect of substituting l[i] to variable v[i] in src, for i from 0 to size-1. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.
|
friend |
Parallel substitution (backward assignment) of linear expressions.
dst is replaced with the effect of substituting l[i] to variable v[i] in src. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.
std::invalid_argument | if the vectors have different size. |
|
friend |
Substitution (backward assignment) of arbitrary expression.
dst is replaced with the effect of substituting l to variable v in src. If inter is specified, dst is then intersected with it.
|
friend |
Parallel substitution (backward assignment) of arbitrary expressions.
dst is replaced with the effect of substituting l[i] to variable v[i] in src, for i from 0 to size-1. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.
|
friend |
Parallel substitution (backward assignment) of arbitrary expressions.
dst is replaced with the effect of substituting l[i] to variable v[i] in src. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.
std::invalid_argument | if the vectors have different size. |
Replaces dst with the meet of x and y.
x and y can have different environment. They are first embedded into the least common environment before the meet is computed.
|
friend |
Stores in dst the result of x widened with y.
|
friend |
Stores in dst the result of x widened with y, using some widening thresholds.
|
protected |
Structure managed by APRON.
|
staticprotected |
NULL abstract element, to be used only as default argument in assign and substitute.