| APRONXX 0.9.15
    | 
Level 0 arbitrary constraint (ap_tcons0_t wrapper). More...
#include <apxx_tcons0.hh>
Inherits apron::use_malloc.
| Public Member Functions | |
| Constructors | |
| tcons0 (ap_constyp_t constyp=AP_CONS_SUPEQ) | |
| Creates an empty constraint. | |
| tcons0 (ap_constyp_t constyp, const texpr0::builder &t) | |
| Creates a new (non-modulo) constraint from an expression tree (copied). | |
| tcons0 (ap_constyp_t constyp, const texpr0::builder &t, const scalar &modulo) | |
| Creates a new constraint from an expression tree and a modulo scalar (both copied). | |
| tcons0 (const tcons0 &x) | |
| (Deep) copy of a constraint. | |
| tcons0 (const tcons0 &x, const dimchange &d, bool add=true) | |
| Makes a (deep) copy of a constraint, and applies a dimension change to the underlying expression. | |
| tcons0 (const tcons0 &x, const dimperm &d) | |
| Makes a (deep) copy of a constraint, and applies a permutation to the underlying expression. | |
| tcons0 (unsat x) | |
| Makes an unsatisfiable constraint (-1>=0). | |
| tcons0 (const lincons0 &x) | |
| Makes a constraint from a linear constraint (copying coefficients). | |
| Destructor | |
| ~tcons0 () | |
| Frees the constraint, including the embedded expression tree and optional modulo scalar. | |
| Assignments | |
| tcons0 & | operator= (const tcons0 &x) | 
| (Deep) copy. | |
| tcons0 & | operator= (unsat x) | 
| Assigns an unsatisfiable constraint to *this (-1>=0). | |
| tcons0 & | operator= (const lincons0 &x) | 
| Makes *this equal to the linear constraint x (coefficients are copied), deleting the previous value of *this. | |
| void | set_modulo (const scalar &c) | 
| Sets the extra scalar modulo to c (copied). | |
| void | set_texpr (const texpr0::builder &c) | 
| Sets the underlying expression tree to c (copied). | |
| Dimension operations | |
| void | add_dimensions (const dimchange &d) | 
| Adds dimensions to the underlying expression tree. | |
| void | remove_dimensions (const dimchange &d) | 
| Removes dimensions to the underlying expression tree. | |
| void | permute_dimensions (const dimperm &d) | 
| Applies a permutation to the underlying expression tree. | |
| Accesses | |
| ap_constyp_t & | get_constyp () | 
| Returns a (modifiable) reference to the constraint type. | |
| const ap_constyp_t & | get_constyp () const | 
| Returns a reference to the constraint type. | |
| bool | has_modulo () const | 
| Returns whether the constraint has a valid extra scalar (used in modulo constraints). | |
| bool | has_texpr () const | 
| Whether the constraint contains a valid expression tree. | |
| scalar & | get_modulo () | 
| Returns a (modifiable) reference to the extra scalar. | |
| const scalar & | get_modulo () const | 
| Returns a reference to the extra scalar. | |
| texpr0::iterator | get_texpr () | 
| Returns an iterator to the root of the underlying expression tree. | |
| texpr0::const_iterator | get_texpr () const | 
| Returns a const_iterator to the root of the underlying expression tree. | |
| Tests | |
| bool | is_interval_cst () const | 
| Whether the expression is constant (i.e., has no dimension leaves). | |
| bool | is_interval_linear () const | 
| Whether the expression is linear and there is no rounding. | |
| bool | is_interval_polynomial () const | 
| Whether the expression is polynomial and there is no rounding. | |
| bool | is_interval_polyfrac () const | 
| Whether the expression is a polynomial fraction and there is no rounding. | |
| bool | is_scalar () const | 
| Whether all occurring constants are scalar. | |
| C API compatibility | |
| const ap_tcons0_t * | get_ap_tcons0_t () const | 
| Returns a pointer to the internal APRON object stored in *this. | |
| ap_tcons0_t * | get_ap_tcons0_t () | 
| Returns a pointer to the internal APRON object stored in *this. | |
|  Public Member Functions inherited from apron::use_malloc | |
| 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 | |
| tcons0 (ap_tcons0_t &l) | |
| Internal use only. Performs a shallow copy and takes ownership of the contents. | |
| Protected Attributes | |
| ap_tcons0_t | l | 
| Structure managed by APRON. | |
| Printing | |
| void | print (char **name_of_dim=NULL, FILE *stream=stdout) const | 
| Prints to a C stream. | |
Level 0 arbitrary constraint (ap_tcons0_t wrapper).
A tcons0 represents a constraint of the form expr==0, expr>=0, expr>0, expr!=0, or expr==0 mod c where expr is an arbitrary expression tree. It stores and manages a texpr0, a constraint type (==, >=, >, !=, mod), and (for modulo constraint) an extra scalar (c).
Constraints can be constructed using the >=, <=, >, <, ==, != operators on expression trees, or dedicated constructors:
See the documentation of the texpr0 class for more information on constructing expression trees.
| 
 | 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.
Makes a (deep) copy of a constraint, and applies a dimension change to the underlying expression.
add whether to add or remove dimensions. Makes a (deep) copy of a constraint, and applies a permutation to the underlying expression.
| 
 | 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 | 
Adds dimensions to the underlying expression tree.
| std::invalid_argument | if no valid expression tree has been defined. | 
| 
 | 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 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 | 
Applies a permutation to the underlying expression tree.
| std::invalid_argument | if no valid expression tree has been defined. | 
| 
 | inline | 
Prints to a C stream.
| 
 | inline | 
Removes dimensions to the underlying expression tree.
| std::invalid_argument | if no valid expression tree has been defined. | 
| 
 | 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.
| 
 | protected | 
Structure managed by APRON.