dReal4
|
Symbolic expression representing if-then-else expression. More...
Public Member Functions | |
ExpressionIfThenElse (const Formula &f_cond, const Expression &e_then, const Expression &e_else) | |
Constructs if-then-else expression from f_cond , e_then , and e_else . More... | |
bool | EqualTo (const ExpressionCell &e) const override |
Checks structural equality. More... | |
bool | Less (const ExpressionCell &e) const override |
Provides lexicographical ordering between expressions. More... | |
double | Evaluate (const Environment &env) const override |
Evaluates under a given environment (by default, an empty environment). More... | |
Expression | Expand () override |
Expands out products and positive integer powers in expression. More... | |
Expression | Substitute (const ExpressionSubstitution &expr_subst, const FormulaSubstitution &formula_subst) override |
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... | |
Expression | Differentiate (const Variable &x) const override |
Differentiates this symbolic expression with respect to the variable var . More... | |
std::ostream & | Display (std::ostream &os) const override |
Outputs string representation of expression into output stream os . More... | |
const Formula & | get_conditional_formula () const |
Returns the conditional formula. More... | |
const Expression & | get_then_expression () const |
Returns the 'then' expression. More... | |
const Expression & | get_else_expression () const |
Returns the 'else' expression. More... | |
![]() | |
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... | |
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... | |
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... | |
Additional Inherited Members | |
![]() | |
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... | |
Symbolic expression representing if-then-else expression.
ExpressionIfThenElse | ( | const Formula & | f_cond, |
const Expression & | e_then, | ||
const Expression & | e_else | ||
) |
Constructs if-then-else expression from f_cond
, e_then
, and e_else
.
|
overridevirtual |
Differentiates this symbolic expression with respect to the variable var
.
std::runtime_error | if it is not differentiable. |
Implements ExpressionCell.
|
overridevirtual |
Outputs string representation of expression into output stream os
.
Implements ExpressionCell.
|
overridevirtual |
Checks structural equality.
Implements ExpressionCell.
|
overridevirtual |
Evaluates under a given environment (by default, an empty environment).
std::runtime_error | if NaN is detected during evaluation. |
Implements ExpressionCell.
|
overridevirtual |
Expands out products and positive integer powers in expression.
std::runtime_error | if NaN is detected during expansion. |
Implements ExpressionCell.
|
inline |
Returns the conditional formula.
|
inline |
Returns the 'else' expression.
|
inline |
Returns the 'then' expression.
|
overridevirtual |
Provides lexicographical ordering between expressions.
Implements ExpressionCell.
|
overridevirtual |
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. |
Implements ExpressionCell.