Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExpressionEvaluatorBase.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace storm {
6namespace expressions {
7template<typename RationalReturnType>
9 public:
11 virtual ~ExpressionEvaluatorBase() = default;
12
13 virtual bool asBool(Expression const& expression) const = 0;
14 virtual int_fast64_t asInt(Expression const& expression) const = 0;
15 virtual RationalReturnType asRational(Expression const& expression) const = 0;
16
17 virtual void setBooleanValue(storm::expressions::Variable const& variable, bool value) = 0;
18 virtual void setIntegerValue(storm::expressions::Variable const& variable, int_fast64_t value) = 0;
19 virtual void setRationalValue(storm::expressions::Variable const& variable, double value) = 0;
20
21 protected:
28
29 private:
30 // The expression manager that is used by this evaluator.
31 std::shared_ptr<storm::expressions::ExpressionManager const> manager;
32};
33} // namespace expressions
34} // namespace storm
virtual bool asBool(Expression const &expression) const =0
virtual void setBooleanValue(storm::expressions::Variable const &variable, bool value)=0
virtual int_fast64_t asInt(Expression const &expression) const =0
virtual void setIntegerValue(storm::expressions::Variable const &variable, int_fast64_t value)=0
virtual void setRationalValue(storm::expressions::Variable const &variable, double value)=0
virtual RationalReturnType asRational(Expression const &expression) const =0
ExpressionEvaluatorBase(storm::expressions::ExpressionManager const &manager)
storm::expressions::ExpressionManager const & getManager() const
Retrieves the manager associated with this evaluator.
This class is responsible for managing a set of typed variables and all expressions using these varia...