Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
EdgeContainer.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <set>
5#include <vector>
8
9namespace storm {
10namespace jani {
11
12class Edge;
13class TemplateEdge;
14class Variable;
15class Model;
16
17namespace detail {
18class Edges {
19 public:
20 typedef std::vector<Edge>::iterator iterator;
21 typedef std::vector<Edge>::const_iterator const_iterator;
22
23 Edges(iterator it, iterator ite);
24
28 iterator begin() const;
29
33 iterator end() const;
34
38 bool empty() const;
39
43 std::size_t size() const;
44
45 private:
46 iterator it;
47 iterator ite;
48};
49
51 public:
52 typedef std::vector<Edge>::iterator iterator;
53 typedef std::vector<Edge>::const_iterator const_iterator;
54
56
60 const_iterator begin() const;
61
65 const_iterator end() const;
66
70 bool empty() const;
71
75 std::size_t size() const;
76
77 private:
80};
81} // namespace detail
82
84 public:
85 typedef std::vector<Edge>::iterator iterator;
86 typedef std::vector<Edge>::const_iterator const_iterator;
87
88 EdgeContainer() = default;
89 EdgeContainer(EdgeContainer const& other);
91
92 void clearConcreteEdges();
93 std::vector<Edge> const& getConcreteEdges() const;
94 std::vector<Edge>& getConcreteEdges();
96
97 size_t size() const;
98
100 const_iterator begin() const;
101 iterator end();
102 const_iterator end() const;
103
104 std::set<uint64_t> getActionIndices() const;
105
106 void substitute(std::map<storm::expressions::Variable, storm::expressions::Expression> const& substitution, bool const substituteTranscendentalNumbers);
107 void liftTransientDestinationAssignments(int64_t maxLevel = 0);
109 void insertEdge(Edge const& e, uint64_t locStart, uint64_t locEnd);
110 void insertTemplateEdge(std::shared_ptr<TemplateEdge> const& te);
111 bool isLinear() const;
112 bool usesAssignmentLevels(bool onlyTransient = false) const;
113 void finalize(Model const& containingModel);
114
115 void changeAssignmentVariables(std::map<Variable const*, std::reference_wrapper<Variable const>> const& remapping);
116
117 private:
118 std::vector<Edge> edges;
119 TemplateEdgeContainer templates;
120};
121} // namespace jani
122} // namespace storm
EdgeContainer & operator=(EdgeContainer const &other)
void changeAssignmentVariables(std::map< Variable const *, std::reference_wrapper< Variable const > > const &remapping)
std::set< uint64_t > getActionIndices() const
TemplateEdgeContainer const & getTemplateEdges() const
void insertEdge(Edge const &e, uint64_t locStart, uint64_t locEnd)
Insert an edge, then sort the range between locstart and locend according to the action index.
void finalize(Model const &containingModel)
std::vector< Edge >::iterator iterator
std::vector< Edge > const & getConcreteEdges() const
void insertTemplateEdge(std::shared_ptr< TemplateEdge > const &te)
std::vector< Edge >::const_iterator const_iterator
bool usesAssignmentLevels(bool onlyTransient=false) const
void liftTransientDestinationAssignments(int64_t maxLevel=0)
void substitute(std::map< storm::expressions::Variable, storm::expressions::Expression > const &substitution, bool const substituteTranscendentalNumbers)
bool empty() const
Determines whether this set of edges is empty.
const_iterator end() const
Retrieves an end iterator to the edges.
std::vector< Edge >::const_iterator const_iterator
const_iterator begin() const
Retrieves an iterator to the edges.
std::size_t size() const
Retrieves the number of edges.
std::vector< Edge >::iterator iterator
iterator begin() const
Retrieves an iterator to the edges.
std::vector< Edge >::const_iterator const_iterator
std::vector< Edge >::iterator iterator
bool empty() const
Determines whether this set of edges is empty.
iterator end() const
Retrieves an end iterator to the edges.
std::size_t size() const
Retrieves the number of edges.
LabParser.cpp.
Definition cli.cpp:18