|  | @ -122,7 +122,7 @@ namespace storm { | 
		
	
		
			
				|  |  |             bool hasParents() const { |  |  |             bool hasParents() const { | 
		
	
		
			
				|  |  |                 return !mParents.empty(); |  |  |                 return !mParents.empty(); | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  |  |  |  |              | 
		
	
		
			
				|  |  |             size_t nrParents() const { |  |  |             size_t nrParents() const { | 
		
	
		
			
				|  |  |                 return mParents.size(); |  |  |                 return mParents.size(); | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
	
		
			
				|  | @ -194,7 +194,9 @@ namespace storm { | 
		
	
		
			
				|  |  |              */ |  |  |              */ | 
		
	
		
			
				|  |  |             virtual void extendSubDft(std::set<size_t> elemsInSubtree, std::vector<size_t> const& parentsOfSubRoot) const; |  |  |             virtual void extendSubDft(std::set<size_t> elemsInSubtree, std::vector<size_t> const& parentsOfSubRoot) const; | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  |  |  |  |             virtual bool isTypeEqualTo(DFTElement<ValueType> const& other) const { | 
		
	
		
			
				|  |  |  |  |  |                 return type() == other.type(); | 
		
	
		
			
				|  |  |  |  |  |             } | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |         protected: |  |  |         protected: | 
		
	
	
		
			
				|  | @ -368,7 +370,7 @@ namespace storm { | 
		
	
		
			
				|  |  |                 } |  |  |                 } | 
		
	
		
			
				|  |  |                 return false; |  |  |                 return false; | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  |  |  |  |              | 
		
	
		
			
				|  |  |         }; |  |  |         }; | 
		
	
		
			
				|  |  |          |  |  |          | 
		
	
		
			
				|  |  |         |  |  |         | 
		
	
	
		
			
				|  | @ -413,6 +415,13 @@ namespace storm { | 
		
	
		
			
				|  |  |             bool isColdBasicElement() const override{ |  |  |             bool isColdBasicElement() const override{ | 
		
	
		
			
				|  |  |                 return storm::utility::isZero(mPassiveFailureRate); |  |  |                 return storm::utility::isZero(mPassiveFailureRate); | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  |  |  |  |              | 
		
	
		
			
				|  |  |  |  |  |             bool isTypeEqualTo(DFTElement<ValueType> const& other) const override { | 
		
	
		
			
				|  |  |  |  |  |                 if(!DFTElement<ValueType>::isTypeEqualTo(other)) return false; | 
		
	
		
			
				|  |  |  |  |  |                 DFTBE<ValueType> const&  otherBE = static_cast<DFTBE<ValueType> const&>(other); | 
		
	
		
			
				|  |  |  |  |  |                 return (mActiveFailureRate == otherBE.mActiveFailureRate) && (mPassiveFailureRate == otherBE.mPassiveFailureRate); | 
		
	
		
			
				|  |  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |  |              | 
		
	
		
			
				|  |  |             virtual bool checkDontCareAnymore(storm::storage::DFTState<ValueType>& state, DFTStateSpaceGenerationQueues<ValueType>& queues) const override; |  |  |             virtual bool checkDontCareAnymore(storm::storage::DFTState<ValueType>& state, DFTStateSpaceGenerationQueues<ValueType>& queues) const override; | 
		
	
		
			
				|  |  |         }; |  |  |         }; | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
	
		
			
				|  | @ -454,6 +463,12 @@ namespace storm { | 
		
	
		
			
				|  |  |                 return 0; |  |  |                 return 0; | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  |              |  |  |              | 
		
	
		
			
				|  |  |  |  |  |             bool isTypeEqualTo(DFTElement<ValueType> const& other) const override { | 
		
	
		
			
				|  |  |  |  |  |                 if(!DFTElement<ValueType>::isTypeEqualTo(other)) return false; | 
		
	
		
			
				|  |  |  |  |  |                 DFTConst<ValueType> const& otherCNST = static_cast<DFTConst<ValueType> const&>(other); | 
		
	
		
			
				|  |  |  |  |  |                 return (mFailed == otherCNST.mFailed); | 
		
	
		
			
				|  |  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |  |              | 
		
	
		
			
				|  |  |         }; |  |  |         }; | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
	
		
			
				|  | @ -518,6 +533,13 @@ namespace storm { | 
		
	
		
			
				|  |  |             virtual bool isDependency() const override { |  |  |             virtual bool isDependency() const override { | 
		
	
		
			
				|  |  |                 return true; |  |  |                 return true; | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  |  |  |  |              | 
		
	
		
			
				|  |  |  |  |  |             virtual bool isTypeEqualTo(DFTElement<ValueType> const& other) const override { | 
		
	
		
			
				|  |  |  |  |  |                 if(!DFTElement<ValueType>::isTypeEqualTo(other)) return false; | 
		
	
		
			
				|  |  |  |  |  |                 DFTDependency<ValueType> const& otherDEP= static_cast<DFTDependency<ValueType> const&>(other); | 
		
	
		
			
				|  |  |  |  |  |                 return (mProbability == otherDEP.mProbability); | 
		
	
		
			
				|  |  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |  |              | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |             virtual std::vector<size_t> independentUnit() const override { |  |  |             virtual std::vector<size_t> independentUnit() const override { | 
		
	
		
			
				|  |  |                 std::set<size_t> unit = {this->mId}; |  |  |                 std::set<size_t> unit = {this->mId}; | 
		
	
	
		
			
				|  | @ -819,7 +841,12 @@ namespace storm { | 
		
	
		
			
				|  |  |             std::string typestring() const override{ |  |  |             std::string typestring() const override{ | 
		
	
		
			
				|  |  |                 return "VOT (" + std::to_string(mThreshold) + ")"; |  |  |                 return "VOT (" + std::to_string(mThreshold) + ")"; | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  |  |  |  |              | 
		
	
		
			
				|  |  |  |  |  |             virtual bool isTypeEqualTo(DFTElement<ValueType> const& other) const override { | 
		
	
		
			
				|  |  |  |  |  |                 if(!DFTElement<ValueType>::isTypeEqualTo(other)) return false; | 
		
	
		
			
				|  |  |  |  |  |                 DFTVot<ValueType> const& otherVOT = static_cast<DFTVot<ValueType> const&>(other); | 
		
	
		
			
				|  |  |  |  |  |                 return (mThreshold == otherVOT.mThreshold); | 
		
	
		
			
				|  |  |  |  |  |             } | 
		
	
		
			
				|  |  |         }; |  |  |         }; | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |         template<typename ValueType> |  |  |         template<typename ValueType> | 
		
	
	
		
			
				|  | @ -887,7 +914,12 @@ namespace storm { | 
		
	
		
			
				|  |  |                 } |  |  |                 } | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  |         }; |  |  |         }; | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  |  |  |  |          | 
		
	
		
			
				|  |  |  |  |  |         template<typename ValueType> | 
		
	
		
			
				|  |  |  |  |  |         bool equalType(DFTElement<ValueType> const& e1, DFTElement<ValueType> const& e2) { | 
		
	
		
			
				|  |  |  |  |  |             return e1.isTypeEqualTo(e2); | 
		
	
		
			
				|  |  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |  |          | 
		
	
		
			
				|  |  |     } |  |  |     } | 
		
	
		
			
				|  |  | } |  |  | } | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
	
		
			
				|  | 
 |