| 
					
					
						
							
						
					
					
				 | 
				@ -25,10 +25,32 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				         | 
				 | 
				 | 
				         | 
			
		
		
	
		
			
				 | 
				 | 
				        template<typename ValueType> | 
				 | 
				 | 
				        template<typename ValueType> | 
			
		
		
	
		
			
				 | 
				 | 
				        DFTState<ValueType>::DFTState(storm::storage::BitVector const& status, DFT<ValueType> const& dft, DFTStateGenerationInfo const& stateGenerationInfo, size_t id) : mStatus(status), mId(id), mDft(dft), mStateGenerationInfo(stateGenerationInfo) { | 
				 | 
				 | 
				        DFTState<ValueType>::DFTState(storm::storage::BitVector const& status, DFT<ValueType> const& dft, DFTStateGenerationInfo const& stateGenerationInfo, size_t id) : mStatus(status), mId(id), mDft(dft), mStateGenerationInfo(stateGenerationInfo) { | 
			
		
		
	
		
			
				 | 
				 | 
				            // TODO implement
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				            assert(false); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            for(size_t index = 0; index < mDft.nrElements(); ++index) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                // Initialize currently failable BE
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                if (mDft.isBasicElement(index) && isOperational(index)) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    if (!mDft.getBasicElement(index)->isColdBasicElement() || !mDft.hasRepresentant(index) || isActive(mDft.getRepresentant(index)->id())) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                        mIsCurrentlyFailableBE.push_back(index); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                        STORM_LOG_TRACE("Currently failable: " << mDft.getBasicElement(index)->toString()); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    } | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                } else if (mDft.getElement(index)->isSpareGate()) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    // Initialize used representants
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    uint_fast64_t useId = uses(index); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    mUsedRepresentants.push_back(useId); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    STORM_LOG_TRACE("Spare " << index << " uses " << useId); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                } | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            } | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				             | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            // Initialize failable dependencies
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            for (size_t dependencyId : mDft.getDependencies()) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                std::shared_ptr<DFTDependency<ValueType> const> dependency = mDft.getDependency(dependencyId); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                assert(dependencyId == dependency->id()); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                if (hasFailed(dependency->triggerEvent()->id()) && getElementState(dependency->dependentEvent()->id()) == DFTElementState::Operational) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    mFailableDependencies.push_back(dependencyId); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    STORM_LOG_TRACE("New dependency failure: " << dependency->toString()); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                } | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            } | 
			
		
		
	
		
			
				 | 
				 | 
				        } | 
				 | 
				 | 
				        } | 
			
		
		
	
		
			
				 | 
				 | 
				         | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				        template<typename ValueType> | 
				 | 
				 | 
				        template<typename ValueType> | 
			
		
		
	
		
			
				 | 
				 | 
				        DFTElementState DFTState<ValueType>::getElementState(size_t id) const { | 
				 | 
				 | 
				        DFTElementState DFTState<ValueType>::getElementState(size_t id) const { | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |