8 changed files with 90 additions and 66 deletions
-
2CMakeLists.txt
-
49src/storage/Block.cpp
-
57src/storage/StateBlock.cpp
-
13src/storage/StateBlock.h
-
15src/storage/StronglyConnectedComponent.h
-
4src/storage/StronglyConnectedComponentDecomposition.cpp
-
3src/storage/StronglyConnectedComponentDecomposition.h
-
13src/storage/sparse/StateType.h
@ -1,49 +0,0 @@ |
|||||
#include "src/storage/Block.h"
|
|
||||
|
|
||||
namespace storm { |
|
||||
namespace storage { |
|
||||
Block::iterator Block::begin() { |
|
||||
return states.begin(); |
|
||||
} |
|
||||
|
|
||||
Block::const_iterator Block::begin() const { |
|
||||
return states.begin(); |
|
||||
} |
|
||||
|
|
||||
StronglyConnectedComponent::iterator Block::end() { |
|
||||
return states.end(); |
|
||||
} |
|
||||
|
|
||||
StronglyConnectedComponent::const_iterator Block::end() const { |
|
||||
return states.end(); |
|
||||
} |
|
||||
|
|
||||
std::size_t Block::size() const { |
|
||||
return states.size(); |
|
||||
} |
|
||||
|
|
||||
void Block::insert(value_type const& state) { |
|
||||
states.insert(state); |
|
||||
} |
|
||||
|
|
||||
void Block::erase(value_type const& state) { |
|
||||
states.erase(state); |
|
||||
} |
|
||||
|
|
||||
bool Block::containsState(value_type const& state) const { |
|
||||
return this->states.find(state) != this->states.end(); |
|
||||
} |
|
||||
|
|
||||
std::ostream& operator<<(std::ostream& out, StateBlock const& block) { |
|
||||
out << "{"; |
|
||||
for (auto const& element : block) { |
|
||||
out << element << ", "; |
|
||||
} |
|
||||
out << "}"; |
|
||||
return out; |
|
||||
} |
|
||||
|
|
||||
// Explicitly instantiate template.
|
|
||||
template Block<>; |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,57 @@ |
|||||
|
#include "src/storage/StateBlock.h"
|
||||
|
|
||||
|
namespace storm { |
||||
|
namespace storage { |
||||
|
template <typename ContainerType> |
||||
|
typename StateBlock<ContainerType>::iterator StateBlock<ContainerType>::begin() { |
||||
|
return states.begin(); |
||||
|
} |
||||
|
|
||||
|
template <typename ContainerType> |
||||
|
typename StateBlock<ContainerType>::const_iterator StateBlock<ContainerType>::begin() const { |
||||
|
return states.begin(); |
||||
|
} |
||||
|
|
||||
|
template <typename ContainerType> |
||||
|
typename StateBlock<ContainerType>::iterator StateBlock<ContainerType>::end() { |
||||
|
return states.end(); |
||||
|
} |
||||
|
|
||||
|
template <typename ContainerType> |
||||
|
typename StateBlock<ContainerType>::const_iterator StateBlock<ContainerType>::end() const { |
||||
|
return states.end(); |
||||
|
} |
||||
|
|
||||
|
template <typename ContainerType> |
||||
|
std::size_t StateBlock<ContainerType>::size() const { |
||||
|
return states.size(); |
||||
|
} |
||||
|
|
||||
|
template <typename ContainerType> |
||||
|
void StateBlock<ContainerType>::insert(value_type const& state) { |
||||
|
states.insert(state); |
||||
|
} |
||||
|
|
||||
|
template <typename ContainerType> |
||||
|
void StateBlock<ContainerType>::erase(value_type const& state) { |
||||
|
states.erase(state); |
||||
|
} |
||||
|
|
||||
|
template <typename ContainerType> |
||||
|
bool StateBlock<ContainerType>::containsState(value_type const& state) const { |
||||
|
return this->states.find(state) != this->states.end(); |
||||
|
} |
||||
|
|
||||
|
std::ostream& operator<<(std::ostream& out, FlatSetStateContainer const& block) { |
||||
|
out << "{"; |
||||
|
for (auto const& element : block) { |
||||
|
out << element << ", "; |
||||
|
} |
||||
|
out << "}"; |
||||
|
return out; |
||||
|
} |
||||
|
|
||||
|
// Explicitly instantiate template.
|
||||
|
template Block<FlatSetStateContainer>; |
||||
|
} |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
#ifndef STORM_STORAGE_SPARSE_STATETYPE_H_ |
||||
|
#define STORM_STORAGE_SPARSE_STATETYPE_H_ |
||||
|
|
||||
|
namespace storm { |
||||
|
namespace storage { |
||||
|
namespace sparse { |
||||
|
typedef uint_fast64_t state_type; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#endif /* STORM_STORAGE_SPARSE_STATETYPE_H_ */ |
Reference in new issue
xxxxxxxxxx