Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
StateLabeling.cpp
Go to the documentation of this file.
2
3namespace storm {
4namespace models {
5namespace sparse {
6StateLabeling::StateLabeling(uint_fast64_t stateCount) : ItemLabeling(stateCount) {
7 // Intentionally left empty.
8}
9
11 // Intentionally left empty.
12}
13
15 // Intentionally left empty.
16}
17
19 return true;
20}
21
22bool StateLabeling::operator==(StateLabeling const& other) const {
23 if (itemCount != other.itemCount) {
24 return false;
25 }
26 if (this->getNumberOfLabels() != other.getNumberOfLabels()) {
27 return false;
28 }
29 for (auto const& labelIndexPair : this->nameToLabelingIndexMap) {
30 if (!other.containsLabel(labelIndexPair.first)) {
31 return false;
32 }
33 if (labelings[labelIndexPair.second] != other.getStates(labelIndexPair.first)) {
34 return false;
35 }
36 }
37 return true;
38}
39
43
47
49 ItemLabeling::addLabelToItem(label, state);
50}
51
55
56bool StateLabeling::getStateHasLabel(std::string const& label, storm::storage::sparse::state_type state) const {
57 return ItemLabeling::getItemHasLabel(label, state);
58}
59
60storm::storage::BitVector const& StateLabeling::getStates(std::string const& label) const {
61 return ItemLabeling::getItems(label);
62}
63
64void StateLabeling::setStates(std::string const& label, storage::BitVector const& labeling) {
65 ItemLabeling::setItems(label, labeling);
66}
67
68void StateLabeling::setStates(std::string const& label, storage::BitVector&& labeling) {
69 ItemLabeling::setItems(label, labeling);
70}
71
72std::ostream& operator<<(std::ostream& out, StateLabeling const& labeling) {
74 return out;
75}
76
77} // namespace sparse
78} // namespace models
79} // namespace storm
A base class managing the labeling of items with a number of (atomic) labels.
virtual std::set< std::string > getLabelsOfItem(uint64_t item) const
Retrieves the set of labels attached to the given item.
virtual void setItems(std::string const &label, storage::BitVector const &labeling)
Sets the labeling of items associated with the given label.
virtual bool getItemHasLabel(std::string const &label, uint64_t item) const
Checks whether a given item is labeled with the given label.
ItemLabeling getSubLabeling(storm::storage::BitVector const &items) const
Retrieves the sub labeling that represents the same labeling as the current one for all selected item...
bool containsLabel(std::string const &label) const
Checks whether a label is registered within this labeling.
std::unordered_map< std::string, uint64_t > nameToLabelingIndexMap
virtual storm::storage::BitVector const & getItems(std::string const &label) const
Returns the labeling of items associated with the given label.
virtual void addLabelToItem(std::string const &label, uint64_t item)
Adds a label to a given item.
void printLabelingInformationToStream(std::ostream &out=std::cout) const
Prints information about the labeling to the specified stream.
std::vector< storm::storage::BitVector > labelings
virtual void removeLabelFromItem(std::string const &label, uint64_t item)
Removes a label from a given item.
std::size_t getNumberOfLabels() const
Returns the number of labels managed by this object.
This class manages the labeling of the state space with a number of (atomic) labels.
bool operator==(StateLabeling const &other) const
Checks whether the two labelings are equal.
bool getStateHasLabel(std::string const &label, storm::storage::sparse::state_type state) const
Checks whether a given state is labeled with the given label.
virtual bool isStateLabeling() const override
StateLabeling(uint_fast64_t stateCount=0)
Constructs an empty labeling for the given number of states.
storm::storage::BitVector const & getStates(std::string const &label) const
Returns the labeling of states associated with the given label.
void addLabelToState(std::string const &label, storm::storage::sparse::state_type state)
Adds a label to a given state.
void removeLabelFromState(std::string const &label, storm::storage::sparse::state_type state)
Removes a label from a given state.
void setStates(std::string const &label, storage::BitVector const &labeling)
Sets the labeling of states associated with the given label.
std::set< std::string > getLabelsOfState(storm::storage::sparse::state_type state) const
Retrieves the set of labels attached to the given state.
StateLabeling getSubLabeling(storm::storage::BitVector const &states) const
Retrieves the sub labeling that represents the same labeling as the current one for all selected stat...
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:16