Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
AddExpressionAdapter.h
Go to the documentation of this file.
1#ifndef STORM_ADAPTERS_DDEXPRESSIONADAPTER_H_
2#define STORM_ADAPTERS_DDEXPRESSIONADAPTER_H_
3
4#include <memory>
5
9
13
14namespace storm {
15namespace adapters {
16
17template<storm::dd::DdType Type, typename ValueType = double>
19 public:
20 AddExpressionAdapter(std::shared_ptr<storm::dd::DdManager<Type>> ddManager,
21 std::shared_ptr<std::map<storm::expressions::Variable, storm::expressions::Variable>> const& variableMapping);
22
25
26 void setValue(storm::expressions::Variable const& variable, ValueType const& value);
27
28 virtual boost::any visit(storm::expressions::IfThenElseExpression const& expression, boost::any const& data) override;
29 virtual boost::any visit(storm::expressions::BinaryBooleanFunctionExpression const& expression, boost::any const& data) override;
30 virtual boost::any visit(storm::expressions::BinaryNumericalFunctionExpression const& expression, boost::any const& data) override;
31 virtual boost::any visit(storm::expressions::BinaryRelationExpression const& expression, boost::any const& data) override;
32 virtual boost::any visit(storm::expressions::VariableExpression const& expression, boost::any const& data) override;
33 virtual boost::any visit(storm::expressions::UnaryBooleanFunctionExpression const& expression, boost::any const& data) override;
34 virtual boost::any visit(storm::expressions::UnaryNumericalFunctionExpression const& expression, boost::any const& data) override;
35 virtual boost::any visit(storm::expressions::BooleanLiteralExpression const& expression, boost::any const& data) override;
36 virtual boost::any visit(storm::expressions::IntegerLiteralExpression const& expression, boost::any const& data) override;
37 virtual boost::any visit(storm::expressions::RationalLiteralExpression const& expression, boost::any const& data) override;
38
39 private:
40 // The manager responsible for the DDs built by this adapter.
41 std::shared_ptr<storm::dd::DdManager<Type>> ddManager;
42
43 // This member maps the variables used in the expressions to the variables used by the DD manager.
44 std::shared_ptr<std::map<storm::expressions::Variable, storm::expressions::Variable>> variableMapping;
45
46 // A mapping of variables to their values (if set).
47 std::unordered_map<storm::expressions::Variable, ValueType> valueMapping;
48};
49
50} // namespace adapters
51} // namespace storm
52
53#endif /* STORM_ADAPTERS_DDEXPRESSIONADAPTER_H_ */
storm::dd::Add< Type, ValueType > translateExpression(storm::expressions::Expression const &expression)
storm::dd::Bdd< Type > translateBooleanExpression(storm::expressions::Expression const &expression)
virtual boost::any visit(storm::expressions::IfThenElseExpression const &expression, boost::any const &data) override
void setValue(storm::expressions::Variable const &variable, ValueType const &value)
LabParser.cpp.
Definition cli.cpp:18