@ -4,6 +4,7 @@ 
			
		 
		
	
		
			
				 
				 
				# include  "storm/logic/FragmentSpecification.h" 
  
				 
				 
				# include  "storm/logic/FragmentSpecification.h" 
  
			
		 
		
	
		
			
				 
				 
				# include  "storm/modelchecker/results/ExplicitQuantitativeCheckResult.h" 
  
				 
				 
				# include  "storm/modelchecker/results/ExplicitQuantitativeCheckResult.h" 
  
			
		 
		
	
		
			
				 
				 
				# include  "storm/modelchecker/results/ExplicitQualitativeCheckResult.h" 
  
				 
				 
				# include  "storm/modelchecker/results/ExplicitQualitativeCheckResult.h" 
  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				# include  "storm/utility/vector.h" 
  
			
		 
		
	
		
			
				 
				 
				# include  "storm/models/sparse/Dtmc.h" 
  
				 
				 
				# include  "storm/models/sparse/Dtmc.h" 
  
			
		 
		
	
		
			
				 
				 
				# include  "storm/models/sparse/Mdp.h" 
  
				 
				 
				# include  "storm/models/sparse/Mdp.h" 
  
			
		 
		
	
		
			
				 
				 
				# include  "storm/models/sparse/StandardRewardModel.h" 
  
				 
				 
				# include  "storm/models/sparse/StandardRewardModel.h" 
  
			
		 
		
	
	
		
			
				
					
						
							 
						 
					
					
						
							 
						 
					
					
				 
				@ -130,6 +131,18 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				            }  
				 
				 
				            }  
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        template  < typename  SparseModelType ,  typename  ConstantType >  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < QuantitativeCheckResult < ConstantType > >  SparseParameterLiftingModelChecker < SparseModelType ,  ConstantType > : : getBound ( storm : : storage : : ParameterRegion < typename  SparseModelType : : ValueType >  const &  region ,  storm : : solver : : OptimizationDirection  const &  dirForParameters )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            STORM_LOG_WARN_COND ( this - > currentCheckTask - > getFormula ( ) . hasQuantitativeResult ( ) ,  " Computing quantitative bounds for a qualitative formula... " ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            return  std : : make_unique < ExplicitQuantitativeCheckResult < ConstantType > > ( std : : move ( computeQuantitativeValues ( region ,  dirForParameters ) - > template  asExplicitQuantitativeCheckResult < ConstantType > ( ) ) ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        template  < typename  SparseModelType ,  typename  ConstantType >  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        typename  SparseModelType : : ValueType  SparseParameterLiftingModelChecker < SparseModelType ,  ConstantType > : : getBoundAtInitState ( storm : : storage : : ParameterRegion < typename  SparseModelType : : ValueType >  const &  region ,  storm : : solver : : OptimizationDirection  const &  dirForParameters )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            STORM_LOG_THROW ( this - > parametricModel - > getInitialStates ( ) . getNumberOfSetBits ( )  = =  1 ,  storm : : exceptions : : NotSupportedException ,  " Getting a bound at the initial state requires a model with a single initial state. " ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            return  storm : : utility : : convertNumber < typename  SparseModelType : : ValueType > ( getBound ( region ,  dirForParameters ) - > template  asExplicitQuantitativeCheckResult < ConstantType > ( ) [ * this - > parametricModel - > getInitialStates ( ) . begin ( ) ] ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template  < typename  SparseModelType ,  typename  ConstantType >  
				 
				 
				        template  < typename  SparseModelType ,  typename  ConstantType >  
			
		 
		
	
		
			
				 
				 
				        SparseModelType  const &  SparseParameterLiftingModelChecker < SparseModelType ,  ConstantType > : : getConsideredParametricModel ( )  const  {  
				 
				 
				        SparseModelType  const &  SparseParameterLiftingModelChecker < SparseModelType ,  ConstantType > : : getConsideredParametricModel ( )  const  {  
			
		 
		
	
		
			
				 
				 
				            return  * parametricModel ;  
				 
				 
				            return  * parametricModel ;