|  |  | @ -112,6 +112,8 @@ namespace storm { | 
			
		
	
		
			
				
					|  |  |  |                 return this->computeReachabilityProbabilities(env, checkTask.substituteFormula(formula.asReachabilityProbabilityFormula())); | 
			
		
	
		
			
				
					|  |  |  |             } else if (formula.isUntilFormula()) { | 
			
		
	
		
			
				
					|  |  |  |                 return this->computeUntilProbabilities(env, checkTask.substituteFormula(formula.asUntilFormula())); | 
			
		
	
		
			
				
					|  |  |  |             } else if (formula.isGloballyFormula()) { | 
			
		
	
		
			
				
					|  |  |  |                 return this->computeGloballyProbabilities(env, checkTask.substituteFormula(formula.asGloballyFormula())); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "The given formula '" << formula << "' is invalid."); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  | @ -144,6 +146,20 @@ namespace storm { | 
			
		
	
		
			
				
					|  |  |  |             return result; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         template<typename ModelType> | 
			
		
	
		
			
				
					|  |  |  |         std::unique_ptr<CheckResult> SparseSmgRpatlModelChecker<ModelType>::computeGloballyProbabilities(Environment const& env, CheckTask<storm::logic::GloballyFormula, ValueType> const& checkTask) { | 
			
		
	
		
			
				
					|  |  |  |             storm::logic::GloballyFormula const& pathFormula = checkTask.getFormula(); | 
			
		
	
		
			
				
					|  |  |  |             std::unique_ptr<CheckResult> subResultPointer = this->check(env, pathFormula.getSubformula()); | 
			
		
	
		
			
				
					|  |  |  |             ExplicitQualitativeCheckResult const& subResult = subResultPointer->asExplicitQualitativeCheckResult(); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             auto ret = storm::modelchecker::helper::SparseSmgRpatlHelper<ValueType>::computeGloballyProbabilities(env, storm::solver::SolveGoal<ValueType>(this->getModel(), checkTask), this->getModel().getTransitionMatrix(), this->getModel().getBackwardTransitions(), subResult.getTruthValuesVector(), checkTask.isQualitativeSet(), statesOfCoalition, checkTask.isProduceSchedulersSet(), checkTask.getHint()); | 
			
		
	
		
			
				
					|  |  |  |             std::unique_ptr<CheckResult> result(new ExplicitQuantitativeCheckResult<ValueType>(std::move(ret.values))); | 
			
		
	
		
			
				
					|  |  |  |             if (checkTask.isProduceSchedulersSet() && ret.scheduler) { | 
			
		
	
		
			
				
					|  |  |  |                 result->asExplicitQuantitativeCheckResult<ValueType>().setScheduler(std::move(ret.scheduler)); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             return result; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             template<typename SparseSmgModelType> | 
			
		
	
		
			
				
					|  |  |  |         std::unique_ptr<CheckResult> SparseSmgRpatlModelChecker<SparseSmgModelType>::computeLongRunAverageProbabilities(Environment const& env, CheckTask<storm::logic::StateFormula, ValueType> const& checkTask) { | 
			
		
	
		
			
				
					|  |  |  |             STORM_LOG_THROW(false, storm::exceptions::NotImplementedException, "NYI"); | 
			
		
	
	
		
			
				
					|  |  | 
 |