Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
DFTBE.cpp
Go to the documentation of this file.
2
5
6namespace storm::dft {
7namespace storage {
8namespace elements {
9
10template<typename ValueType>
11void DFTBE<ValueType>::extendSubDft(std::set<size_t>& elemsInSubtree, std::vector<size_t> const& parentsOfSubRoot, bool blockParents,
12 bool sparesAsLeaves) const {
13 if (elemsInSubtree.count(this->id())) {
14 return;
15 }
16 DFTElement<ValueType>::extendSubDft(elemsInSubtree, parentsOfSubRoot, blockParents, sparesAsLeaves);
17 if (elemsInSubtree.empty()) {
18 // Parent in the subDFT, i.e., it is *not* a subDFT
19 return;
20 }
21 for (auto const& inDep : ingoingDependencies()) {
22 inDep->extendSubDft(elemsInSubtree, parentsOfSubRoot, blockParents, sparesAsLeaves);
23 if (elemsInSubtree.empty()) {
24 // Parent in the subDFT, i.e., it is *not* a subDFT
25 return;
26 }
27 }
28}
29
30// Explicitly instantiate the class.
31template class DFTBE<double>;
32template class DFTBE<RationalFunction>;
33
34} // namespace elements
35} // namespace storage
36} // namespace storm::dft
Abstract base class for basic events (BEs) in DFTs.
Definition DFTBE.h:14
void extendSubDft(std::set< size_t > &elemsInSubtree, std::vector< size_t > const &parentsOfSubRoot, bool blockParents, bool sparesAsLeaves) const override
Helper to the independent subtree computation.
Definition DFTBE.cpp:11
virtual void extendSubDft(std::set< size_t > &elemsInSubtree, std::vector< size_t > const &parentsOfSubRoot, bool blockParents, bool sparesAsLeaves) const
Helper to the independent subtree computation.