10namespace expressions {
12 :
BaseExpression(manager, manager.getTranscendentalNumberType()), value(value) {
25 STORM_LOG_THROW(
false, storm::exceptions::UnexpectedException,
"Unexpected constant value.");
41 return this->shared_from_this();
46 STORM_LOG_ASSERT(janiVisitor !=
nullptr,
"Visitor of jani expression should be of type JaniVisitor.");
47 STORM_LOG_THROW(janiVisitor !=
nullptr, storm::exceptions::UnexpectedException,
"Visitor of jani expression should be of type JaniVisitor.");
48 return janiVisitor->visit(*
this, data);
62 STORM_LOG_THROW(
false, storm::exceptions::UnexpectedException,
"Unexpected constant value.");
The base class of all expression classes.
This class is responsible for managing a set of typed variables and all expressions using these varia...
virtual double evaluateAsDouble(Valuation const *valuation=nullptr) const override
Evaluates the expression under the valuation of unknowns (variables and constants) given by the valua...
TranscendentalNumber const & getTranscendentalNumber() const
Getter for the constant value stored by the object.
std::string asString() const
Get the Transcendental number as string, like in the Jani file (single character)
virtual boost::any accept(ExpressionVisitor &visitor, boost::any const &data) const override
Accepts the given visitor by calling its visit method.
virtual std::shared_ptr< BaseExpression const > simplify() const override
Simplifies the expression according to some simple rules.
TranscendentalNumberLiteralExpression(ExpressionManager const &manager, TranscendentalNumber const &value)
Creates a unary expression with the given return type and operand.
virtual void gatherVariables(std::set< storm::expressions::Variable > &variables) const override
Retrieves the set of all variables that appear in the expression.
virtual void printToStream(std::ostream &stream) const override
Prints the expression to the given stream.
TranscendentalNumber
Enum class to represent the supported TranscendentalNumbers.
virtual bool isLiteral() const override
Retrieves whether the expression is a literal.
The base class of all valuations of variables.
#define STORM_LOG_ASSERT(cond, message)
#define STORM_LOG_THROW(cond, exception, message)