|
bool | is_zero () const |
| Whether the expression is a single coefficient node with 0 value. More...
|
|
|
| builder (const builder &x) |
| Makes a shallow copy, copying only the root node. Sub-expressions are aliased, not copied. More...
|
|
| builder (const const_iterator &x) |
| Makes a shallow copy, copying only the root node. Sub-expressions are aliased, not copied. More...
|
|
| builder (const texpr0 &x) |
| Makes a shallow copy, copying only the root node. Sub-expressions are aliased, not copied. More...
|
|
| builder (const coeff &x) |
| Makes a constant leaf from a scalar or interval coefficient (copied). More...
|
|
| builder (const scalar &x) |
| Makes a constant scalar leaf from a scalar (copied). More...
|
|
| builder (const mpq_class &x) |
| Makes a constant scalar leaf from a MPQ (copied). More...
|
|
| builder (mpfr_t x) |
| Makes a constant scalar leaf from a MPFR (copied). More...
|
|
| builder (int x) |
| Makes a constant scalar MPQ leaf from an integer. More...
|
|
| builder (long x) |
| Makes a constant scalar MPQ leaf from an integer. More...
|
|
| builder (double x) |
| Makes a constant scalar double leaf from a double. More...
|
|
| builder (const frac &x) |
| Makes a constant scalar MPQ leaf from a fraction with integer coefficients. More...
|
|
| builder (const interval &x) |
| Makes a constant interval leaf from an interval (copied). More...
|
|
| builder (const scalar &inf, const scalar &sup) |
| Makes a constant interval leaf from two scalar bounds (copied). More...
|
|
| builder (const mpq_class &inf, const mpq_class &sup) |
| Makes a constant interval leaf from two MPQ bounds (copied). More...
|
|
| builder (mpfr_t inf, mpfr_t sup) |
| Makes a constant interval leaf from two MPFR bounds (copied). More...
|
|
| builder (int inf, int sup) |
| Makes a constant interval leaf from two integer bounds (converted to MPQ). More...
|
|
| builder (long inf, long sup) |
| Makes a constant interval leaf from two integer bounds (converted to MPQ). More...
|
|
| builder (double inf, double sup) |
| Makes a constant interval leaf from two double bounds. More...
|
|
| builder (const frac &inf, const frac &sup) |
| Makes a constant interval leaf from two fraction bounds (converted to MPQ). More...
|
|
| builder (top t) |
| Makes a constant interval leaf equal to ]-oo;+oo[. More...
|
|
| builder (dim d) |
| Makes a dimension leaf (i.e., variable of specified index). More...
|
|
| builder (ap_texpr_op_t op, const builder &argA, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes a unary expression node. More...
|
|
| builder (ap_texpr_op_t op, const builder &argA, const builder &argB, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes a binary expression node. More...
|
|
|
| ~builder () |
| Frees the memory occupied by the node, not its sub-expressions. 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 * | operator new (size_t sz) |
|
void * | operator new[] (size_t sz) |
|
void | operator delete (void *p) |
|
void | operator delete[] (void *p) |
|
|
|
builder | unary (ap_texpr_op_t op, const builder &a, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes a unary expression node. More...
|
|
builder | binary (ap_texpr_op_t op, const builder &a, const builder &b, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes a binary expression node. More...
|
|
builder | add (const builder &a, const builder &b, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes an AP_TEXPR_ADD expression node. More...
|
|
builder | sub (const builder &a, const builder &b, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes an AP_TEXPR_SUB expression node. More...
|
|
builder | mul (const builder &a, const builder &b, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes an AP_TEXPR_MUL expression node. More...
|
|
builder | div (const builder &a, const builder &b, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes an AP_TEXPR_DIV expression node. More...
|
|
builder | mod (const builder &a, const builder &b, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes an AP_TEXPR_MOD expression node. More...
|
|
builder | pow (const builder &a, const builder &b, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes an AP_TEXPR_POW expression node. More...
|
|
builder | neg (const builder &a, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes an AP_TEXPR_NEG expression node. More...
|
|
builder | cast (const builder &a, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes an AP_TEXPR_CAST expression node. More...
|
|
builder | floor (const builder &a) |
| Makes an AP_TEXPR_CAST expression node to AP_RTYPE_INT type rounded towards AP_RDIR_DOWN . More...
|
|
builder | ceil (const builder &a) |
| Makes an AP_TEXPR_CAST expression node to AP_RTYPE_INT type rounded towards AP_RDIR_UP . More...
|
|
builder | trunc (const builder &a) |
| Makes an AP_TEXPR_CAST expression node to AP_RTYPE_INT type rounded towards AP_RDIR_ZERO . More...
|
|
builder | sqrt (const builder &a, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir) |
| Makes an AP_TEXPR_SQRT expression node. More...
|
|
builder | operator+ (const builder &a) |
| Makes a copy of the node. More...
|
|
builder | operator- (const builder &a) |
| Makes a AP_TEXPR_NEG expression node using AP_RTYPE_REAL type (no rounding). More...
|
|
builder | operator+ (const builder &a, const builder &b) |
| Makes a AP_TEXPR_ADD expression node using AP_RTYPE_REAL type (no rounding). More...
|
|
builder | operator- (const builder &a, const builder &b) |
| Makes a AP_TEXPR_SUB expression node using AP_RTYPE_REAL type (no rounding). More...
|
|
builder | operator * (const builder &a, const builder &b) |
| Makes a AP_TEXPR_MUL expression node using AP_RTYPE_REAL type (no rounding). More...
|
|
builder | operator/ (const builder &a, const builder &b) |
| Makes a AP_TEXPR_DIV expression node using AP_RTYPE_REAL type (no rounding). More...
|
|
builder | operator% (const builder &a, const builder &b) |
| Makes a AP_TEXPR_MOD expression node using AP_RTYPE_REAL type (no rounding). More...
|
|
builder | operator^ (const builder &a, const builder &b) |
| Makes a AP_TEXPR_POW expression node using AP_RTYPE_REAL type (no rounding). More...
|
|
Temporary expression nodes used when constructing a texpr0.
Builders allow constructing expression trees one node at a time using overloaded operators (+, -, *, /, %) and friend functions (add, sub, mul, div, mod, neg, sqrt, cast, unary, binary).
Each builder object manages a single node which is allocated by the constructor and destroyed by the destructor, without considering potential sub-nodes. As their usage is temporary (they are normally destructed at the end of full expressions), assignment, copy, and destruction can be shallow, which results in improved efficiency wrt. using texpr0 as temporaries.
You should not create variables of type build, nor define functions that return or take builder objects as arguments.