|
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.