Storm 1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExpressionEvaluator.cpp
Go to the documentation of this file.
2
5
6namespace storm {
7namespace expressions {
11
12template<typename RationalType>
18
19template<typename RationalType>
24
25template<typename RationalType>
30
31template<typename RationalType>
36
38 : ExprtkExpressionEvaluatorBase<RationalNumber>(manager), rationalNumberVisitor(*this) {
39 // Intentionally left empty.
40}
41
44
45 // Not forwarding value of variable to rational number visitor as it cannot treat boolean variables anyway.
46}
47
50 rationalNumberVisitor.setMapping(variable, storm::utility::convertNumber<RationalNumber>(value));
51}
52
57
58void ExpressionEvaluator<RationalNumber>::setRationalValue(storm::expressions::Variable const& variable, RationalNumber const& value) {
60 rationalNumberVisitor.setMapping(variable, value);
61}
62
63RationalNumber ExpressionEvaluator<RationalNumber>::asRational(Expression const& expression) const {
64 RationalNumber result = this->rationalNumberVisitor.toRationalNumber(expression);
65 return result;
66}
67
69 : ExprtkExpressionEvaluatorBase<RationalFunction>(manager), rationalFunctionVisitor(*this) {
70 // Intentionally left empty.
71}
72
75
76 // Not forwarding value of variable to rational number visitor as it cannot treat boolean variables anyway.
77}
78
83
88
90 STORM_LOG_ASSERT(storm::utility::isConstant(value), "Value for rational variable is not a constant.");
92 rationalFunctionVisitor.setMapping(variable, value);
93}
94
96 return this->rationalFunctionVisitor.toRationalFunction(expression);
97}
98
101} // namespace expressions
102} // namespace storm
ExpressionEvaluator(storm::expressions::ExpressionManager const &manager)
ExpressionEvaluator(storm::expressions::ExpressionManager const &manager)
ExpressionEvaluator(storm::expressions::ExpressionManager const &manager)
storm::expressions::ExpressionManager const & getManager() const
void setRationalValue(storm::expressions::Variable const &variable, double value) override
void setBooleanValue(storm::expressions::Variable const &variable, bool value) override
std::unordered_map< storm::expressions::Variable, storm::expressions::Expression > variableToExpressionMap
void setIntegerValue(storm::expressions::Variable const &variable, int_fast64_t value) override
ExpressionEvaluatorWithVariableToExpressionMap(storm::expressions::ExpressionManager const &manager)
This class is responsible for managing a set of typed variables and all expressions using these varia...
void setIntegerValue(storm::expressions::Variable const &variable, int_fast64_t value) override
ExprtkExpressionEvaluatorBase(storm::expressions::ExpressionManager const &manager)
void setBooleanValue(storm::expressions::Variable const &variable, bool value) override
void setRationalValue(storm::expressions::Variable const &variable, double value) override
ExprtkExpressionEvaluator(storm::expressions::ExpressionManager const &manager)
Creates an expression evaluator that is capable of evaluating expressions managed by the given manage...
#define STORM_LOG_ASSERT(cond, message)
Definition macros.h:11
bool isConstant(ValueType const &)
TargetType convertNumber(SourceType const &number)
carl::RationalFunction< Polynomial, true > RationalFunction