|
APRONXX
0.9.7
|
Iterators to traverse and mutate an expression tree. More...
#include <apxx_texpr0.hh>
Inherits apron::texpr0::const_iterator.
Public Member Functions | |
Constructors | |
| iterator (texpr0 &e) | |
| Starts a new iterator at the root of the tree. More... | |
| iterator (const iterator &i) | |
| Duplicates the iterator. More... | |
Expression substitutions | |
| iterator & | operator= (const builder &c) |
| Replace the sub-expression at the iterator position with a (deep) copy of c. More... | |
Access | |
| coeff & | get_coeff () const |
| Returns a (modifiable) reference to the coefficient of a constant node. More... | |
| ap_dim_t & | get_dim () const |
| Returns a (modifiable) reference to the dimension of a dimension node. More... | |
| ap_texpr_op_t & | get_op () const |
| Returns a (modifiable) reference to the operator kind of an operator node. More... | |
| ap_texpr_rtype_t & | get_rtype () const |
| Returns a (modifiable) reference to the destination type of an operator node. More... | |
| ap_texpr_rdir_t & | get_rdir () const |
| Returns a (modifiable) reference to the rounding direction of an operator node. More... | |
Traversal | |
| iterator & | operator= (const iterator &i) |
| Resets the iterator at position i. More... | |
| iterator | child () const |
| Constructs an iterator to the only or left sub-expression of an operator node. More... | |
| iterator | left () const |
| Constructs an iterator to the only of left sub-expression of an operator node. More... | |
| iterator | right () const |
| Constructs an iterator to the right sub-expression argument of a binary operator node. More... | |
C API compatibility | |
| ap_texpr0_t * | get_ap_texpr0_t () |
| Returns a pointer to the internal APRON object stored in *this. More... | |
| const ap_texpr0_t * | get_ap_texpr0_t () const |
| Returns a pointer to the internal APRON object stored in *this. More... | |
Public Member Functions inherited from apron::texpr0::const_iterator | |
| const_iterator (const texpr0 &e) | |
| Starts a new const_iterator at the root of a constant expression tree. More... | |
| const_iterator (const const_iterator &i) | |
| Duplicates the const_iterator. More... | |
| ap_texpr_discr_t | get_discr () const |
| Returns the node kind. More... | |
| const coeff & | get_coeff () const |
| Returns a reference to the coefficient of a constant node. More... | |
| ap_dim_t | get_dim () const |
| Returns the dimension of a dimension node. More... | |
| ap_texpr_op_t | get_op () const |
| Returns the operator kind of an operator node. More... | |
| ap_texpr_rtype_t | get_rtype () const |
| Returns the destination type of an operator node. More... | |
| ap_texpr_rdir_t | get_rdir () const |
| Returns the rounding direction of an operator node. More... | |
| const_iterator & | operator= (const const_iterator &i) |
| Resets the const_iterator at position i. More... | |
| const_iterator | child () const |
| Constructs a const_iterator to the only or left sub-expression of an operator node. More... | |
| const_iterator | left () const |
| Constructs a const_iterator to the only of left sub-expression of an operator node. More... | |
| const_iterator | right () const |
| Constructs a const_iterator to the right sub-expression argument of a binary operator node. More... | |
| bool | equal (const texpr0 &x) const |
| Whether two expressions are syntactically, structurally equal. More... | |
| bool | is_zero () const |
| Whether the expression is a single coefficient node with 0 value. More... | |
| size_t | depth () const |
| Returns the depth of the expression tree (counting only operator nodes). More... | |
| size_t | size () const |
| Returns the number of operator nodes in the expression tree. More... | |
| ap_dim_t | max_dim () const |
| Returns the maximal dimension occurring in the expression (or 0 if there is no variable). More... | |
| bool | has_dim (ap_dim_t d) const |
| Whether the given dimension occurs in the expression. More... | |
| std::vector< ap_dim_t > | dimlist () const |
| Returns a list of all dimensions occurring in the expression (in strict increasing order) More... | |
| 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... | |
| ap_texpr0_t * | get_ap_texpr0_t () |
| Returns a pointer to the internal APRON object stored in *this. More... | |
| const ap_texpr0_t * | get_ap_texpr0_t () const |
| Returns a pointer to the internal APRON object stored in *this. More... | |
| void | print (char **name_of_dim=NULL, FILE *stream=stdout) const |
| Prints to a C stream. More... | |
Protected Member Functions | |
| iterator (ap_texpr0_t *l) | |
| Internal use only. More... | |
Protected Member Functions inherited from apron::texpr0::const_iterator | |
| const_iterator (ap_texpr0_t *l) | |
| Internal use only. More... | |
Additional Inherited Members | |
Protected Attributes inherited from apron::texpr0::const_iterator | |
| ap_texpr0_t * | l |
Iterators to traverse and mutate an expression tree.
As const_iterator, but can be used to modify as well as traverse nodes.
|
inlineprotected |
Internal use only.
|
inline |
Starts a new iterator at the root of the tree.
|
inline |
Duplicates the iterator.
|
inline |
Constructs an iterator to the only or left sub-expression of an operator node.
| bad_discriminant | if the node is not an operator node. |
|
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 coefficient of a constant node.
| bad_discriminant | if the node is not a constant leaf. |
|
inline |
Returns a (modifiable) reference to the dimension of a dimension node.
| bad_discriminant | if the node is not a dimension node. |
|
inline |
Returns a (modifiable) reference to the operator kind of an operator node.
AP_TEXPR_ADD, AP_TEXPR_SUB, AP_TEXPR_MUL, AP_TEXPR_DIV, AP_TEXPR_MOD, AP_TEXPR_POW AP_TEXPR_NEG, AP_TEXPR_CAST, or AP_TEXPR_SQRT. | bad_discriminant | if the node is not an operator node. |
|
inline |
Returns a (modifiable) reference to the rounding direction of an operator node.
AP_RDIR_NEAREST, AP_RDIR_ZERO, AP_RDIR_UP, AP_RDIR_DOWN, or AP_RDIR_RND. | bad_discriminant | if the node is not an operator node. |
|
inline |
Returns a (modifiable) reference to the destination type of an operator node.
AP_RTYPE_REAL, AP_RTYPE_INT, AP_RTYPE_SINGLE (32-bit), AP_RTYPE_DOUBLE (64-bit), AP_RTYPE_EXTENDED (80-bit), or AP_RTYPE_QUAD (128-bit). | bad_discriminant | if the node is not an operator node. |
|
inline |
Constructs an iterator to the only of left sub-expression of an operator node.
(Identical to child()).
| bad_discriminant | if the node is not an operator node. |
|
inline |
Replace the sub-expression at the iterator position with a (deep) copy of c.
The iterator is still valid after substitution (it points to the sub-expression copy). However, any iterator in the discarded part becomes invalid.
|
inline |
Resets the iterator at position i.
|
inline |
Constructs an iterator to the right sub-expression argument of a binary operator node.
| bad_discriminant | if the node is not an operator node. |
| std::out_of_range | if the operator node is not binary. |
1.8.11