Iterators to traverse a constant expression tree.
More...
#include <apxx_texpr1.hh>
Inherited by apron::texpr1::iterator.
Iterators to traverse a constant expression tree.
Use the iterator class if you also wish to mutate an expression.
texpr1::const_iterator::const_iterator |
( |
ap_texpr1_t * |
l | ) |
|
|
inlineprotected |
apron::texpr1::const_iterator::const_iterator |
( |
ap_texpr0_t * |
t, |
|
|
ap_environment_t * |
e |
|
) |
| |
|
inlineprotected |
texpr1::const_iterator::const_iterator |
( |
const texpr1 & |
e | ) |
|
|
inline |
Starts a new const_iterator at the root of a constant expression tree.
Constructs a const_iterator to the only or left sub-expression of an operator node.
- Exceptions
-
size_t texpr1::const_iterator::depth |
( |
| ) |
const |
|
inline |
Returns the depth of the expression tree (counting only operator nodes).
bool texpr1::const_iterator::equal |
( |
const texpr1 & |
x | ) |
const |
|
inline |
Whether two expressions are syntactically, structurally equal.
ap_texpr1_t * texpr1::const_iterator::get_ap_texpr1_t |
( |
| ) |
|
|
inline |
Returns a pointer to the internal APRON object stored in *this.
const ap_texpr1_t * apron::texpr1::const_iterator::get_ap_texpr1_t |
( |
| ) |
const |
|
inline |
Returns a pointer to the internal APRON object stored in *this.
const coeff & texpr1::const_iterator::get_coeff |
( |
| ) |
const |
|
inline |
Returns a reference to the coefficient of a constant node.
- Exceptions
-
ap_dim_t texpr1::const_iterator::get_dim |
( |
| ) |
const |
|
inline |
Returns the dimension of a dimension node.
- Exceptions
-
ap_texpr_discr_t texpr1::const_iterator::get_discr |
( |
| ) |
const |
|
inline |
Returns the node kind.
- Returns
AP_TEXPR_CST
for a constant node, AP_TEXPR_DIM
for a dimension, and AP_TEXPR_NODE
for an operator node.
environment texpr1::const_iterator::get_environment |
( |
| ) |
const |
|
inline |
Returns (a copy of) the environment associated with the expression.
ap_texpr_op_t texpr1::const_iterator::get_op |
( |
| ) |
const |
|
inline |
Returns the operator kind of an operator node.
- Returns
- either
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
.
- Exceptions
-
ap_texpr_rdir_t texpr1::const_iterator::get_rdir |
( |
| ) |
const |
|
inline |
Returns the rounding direction of an operator node.
- Returns
- either
AP_RDIR_NEAREST
, AP_RDIR_ZERO
, AP_RDIR_UP
, AP_RDIR_DOWN
, or AP_RDIR_RND
.
- Exceptions
-
ap_texpr_rtype_t texpr1::const_iterator::get_rtype |
( |
| ) |
const |
|
inline |
Returns the destination type of an operator node.
- Returns
- either
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).
- Exceptions
-
Returns a constant iterator at the root of the underlying texpr0.
const var & texpr1::const_iterator::get_var |
( |
| ) |
const |
|
inline |
Returns a (unmodifiable) reference to the variable name of a dimension node.
- Exceptions
-
bool texpr1::const_iterator::has_var |
( |
const var & |
v | ) |
const |
|
inline |
Whether the given variable name occurs in the expression.
bool texpr1::const_iterator::is_interval_cst |
( |
| ) |
const |
|
inline |
Whether the expression is constant (i.e., has no dimension leaves).
bool texpr1::const_iterator::is_interval_linear |
( |
| ) |
const |
|
inline |
Whether the expression is linear and there is no rounding.
bool texpr1::const_iterator::is_interval_polyfrac |
( |
| ) |
const |
|
inline |
Whether the expression is a polynomial fraction and there is no rounding.
bool texpr1::const_iterator::is_interval_polynomial |
( |
| ) |
const |
|
inline |
Whether the expression is polynomial and there is no rounding.
bool texpr1::const_iterator::is_scalar |
( |
| ) |
const |
|
inline |
Whether all occurring constants are scalar.
bool texpr1::const_iterator::is_zero |
( |
| ) |
const |
|
inline |
Whether the expression is a single coefficient node with 0 value.
Constructs a const_iterator to the only of left sub-expression of an operator node.
(Identical to child()).
- Exceptions
-
void texpr1::const_iterator::print |
( |
FILE * |
stream = stdout | ) |
const |
|
inline |
Constructs a const_iterator to the right sub-expression argument of a binary operator node.
- Exceptions
-
bad_discriminant | if the node is not an operator node. |
std::out_of_range | if the operator node is not binary. |
size_t texpr1::const_iterator::size |
( |
| ) |
const |
|
inline |
Returns the number of operator nodes in the expression tree.
std::ostream& operator<< |
( |
std::ostream & |
os, |
|
|
const const_iterator & |
s |
|
) |
| |
|
friend |
ap_texpr1_t apron::texpr1::const_iterator::l |
|
protected |
The documentation for this class was generated from the following files: