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