APRONXX
0.9.12
|
Level 1 arbitrary constraint (ap_tcons1_t wrapper). More...
#include <apxx_tcons1.hh>
Inherits apron::use_malloc.
Public Member Functions | |
Constructors | |
tcons1 (const environment &env, ap_constyp_t constyp=AP_CONS_SUPEQ) | |
Creates an empty constraint. More... | |
tcons1 (ap_constyp_t constyp, const texpr1::builder &t) | |
Creates a new (non-modulo) constraint from an expression tree (copied). More... | |
tcons1 (ap_constyp_t constyp, const texpr1::builder &t, const scalar &modulo) | |
Creates a new constraint from an expression tree and a modulo scalar (both copied). More... | |
tcons1 (const tcons1 &x) | |
(Deep) copy of a constraint. More... | |
tcons1 (const tcons1 &x, const environment &e) | |
Makes a (deep) copy of x and extends its environment. More... | |
tcons1 (const environment &e, unsat x) | |
Makes an unsatisfiable constraint (-1>=0). More... | |
tcons1 (const lincons1 &x) | |
Makes a constraint from a linear constraint (copying coefficients). More... | |
Destructor | |
~tcons1 () | |
Frees the constraint, including the embedded expression tree and optional modulo scalar. More... | |
Assignments | |
tcons1 & | operator= (const tcons1 &x) |
(Deep) copy. More... | |
tcons1 & | operator= (unsat x) |
Assigns an unsatisfiable constraint to *this (-1>=0). More... | |
tcons1 & | operator= (const lincons1 &x) |
Makes *this equal to the linear constraint x (coefficients are copied), deleting the previous value of *this. More... | |
void | set_modulo (const scalar &c) |
Sets the extra scalar modulo to c (copied). More... | |
void | set_texpr (const texpr1::builder &c) |
Sets the underlying expression tree to c (copied). More... | |
Dimension operations | |
void | extend_environment (const environment &e) |
Extends the environment of the expression. More... | |
Accesses | |
environment | get_environment () const |
Returns the environment of the expression (with incremented reference count). More... | |
const tcons0 & | get_tcons0 () const |
Returns a reference to the underlying tcons0. More... | |
tcons0 & | get_tcons0 () |
Returns a (modifiable) reference to the underlying tcons0. More... | |
ap_constyp_t & | get_constyp () |
Returns a (modifiable) reference to the constraint type. More... | |
const ap_constyp_t & | get_constyp () const |
Returns a reference to the constraint type. More... | |
bool | has_modulo () const |
Returns whether the constraint has a valid extra scalar (used in modulo constraints). More... | |
bool | has_texpr () const |
Whether the constraint contains a valid expression tree. More... | |
scalar & | get_modulo () |
Returns a (modifiable) reference to the extra scalar. More... | |
const scalar & | get_modulo () const |
Returns a reference to the extra scalar. More... | |
texpr1::iterator | get_texpr () |
Returns an iterator to the root of the underlying expression tree. More... | |
texpr1::const_iterator | get_texpr () const |
Returns a const_iterator to the root of the underlying expression tree. More... | |
Tests | |
bool | is_interval_cst () const |
Whether the expression is constant (i.e., has no dimension leaves). More... | |
bool | is_interval_linear () const |
Whether the expression is linear and there is no rounding. More... | |
bool | is_interval_polynomial () const |
Whether the expression is polynomial and there is no rounding. More... | |
bool | is_interval_polyfrac () const |
Whether the expression is a polynomial fraction and there is no rounding. More... | |
bool | is_scalar () const |
Whether all occurring constants are scalar. More... | |
C API compatibility | |
const ap_tcons1_t * | get_ap_tcons1_t () const |
Returns a pointer to the internal APRON object stored in *this. More... | |
ap_tcons1_t * | get_ap_tcons1_t () |
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 | |
tcons1 (ap_tcons1_t l) | |
Internal use only. Performs a shallow copy and takes ownership of the contents. More... | |
Protected Attributes | |
ap_tcons1_t | l |
Structure managed by APRON. More... | |
Friends | |
'Intelligent' constructors | |
tcons1 | operator>= (const texpr1::builder &a, const texpr1::builder &b) |
Makes a constraint a-b >= 0. More... | |
tcons1 | operator<= (const texpr1::builder &a, const texpr1::builder &b) |
Makes a constraint b-a >= 0. More... | |
tcons1 | operator> (const texpr1::builder &a, const texpr1::builder &b) |
Makes a constraint a-b > 0. More... | |
tcons1 | operator< (const texpr1::builder &a, const texpr1::builder &b) |
Makes a constraint b-a > 0. More... | |
tcons1 | operator== (const texpr1::builder &a, const texpr1::builder &b) |
Makes a constraint a-b == 0. More... | |
tcons1 | operator!= (const texpr1::builder &a, const texpr1::builder &b) |
Makes a constraint a-b != 0. More... | |
Printing | |
std::ostream & | operator<< (std::ostream &os, const tcons1 &s) |
Printing. More... | |
void | print (FILE *stream=stdout) const |
Prints to a C stream. More... | |
Level 1 arbitrary constraint (ap_tcons1_t wrapper).
Level 1 version of arbitrary constraints using expression trees. Variable names (var) are used instead of dimensions (ap_dim_t). Internally, a tcons1 wraps together a tcons0 (memory managed) and an environment (holding a reference count).
|
inlineprotected |
Internal use only. Performs a shallow copy and takes ownership of the contents.
|
inline |
Creates an empty constraint.
Neither the expression tree nor the extra scalar are not created (has_texpr and has_modulo both return false).
constyp
can be AP_CONS_EQ
, AP_CONS_SUPEQ
, AP_CONS_SUP
, or AP_CONS_DISEQ
(but not AP_CONS_EQMOD
).
|
inline |
Creates a new (non-modulo) constraint from an expression tree (copied).
The extra scalar is not created (has_modulo returns false).
constyp
can be AP_CONS_EQ
, AP_CONS_SUPEQ
, AP_CONS_SUP
, or AP_CONS_DISEQ
(but not AP_CONS_EQMOD
).
|
inline |
Creates a new constraint from an expression tree and a modulo scalar (both copied).
constyp
can be AP_CONS_EQ
, AP_CONS_SUPEQ
, AP_CONS_SUP
, AP_CONS_EQMOD
, or AP_CONS_DISEQ
.
|
inline |
(Deep) copy of a constraint.
|
inline |
Makes a (deep) copy of x and extends its environment.
std::invalid_argument | if e is not a super-environment of that of x. |
|
inline |
Makes an unsatisfiable constraint (-1>=0).
|
inline |
Makes a constraint from a linear constraint (copying coefficients).
Real-valued addition and multiplication operators are used (i.e., no rounding).
|
inline |
Frees the constraint, including the embedded expression tree and optional modulo scalar.
|
inline |
Extends the environment of the expression.
std::invalid_argument | if e is not a super-environment of that of *this. |
|
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 a (modifiable) reference to the constraint type.
AP_CONS_EQ
, AP_CONS_SUPEQ
, AP_CONS_SUP
, AP_CONS_EQMOD
, or AP_CONS_DISEQ
.
|
inline |
Returns a reference to the constraint type.
AP_CONS_EQ
, AP_CONS_SUPEQ
, AP_CONS_SUP
, AP_CONS_EQMOD
, or AP_CONS_DISEQ
.
|
inline |
Returns the environment of the expression (with incremented reference count).
|
inline |
Returns a (modifiable) reference to the extra scalar.
std::invalid_argument | if no valid extra scalar has been defined. |
|
inline |
Returns a reference to the extra scalar.
std::invalid_argument | if no valid extra scalar has been defined. |
|
inline |
Returns an iterator to the root of the underlying expression tree.
std::invalid_argument | if no valid expression tree has been defined. |
|
inline |
Returns a const_iterator to the root of the underlying expression tree.
std::invalid_argument | if no valid expression tree has been defined. |
|
inline |
Returns whether the constraint has a valid extra scalar (used in modulo constraints).
|
inline |
Whether the constraint contains a valid expression tree.
|
inline |
Whether the expression is constant (i.e., has no dimension leaves).
std::invalid_argument | if no valid expression tree has been defined. |
|
inline |
Whether the expression is linear and there is no rounding.
std::invalid_argument | if no valid expression tree has been defined. |
|
inline |
Whether the expression is a polynomial fraction and there is no rounding.
std::invalid_argument | if no valid expression tree has been defined. |
|
inline |
Whether the expression is polynomial and there is no rounding.
std::invalid_argument | if no valid expression tree has been defined. |
|
inline |
Whether all occurring constants are scalar.
std::invalid_argument | if no valid expression tree has been defined. |
Makes *this equal to the linear constraint x (coefficients are copied), deleting the previous value of *this.
Real-valued addition and multiplication operators are used (i.e., no rounding).
|
inline |
Prints to a C stream.
|
inline |
Sets the extra scalar modulo to c (copied).
Does not fail as get_modulo can: if the constraint was created without an extra scalar, it is created.
|
inline |
Sets the underlying expression tree to c (copied).
Does not fail as get_texpr can: if the constraint was created without an underlying expression, it is created.
|
friend |
Makes a constraint a-b != 0.
|
friend |
Makes a constraint b-a > 0.
|
friend |
Printing.
std::invalid_argument | if the underlying expression is missing, or the extra scalar is missing (for modulo). |
|
friend |
Makes a constraint b-a >= 0.
|
friend |
Makes a constraint a-b == 0.
|
friend |
Makes a constraint a-b > 0.
|
friend |
Makes a constraint a-b >= 0.
|
protected |
Structure managed by APRON.