Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ToRationalNumberVisitor.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <unordered_map>
4
5
#include <boost/optional.hpp>
6
7
#include "
storm/adapters/RationalNumberAdapter.h
"
8
9
#include "
storm/storage/expressions/Expression.h
"
10
#include "
storm/storage/expressions/ExpressionEvaluatorBase.h
"
11
#include "
storm/storage/expressions/ExpressionVisitor.h
"
12
#include "
storm/storage/expressions/Expressions.h
"
13
#include "
storm/storage/expressions/Variable.h
"
14
15
namespace
storm
{
16
namespace
expressions {
17
18
template
<
typename
RationalNumberType>
19
class
ToRationalNumberVisitor
:
public
ExpressionVisitor
{
20
public
:
21
ToRationalNumberVisitor
();
22
ToRationalNumberVisitor
(
ExpressionEvaluatorBase<RationalNumberType>
const
& evaluator);
23
24
RationalNumberType
toRationalNumber
(
Expression
const
& expression);
25
26
virtual
boost::any
visit
(
IfThenElseExpression
const
& expression, boost::any
const
& data)
override
;
27
virtual
boost::any
visit
(
BinaryBooleanFunctionExpression
const
& expression, boost::any
const
& data)
override
;
28
virtual
boost::any
visit
(
BinaryNumericalFunctionExpression
const
& expression, boost::any
const
& data)
override
;
29
virtual
boost::any
visit
(
BinaryRelationExpression
const
& expression, boost::any
const
& data)
override
;
30
virtual
boost::any
visit
(
VariableExpression
const
& expression, boost::any
const
& data)
override
;
31
virtual
boost::any
visit
(
UnaryBooleanFunctionExpression
const
& expression, boost::any
const
& data)
override
;
32
virtual
boost::any
visit
(
UnaryNumericalFunctionExpression
const
& expression, boost::any
const
& data)
override
;
33
virtual
boost::any
visit
(
BooleanLiteralExpression
const
& expression, boost::any
const
& data)
override
;
34
virtual
boost::any
visit
(
IntegerLiteralExpression
const
& expression, boost::any
const
& data)
override
;
35
virtual
boost::any
visit
(
RationalLiteralExpression
const
& expression, boost::any
const
& data)
override
;
36
37
void
setMapping
(
storm::expressions::Variable
const
& variable, RationalNumberType
const
& value);
38
39
private
:
40
std::unordered_map<storm::expressions::Variable, RationalNumberType> valueMapping;
41
42
// An optional reference to an expression evaluator (mainly for resolving the boolean condition in IfThenElse expressions)
43
boost::optional<ExpressionEvaluatorBase<RationalNumberType>
const
&> evaluator;
44
};
45
}
// namespace expressions
46
}
// namespace storm
Expression.h
ExpressionEvaluatorBase.h
ExpressionVisitor.h
Expressions.h
RationalNumberAdapter.h
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::ExpressionEvaluatorBase
Definition
ExpressionEvaluatorBase.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::ToRationalNumberVisitor
Definition
ToRationalNumberVisitor.h:19
storm::expressions::ToRationalNumberVisitor::toRationalNumber
RationalNumberType toRationalNumber(Expression const &expression)
Definition
ToRationalNumberVisitor.cpp:21
storm::expressions::ToRationalNumberVisitor::ToRationalNumberVisitor
ToRationalNumberVisitor()
Definition
ToRationalNumberVisitor.cpp:10
storm::expressions::ToRationalNumberVisitor::setMapping
void setMapping(storm::expressions::Variable const &variable, RationalNumberType const &value)
Definition
ToRationalNumberVisitor.cpp:139
storm::expressions::ToRationalNumberVisitor::visit
virtual boost::any visit(IfThenElseExpression const &expression, boost::any const &data) override
Definition
ToRationalNumberVisitor.cpp:26
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
storage
expressions
ToRationalNumberVisitor.h
Generated by
1.9.8