Storm
A Modern Probabilistic Model Checker
|
The base class of all binary expressions. More...
#include <BinaryExpression.h>
Public Member Functions | |
BinaryExpression (ExpressionManager const &manager, Type const &type, std::shared_ptr< BaseExpression const > const &firstOperand, std::shared_ptr< BaseExpression const > const &secondOperand) | |
Constructs a binary expression with the given return type and operands. | |
BinaryExpression (BinaryExpression const &other)=default | |
BinaryExpression & | operator= (BinaryExpression const &other)=delete |
BinaryExpression (BinaryExpression &&)=default | |
BinaryExpression & | operator= (BinaryExpression &&)=delete |
virtual | ~BinaryExpression ()=default |
virtual bool | isFunctionApplication () const override |
Checks if the expression is a function application (of any sort). | |
virtual bool | containsVariables () const override |
Retrieves whether the expression contains a variable. | |
virtual uint_fast64_t | getArity () const override |
Returns the arity of the expression. | |
virtual std::shared_ptr< BaseExpression const > | getOperand (uint_fast64_t operandIndex) const override |
Retrieves the given operand from the expression. | |
virtual void | gatherVariables (std::set< storm::expressions::Variable > &variables) const override |
Retrieves the set of all variables that appear in the expression. | |
std::shared_ptr< BaseExpression const > const & | getFirstOperand () const |
Retrieves the first operand of the expression. | |
std::shared_ptr< BaseExpression const > const & | getSecondOperand () const |
Retrieves the second operand of the expression. | |
![]() | |
BaseExpression (ExpressionManager const &manager, Type const &type) | |
Constructs a base expression with the given return type. | |
BaseExpression (BaseExpression const &)=default | |
BaseExpression & | operator= (BaseExpression const &)=delete |
BaseExpression (BaseExpression &&)=default | |
BaseExpression & | operator= (BaseExpression &&)=delete |
virtual | ~BaseExpression ()=default |
Expression | toExpression () const |
Converts the base expression to a proper expression. | |
virtual bool | evaluateAsBool (Valuation const *valuation=nullptr) const |
Evaluates the expression under the valuation of unknowns (variables and constants) given by the valuation and returns the resulting boolean value. | |
virtual int_fast64_t | evaluateAsInt (Valuation const *valuation=nullptr) const |
Evaluates the expression under the valuation of unknowns (variables and constants) given by the valuation and returns the resulting integer value. | |
virtual double | evaluateAsDouble (Valuation const *valuation=nullptr) const |
Evaluates the expression under the valuation of unknowns (variables and constants) given by the valuation and returns the resulting double value. | |
virtual storm::RationalNumber | evaluateAsRational () const |
Evaluates the expression and returns the resulting rational number. | |
virtual std::string const & | getIdentifier () const |
Retrieves the identifier associated with this expression. | |
virtual OperatorType | getOperator () const |
Retrieves the operator of a function application. | |
virtual bool | isLiteral () const |
Retrieves whether the expression is a literal. | |
virtual bool | isVariable () const |
Retrieves whether the expression is a variable. | |
virtual bool | isTrue () const |
Checks if the expression is equal to the boolean literal true. | |
virtual bool | isFalse () const |
Checks if the expression is equal to the boolean literal false. | |
virtual std::shared_ptr< BaseExpression const > | simplify () const =0 |
Simplifies the expression according to some simple rules. | |
std::shared_ptr< BaseExpression const > | reduceNesting () const |
Tries to flatten the syntax tree of the expression, e.g., 1 + (2 + (3 + 4)) becomes (1 + 2) + (3 + 4) | |
virtual boost::any | accept (ExpressionVisitor &visitor, boost::any const &data) const =0 |
Accepts the given visitor by calling its visit method. | |
bool | hasNumericalType () const |
Retrieves whether the expression has a numerical type, i.e., integer or double. | |
bool | hasIntegerType () const |
Retrieves whether the expression has an integer type. | |
bool | hasBitVectorType () const |
Retrieves whether the expression has a bitvector type. | |
bool | hasBooleanType () const |
Retrieves whether the expression has a boolean type. | |
bool | hasRationalType () const |
Retrieves whether the expression has a rational return type. | |
std::shared_ptr< BaseExpression const > | getSharedPointer () const |
Retrieves a shared pointer to this expression. | |
ExpressionManager const & | getManager () const |
Retrieves the manager responsible for this expression. | |
Type const & | getType () const |
Retrieves the type of the expression. | |
virtual bool | isIfThenElseExpression () const |
IfThenElseExpression const & | asIfThenElseExpression () const |
virtual bool | isBinaryBooleanFunctionExpression () const |
BinaryBooleanFunctionExpression const & | asBinaryBooleanFunctionExpression () const |
virtual bool | isBinaryNumericalFunctionExpression () const |
BinaryNumericalFunctionExpression const & | asBinaryNumericalFunctionExpression () const |
virtual bool | isBinaryRelationExpression () const |
BinaryRelationExpression const & | asBinaryRelationExpression () const |
virtual bool | isBooleanLiteralExpression () const |
BooleanLiteralExpression const & | asBooleanLiteralExpression () const |
virtual bool | isIntegerLiteralExpression () const |
IntegerLiteralExpression const & | asIntegerLiteralExpression () const |
virtual bool | isRationalLiteralExpression () const |
RationalLiteralExpression const & | asRationalLiteralExpression () const |
virtual bool | isUnaryBooleanFunctionExpression () const |
UnaryBooleanFunctionExpression const & | asUnaryBooleanFunctionExpression () const |
virtual bool | isUnaryNumericalFunctionExpression () const |
UnaryNumericalFunctionExpression const & | asUnaryNumericalFunctionExpression () const |
virtual bool | isVariableExpression () const |
VariableExpression const & | asVariableExpression () const |
virtual bool | isPredicateExpression () const |
PredicateExpression const & | asPredicateExpression () const |
Additional Inherited Members | |
![]() | |
virtual void | printToStream (std::ostream &stream) const =0 |
Prints the expression to the given stream. | |
The base class of all binary expressions.
Definition at line 12 of file BinaryExpression.h.
storm::expressions::BinaryExpression::BinaryExpression | ( | ExpressionManager const & | manager, |
Type const & | type, | ||
std::shared_ptr< BaseExpression const > const & | firstOperand, | ||
std::shared_ptr< BaseExpression const > const & | secondOperand | ||
) |
Constructs a binary expression with the given return type and operands.
manager | The manager responsible for this expression. |
type | The return type of the expression. |
firstOperand | The first operand of the expression. |
secondOperand | The second operand of the expression. |
Definition at line 8 of file BinaryExpression.cpp.
|
default |
|
default |
|
virtualdefault |
|
overridevirtual |
Retrieves whether the expression contains a variable.
Reimplemented from storm::expressions::BaseExpression.
Definition at line 18 of file BinaryExpression.cpp.
|
overridevirtual |
Retrieves the set of all variables that appear in the expression.
The | set into which all variables in this expresson are inserted. |
Implements storm::expressions::BaseExpression.
Definition at line 22 of file BinaryExpression.cpp.
|
overridevirtual |
Returns the arity of the expression.
Reimplemented from storm::expressions::BaseExpression.
Definition at line 35 of file BinaryExpression.cpp.
std::shared_ptr< BaseExpression const > const & storm::expressions::BinaryExpression::getFirstOperand | ( | ) | const |
Retrieves the first operand of the expression.
Definition at line 27 of file BinaryExpression.cpp.
|
overridevirtual |
Retrieves the given operand from the expression.
operandIndex | The index of the operand to retrieve. This must be lower than the arity of the expression. |
Reimplemented from storm::expressions::BaseExpression.
Definition at line 39 of file BinaryExpression.cpp.
std::shared_ptr< BaseExpression const > const & storm::expressions::BinaryExpression::getSecondOperand | ( | ) | const |
Retrieves the second operand of the expression.
Definition at line 31 of file BinaryExpression.cpp.
|
overridevirtual |
Checks if the expression is a function application (of any sort).
Reimplemented from storm::expressions::BaseExpression.
Definition at line 14 of file BinaryExpression.cpp.
|
delete |
|
delete |