dReal4
|
Represents an abstract class which is the base of concrete symbolic-expression classes. More...
Public Member Functions | |
ExpressionKind | get_kind () const |
Returns expression kind. More... | |
size_t | get_hash () const |
Returns hash value. More... | |
const Variables & | GetVariables () const |
Collects variables in expression. More... | |
virtual bool | EqualTo (const ExpressionCell &c) const =0 |
Checks structural equality. More... | |
virtual bool | Less (const ExpressionCell &c) const =0 |
Provides lexicographical ordering between expressions. More... | |
bool | is_polynomial () const |
Checks if this symbolic expression is convertible to Polynomial. More... | |
bool | include_ite () const |
Returns true if this symbolic expression includes an ITE (If-Then-Else) expression. More... | |
virtual double | Evaluate (const Environment &env) const =0 |
Evaluates under a given environment (by default, an empty environment). More... | |
virtual Expression | Expand ()=0 |
Expands out products and positive integer powers in expression. More... | |
virtual Expression | Substitute (const ExpressionSubstitution &expr_subst, const FormulaSubstitution &formula_subst)=0 |
Returns an Expression obtained by replacing all occurrences of the variables in s in the current expression cell with the corresponding expressions in s . More... | |
virtual Expression | Differentiate (const Variable &x) const =0 |
Differentiates this symbolic expression with respect to the variable var . More... | |
virtual std::ostream & | Display (std::ostream &os) const =0 |
Outputs string representation of expression into output stream os . More... | |
unsigned | use_count () const |
Returns the reference count of this cell. More... | |
ExpressionCell (const ExpressionCell &e)=delete | |
Copy-constructs an ExpressionCell from an lvalue. More... | |
ExpressionCell (ExpressionCell &&e)=delete | |
Move-constructs an ExpressionCell from an rvalue. More... | |
ExpressionCell ()=delete | |
Default constructor (DELETED). More... | |
ExpressionCell & | operator= (ExpressionCell &&e)=delete |
Move-assigns (DELETED). More... | |
ExpressionCell & | operator= (const ExpressionCell &e)=delete |
Copy-assigns (DELETED). More... | |
Protected Member Functions | |
ExpressionCell (ExpressionKind k, size_t hash, bool is_poly, bool include_ite, Variables variables) | |
Constructs ExpressionCell of kind k with hash , is_poly , and include_ite . More... | |
virtual | ~ExpressionCell ()=default |
Default destructor. More... | |
Expression | GetExpression () |
Returns an expression pointing to this ExpressionCell. More... | |
Represents an abstract class which is the base of concrete symbolic-expression classes.
|
delete |
Copy-constructs an ExpressionCell from an lvalue.
(DELETED)
|
delete |
Move-constructs an ExpressionCell from an rvalue.
(DELETED)
|
delete |
Default constructor (DELETED).
|
protected |
Constructs ExpressionCell of kind k
with hash
, is_poly
, and include_ite
.
|
protectedvirtualdefault |
Default destructor.
|
pure virtual |
Differentiates this symbolic expression with respect to the variable var
.
std::runtime_error | if it is not differentiable. |
Implemented in ExpressionUninterpretedFunction, ExpressionIfThenElse, ExpressionMax, ExpressionMin, ExpressionTanh, ExpressionCosh, ExpressionSinh, ExpressionAtan2, ExpressionAtan, ExpressionAcos, ExpressionAsin, ExpressionTan, ExpressionCos, ExpressionSin, ExpressionPow, ExpressionSqrt, ExpressionExp, ExpressionAbs, ExpressionLog, ExpressionDiv, ExpressionMul, ExpressionAdd, ExpressionNaN, ExpressionRealConstant, ExpressionConstant, and ExpressionVar.
|
pure virtual |
Outputs string representation of expression into output stream os
.
Implemented in ExpressionUninterpretedFunction, ExpressionIfThenElse, ExpressionMax, ExpressionMin, ExpressionTanh, ExpressionCosh, ExpressionSinh, ExpressionAtan2, ExpressionAtan, ExpressionAcos, ExpressionAsin, ExpressionTan, ExpressionCos, ExpressionSin, ExpressionPow, ExpressionSqrt, ExpressionExp, ExpressionAbs, ExpressionLog, ExpressionDiv, ExpressionMul, ExpressionAdd, ExpressionNaN, ExpressionRealConstant, ExpressionConstant, and ExpressionVar.
|
pure virtual |
Checks structural equality.
Implemented in ExpressionUninterpretedFunction, ExpressionIfThenElse, ExpressionMul, ExpressionAdd, ExpressionNaN, ExpressionRealConstant, ExpressionConstant, ExpressionVar, BinaryExpressionCell, and UnaryExpressionCell.
|
pure virtual |
Evaluates under a given environment (by default, an empty environment).
std::runtime_error | if NaN is detected during evaluation. |
Implemented in ExpressionUninterpretedFunction, ExpressionIfThenElse, ExpressionMul, ExpressionAdd, ExpressionNaN, ExpressionRealConstant, ExpressionConstant, ExpressionVar, BinaryExpressionCell, and UnaryExpressionCell.
|
pure virtual |
Expands out products and positive integer powers in expression.
std::runtime_error | if NaN is detected during expansion. |
Implemented in ExpressionUninterpretedFunction, ExpressionIfThenElse, ExpressionMax, ExpressionMin, ExpressionTanh, ExpressionCosh, ExpressionSinh, ExpressionAtan2, ExpressionAtan, ExpressionAcos, ExpressionAsin, ExpressionTan, ExpressionCos, ExpressionSin, ExpressionPow, ExpressionSqrt, ExpressionExp, ExpressionAbs, ExpressionLog, ExpressionDiv, ExpressionMul, ExpressionAdd, ExpressionNaN, ExpressionRealConstant, ExpressionConstant, and ExpressionVar.
|
inline |
Returns hash value.
|
inline |
Returns expression kind.
|
protected |
Returns an expression pointing to this ExpressionCell.
const Variables & GetVariables | ( | ) | const |
Collects variables in expression.
|
inline |
Returns true if this symbolic expression includes an ITE (If-Then-Else) expression.
|
inline |
Checks if this symbolic expression is convertible to Polynomial.
|
pure virtual |
Provides lexicographical ordering between expressions.
Implemented in ExpressionUninterpretedFunction, ExpressionIfThenElse, ExpressionMul, ExpressionAdd, ExpressionNaN, ExpressionRealConstant, ExpressionConstant, ExpressionVar, BinaryExpressionCell, and UnaryExpressionCell.
|
delete |
Move-assigns (DELETED).
|
delete |
Copy-assigns (DELETED).
|
pure virtual |
Returns an Expression obtained by replacing all occurrences of the variables in s
in the current expression cell with the corresponding expressions in s
.
std::runtime_error | if NaN is detected during substitution. |
Implemented in ExpressionUninterpretedFunction, ExpressionIfThenElse, ExpressionMax, ExpressionMin, ExpressionTanh, ExpressionCosh, ExpressionSinh, ExpressionAtan2, ExpressionAtan, ExpressionAcos, ExpressionAsin, ExpressionTan, ExpressionCos, ExpressionSin, ExpressionPow, ExpressionSqrt, ExpressionExp, ExpressionAbs, ExpressionLog, ExpressionDiv, ExpressionMul, ExpressionAdd, ExpressionNaN, ExpressionRealConstant, ExpressionConstant, and ExpressionVar.
|
inline |
Returns the reference count of this cell.