|  | @ -2,17 +2,19 @@ | 
		
	
		
			
				|  |  | #ifndef DFT_H |  |  | #ifndef DFT_H | 
		
	
		
			
				|  |  | #define	DFT_H |  |  | #define	DFT_H | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  | #include "DFTElements.h" |  |  |  | 
		
	
		
			
				|  |  | #include "../BitVector.h" |  |  |  | 
		
	
		
			
				|  |  | #include <memory> |  |  | #include <memory> | 
		
	
		
			
				|  |  | #include <unordered_map> |  |  | #include <unordered_map> | 
		
	
		
			
				|  |  | #include <list> |  |  | #include <list> | 
		
	
		
			
				|  |  | #include <map> |  |  | #include <map> | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |  |  |  | #include <boost/iterator/counting_iterator.hpp> | 
		
	
		
			
				|  |  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |  | #include "DFTIsomorphism.h" | 
		
	
		
			
				|  |  |  |  |  | #include "DFTElements.h" | 
		
	
		
			
				|  |  |  |  |  | #include "../BitVector.h" | 
		
	
		
			
				|  |  |  |  |  | 
 | 
		
	
		
			
				|  |  | #include "../../utility/math.h" |  |  | #include "../../utility/math.h" | 
		
	
		
			
				|  |  | #include "src/utility/macros.h" |  |  | #include "src/utility/macros.h" | 
		
	
		
			
				|  |  | #include <boost/iterator/counting_iterator.hpp> |  |  |  | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  | namespace storm { |  |  | namespace storm { | 
		
	
		
			
				|  |  |     namespace storage { |  |  |     namespace storage { | 
		
	
	
		
			
				|  | @ -28,8 +30,9 @@ namespace storm { | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  |         }; |  |  |         }; | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  |  |  |  |         /** | 
		
	
		
			
				|  |  |  |  |  |          * Represents a Dynamic Fault Tree | 
		
	
		
			
				|  |  |  |  |  |          */ | 
		
	
		
			
				|  |  |         template<typename ValueType> |  |  |         template<typename ValueType> | 
		
	
		
			
				|  |  |         class DFT { |  |  |         class DFT { | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
	
		
			
				|  | @ -136,12 +139,17 @@ namespace storm { | 
		
	
		
			
				|  |  |                 return result; |  |  |                 return result; | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |  |  |  |             /** | 
		
	
		
			
				|  |  |  |  |  |              *  Get a pointer to an element in the DFT | 
		
	
		
			
				|  |  |  |  |  |              *  @param index The id of the element | 
		
	
		
			
				|  |  |  |  |  |              */ | 
		
	
		
			
				|  |  |             DFTElementPointer const& getElement(size_t index) const { |  |  |             DFTElementPointer const& getElement(size_t index) const { | 
		
	
		
			
				|  |  |                 assert(index < nrElements()); |  |  |                 assert(index < nrElements()); | 
		
	
		
			
				|  |  |                 return mElements[index]; |  |  |                 return mElements[index]; | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |             std::shared_ptr<DFTBE<ValueType>> getBasicElement(size_t index) const { |  |  |             std::shared_ptr<DFTBE<ValueType>> getBasicElement(size_t index) const { | 
		
	
		
			
				|  |  |  |  |  |                 assert(index < nrElements()); | 
		
	
		
			
				|  |  |                 assert(mElements[index]->isBasicElement()); |  |  |                 assert(mElements[index]->isBasicElement()); | 
		
	
		
			
				|  |  |                 return std::static_pointer_cast<DFTBE<ValueType>>(mElements[index]); |  |  |                 return std::static_pointer_cast<DFTBE<ValueType>>(mElements[index]); | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
	
		
			
				|  | @ -182,7 +190,8 @@ namespace storm { | 
		
	
		
			
				|  |  |             std::string getElementsWithStateString(DFTStatePointer const& state) const; |  |  |             std::string getElementsWithStateString(DFTStatePointer const& state) const; | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |             std::string getStateString(DFTStatePointer const& state) const; |  |  |             std::string getStateString(DFTStatePointer const& state) const; | 
		
	
		
			
				|  |  |              |  |  |  | 
		
	
		
			
				|  |  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |  |             DFTIsomorphisms detectIsomorphicChildren() const; | 
		
	
		
			
				|  |  |         private: |  |  |         private: | 
		
	
		
			
				|  |  |             bool elementIndicesCorrect() const { |  |  |             bool elementIndicesCorrect() const { | 
		
	
		
			
				|  |  |                 for(size_t i = 0; i < mElements.size(); ++i) { |  |  |                 for(size_t i = 0; i < mElements.size(); ++i) { | 
		
	
	
		
			
				|  | 
 |