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
6
#include "
storm/storage/expressions/ExpressionVisitor.h
"
7
#include "
storm/storage/expressions/Expressions.h
"
8
#include "
storm/storage/expressions/Variable.h
"
9
10
#include "
storm/storage/dd/Add.h
"
11
#include "
storm/storage/dd/Bdd.h
"
12
#include "
storm/storage/dd/DdManager.h
"
13
14
namespace
storm
{
15
namespace
adapters {
16
17
template
<storm::dd::DdType Type,
typename
ValueType =
double
>
18
class
AddExpressionAdapter
:
public
storm::expressions::ExpressionVisitor
{
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
23
storm::dd::Add<Type, ValueType>
translateExpression
(
storm::expressions::Expression
const
& expression);
24
storm::dd::Bdd<Type>
translateBooleanExpression
(
storm::expressions::Expression
const
& expression);
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_ */
Add.h
Bdd.h
DdManager.h
ExpressionVisitor.h
Expressions.h
storm::adapters::AddExpressionAdapter
Definition
AddExpressionAdapter.h:18
storm::adapters::AddExpressionAdapter::translateExpression
storm::dd::Add< Type, ValueType > translateExpression(storm::expressions::Expression const &expression)
Definition
AddExpressionAdapter.cpp:28
storm::adapters::AddExpressionAdapter::translateBooleanExpression
storm::dd::Bdd< Type > translateBooleanExpression(storm::expressions::Expression const &expression)
Definition
AddExpressionAdapter.cpp:37
storm::adapters::AddExpressionAdapter::visit
virtual boost::any visit(storm::expressions::IfThenElseExpression const &expression, boost::any const &data) override
Definition
AddExpressionAdapter.cpp:48
storm::adapters::AddExpressionAdapter::setValue
void setValue(storm::expressions::Variable const &variable, ValueType const &value)
Definition
AddExpressionAdapter.cpp:43
storm::dd::Add
Definition
Add.h:33
storm::dd::Bdd
Definition
Bdd.h:25
storm::dd::DdManager
Definition
DdManager.h:25
storm::expressions::BinaryBooleanFunctionExpression
Definition
BinaryBooleanFunctionExpression.h:9
storm::expressions::BinaryNumericalFunctionExpression
Definition
BinaryNumericalFunctionExpression.h:9
storm::expressions::BinaryRelationExpression
Definition
BinaryRelationExpression.h:10
storm::expressions::BooleanLiteralExpression
Definition
BooleanLiteralExpression.h:9
storm::expressions::Expression
Definition
Expression.h:22
storm::expressions::ExpressionVisitor
Definition
ExpressionVisitor.h:22
storm::expressions::IfThenElseExpression
Definition
IfThenElseExpression.h:9
storm::expressions::IntegerLiteralExpression
Definition
IntegerLiteralExpression.h:9
storm::expressions::RationalLiteralExpression
Definition
RationalLiteralExpression.h:11
storm::expressions::UnaryBooleanFunctionExpression
Definition
UnaryBooleanFunctionExpression.h:9
storm::expressions::UnaryNumericalFunctionExpression
Definition
UnaryNumericalFunctionExpression.h:9
storm::expressions::VariableExpression
Definition
VariableExpression.h:10
storm::expressions::Variable
Definition
Variable.h:18
Variable.h
storm
LabParser.cpp.
Definition
cli.cpp:18
src
storm
adapters
AddExpressionAdapter.h
Generated by
1.9.8