| 
					
					
						
							
						
					
					
				 | 
				@ -12,7 +12,7 @@ namespace tempest { | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				        template<typename ValueType, typename IndexType> | 
				 | 
				 | 
				        template<typename ValueType, typename IndexType> | 
			
		
		
	
		
			
				 | 
				 | 
				        storm::storage::Scheduler<ValueType> PreSafetyShield<ValueType, IndexType>::construct() { | 
				 | 
				 | 
				        storm::storage::Scheduler<ValueType> PreSafetyShield<ValueType, IndexType>::construct() { | 
			
		
		
	
		
			
				 | 
				 | 
				            storm::storage::Scheduler<ValueType> shield(this->rowGroupIndices.size()); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            storm::storage::Scheduler<ValueType> shield(this->rowGroupIndices.size() - 1); | 
			
		
		
	
		
			
				 | 
				 | 
				            STORM_LOG_DEBUG(this->rowGroupIndices.size()); | 
				 | 
				 | 
				            STORM_LOG_DEBUG(this->rowGroupIndices.size()); | 
			
		
		
	
		
			
				 | 
				 | 
				            STORM_LOG_DEBUG(this->relevantStates); | 
				 | 
				 | 
				            STORM_LOG_DEBUG(this->relevantStates); | 
			
		
		
	
		
			
				 | 
				 | 
				            for(auto const& x : this->choiceValues) { | 
				 | 
				 | 
				            for(auto const& x : this->choiceValues) { | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -22,18 +22,15 @@ namespace tempest { | 
			
		
		
	
		
			
				 | 
				 | 
				            for(uint state = 0; state < this->rowGroupIndices.size() - 1; state++) { | 
				 | 
				 | 
				            for(uint state = 0; state < this->rowGroupIndices.size() - 1; state++) { | 
			
		
		
	
		
			
				 | 
				 | 
				                if(this->relevantStates.get(state)) { | 
				 | 
				 | 
				                if(this->relevantStates.get(state)) { | 
			
		
		
	
		
			
				 | 
				 | 
				                    uint rowGroupSize = this->rowGroupIndices[state + 1] - this->rowGroupIndices[state]; | 
				 | 
				 | 
				                    uint rowGroupSize = this->rowGroupIndices[state + 1] - this->rowGroupIndices[state]; | 
			
		
		
	
		
			
				 | 
				 | 
				                    STORM_LOG_DEBUG("rowGroupSize: " << rowGroupSize); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                    storm::storage::Distribution<ValueType, IndexType> actionDistribution; | 
				 | 
				 | 
				                    storm::storage::Distribution<ValueType, IndexType> actionDistribution; | 
			
		
		
	
		
			
				 | 
				 | 
				                    ValueType maxProbability = *std::max_element(this->choiceValues.begin(), this->choiceValues.begin() + rowGroupSize); | 
				 | 
				 | 
				                    ValueType maxProbability = *std::max_element(this->choiceValues.begin(), this->choiceValues.begin() + rowGroupSize); | 
			
		
		
	
		
			
				 | 
				 | 
				                    for(uint choice = 0; choice < rowGroupSize; choice++, choice_it++) { | 
				 | 
				 | 
				                    for(uint choice = 0; choice < rowGroupSize; choice++, choice_it++) { | 
			
		
		
	
		
			
				 | 
				 | 
				                        if(allowedValue<ValueType, IndexType>(maxProbability, *choice_it, this->shieldingExpression)) { | 
				 | 
				 | 
				                        if(allowedValue<ValueType, IndexType>(maxProbability, *choice_it, this->shieldingExpression)) { | 
			
		
		
	
		
			
				 | 
				 | 
				                            actionDistribution.addProbability(choice, *choice_it); | 
				 | 
				 | 
				                            actionDistribution.addProbability(choice, *choice_it); | 
			
		
		
	
		
			
				 | 
				 | 
				                            STORM_LOG_DEBUG("Adding " << *choice_it << " to dist"); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                        } | 
				 | 
				 | 
				                        } | 
			
		
		
	
		
			
				 | 
				 | 
				                    } | 
				 | 
				 | 
				                    } | 
			
		
		
	
		
			
				 | 
				 | 
				                    actionDistribution.normalize(); | 
				 | 
				 | 
				                    actionDistribution.normalize(); | 
			
		
		
	
		
			
				 | 
				 | 
				                    shield.setChoice(storm::storage::SchedulerChoice<ValueType>(actionDistribution), state); | 
				 | 
				 | 
				                    shield.setChoice(storm::storage::SchedulerChoice<ValueType>(actionDistribution), state); | 
			
		
		
	
		
			
				 | 
				 | 
				                    STORM_LOG_DEBUG("SchedulerChoice: " << storm::storage::SchedulerChoice<ValueType>(actionDistribution)); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                } else { | 
				 | 
				 | 
				                } else { | 
			
		
		
	
		
			
				 | 
				 | 
				                    shield.setChoice(storm::storage::Distribution<ValueType, IndexType>(), state); | 
				 | 
				 | 
				                    shield.setChoice(storm::storage::Distribution<ValueType, IndexType>(), state); | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |