@ -2,12 +2,15 @@ 
		
	
		
			
				
 
		
	
		
			
				# include  <ostream> # include  <ostream>  
		
	
		
			
				# include  <boost/optional.hpp> # include  <boost/optional.hpp>  
		
	
		
			
				# include  <storm/modelchecker/parametric/SparseParameterLiftingModelChecker.h>  
		
	
		
			
				
 
		
	
		
			
				# include  "storm/utility/region.h" # include  "storm/utility/region.h"  
		
	
		
			
				# include  "storm/modelchecker/region/AbstractSparseRegionModelChecker.h" # include  "storm/modelchecker/region/AbstractSparseRegionModelChecker.h"  
		
	
		
			
				# include  "storm/modelchecker/region/ParameterRegion.h" # include  "storm/modelchecker/region/ParameterRegion.h"  
		
	
		
			
				# include  "storm/modelchecker/region/ApproximationModel.h" # include  "storm/modelchecker/region/ApproximationModel.h"  
		
	
		
			
				# include  "storm/modelchecker/parametric/SparseInstantiationModelChecker.h" # include  "storm/modelchecker/parametric/SparseInstantiationModelChecker.h"  
		
	
		
			
				# include  "storm/modelchecker/parametric/SparseParameterLiftingModelChecker.h"  
		
	
		
			
				
 
		
	
		
			
				
 
		
	
		
			
				# include  "storm/models/sparse/StandardRewardModel.h" # include  "storm/models/sparse/StandardRewardModel.h"  
		
	
		
			
				# include  "storm/models/sparse/Model.h" # include  "storm/models/sparse/Model.h"  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -191,7 +194,7 @@ namespace storm { 
		
	
		
			
				                 *  Returns  the  approximation  model .                  *  Returns  the  approximation  model .  
		
	
		
			
				                 *  If  it  is  not  yet  available ,  it  is  computed .                  *  If  it  is  not  yet  available ,  it  is  computed .  
		
	
		
			
				                 */                  */  
		
	
		
			
				                std : : shared_ptr < ApproximationModel < ParametricSparseModelType ,  ConstantType > >  const &  getApproximationModel ( ) ;  
		
	
		
			
				                std : : shared_ptr < storm : : modelchecker : : parametric : : SparseParameterLiftingModelChecker < ParametricSparseModelType ,  ConstantType > >  const &  getApproximationModel ( ) ;  
		
	
		
			
				                                 
		
	
		
			
				                /*!                 /*!  
		
	
		
			
				                 *  Checks  the  value  of  the  function  at  some  sampling  points  within  the  given  region .                  *  Checks  the  value  of  the  function  at  some  sampling  points  within  the  given  region .  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -240,13 +243,18 @@ namespace storm { 
		
	
		
			
				                                / /  the  model  that  can  be  instantiated  to  check  the  value  at  a  certain  point                                 / /  the  model  that  can  be  instantiated  to  check  the  value  at  a  certain  point  
		
	
		
			
				                std : : shared_ptr < storm : : modelchecker : : parametric : : SparseInstantiationModelChecker < ParametricSparseModelType ,  ConstantType > >  samplingModel ;                 std : : shared_ptr < storm : : modelchecker : : parametric : : SparseInstantiationModelChecker < ParametricSparseModelType ,  ConstantType > >  samplingModel ;  
		
	
		
			
				                                 
		
	
		
			
				            private :  
		
	
		
			
				                                /*!                                 /*!  
		
	
		
			
				                 *  initializes  the  Approximation  Model                  *  initializes  the  Approximation  Model  
		
	
		
			
				                 *                  *  
		
	
		
			
				                 *  @ note  does  not  check  whether  approximation  can  be  applied                  *  @ note  does  not  check  whether  approximation  can  be  applied  
		
	
		
			
				                 */                  */  
		
	
		
			
				                void  initializeApproximationModel ( ParametricSparseModelType  const &  model ,  std : : shared_ptr < storm : : logic : : OperatorFormula  const >  formula ) ;  
		
	
		
			
				                virtual  void  initializeApproximationModel ( ParametricSparseModelType  const &  model ,  std : : shared_ptr < storm : : logic : : OperatorFormula  const >  formula )  =  0 ;  
		
	
		
			
				                 
		
	
		
			
				                / /  the  model  that   is  used  to  approximate  the  reachability  values  
		
	
		
			
				                std : : shared_ptr < storm : : modelchecker : : parametric : : SparseParameterLiftingModelChecker < ParametricSparseModelType ,  ConstantType > >  approximationModel ;  
		
	
		
			
				                 
		
	
		
			
				            private :  
		
	
		
			
				
 
		
	
		
			
				
 
		
	
		
			
				                                 
		
	
		
			
				                / /  The  model  this  model  checker  is  supposed  to  analyze .                 / /  The  model  this  model  checker  is  supposed  to  analyze .  
		
	
	
		
			
				
					
					
					
						
							 
					
				 
				@ -261,8 +269,6 @@ namespace storm { 
		
	
		
			
				                std : : shared_ptr < storm : : logic : : OperatorFormula  const >  simpleFormula ;                 std : : shared_ptr < storm : : logic : : OperatorFormula  const >  simpleFormula ;  
		
	
		
			
				                / /  a  flag  that  is  true  if  approximation  is  applicable ,  i . e . ,  there  are  only  linear  functions  at  transitions  of  the  model                 / /  a  flag  that  is  true  if  approximation  is  applicable ,  i . e . ,  there  are  only  linear  functions  at  transitions  of  the  model  
		
	
		
			
				                bool  isApproximationApplicable ;                 bool  isApproximationApplicable ;  
		
	
		
			
				                / /  the  model  that   is  used  to  approximate  the  reachability  values  
		
	
		
			
				                std : : shared_ptr < ApproximationModel < ParametricSparseModelType ,  ConstantType > >  approximationModel ;  
		
	
		
			
				
 
		
	
		
			
				                / /  a  flag  that  is  true  iff  the  resulting  reachability  function  is  constant                 / /  a  flag  that  is  true  iff  the  resulting  reachability  function  is  constant  
		
	
		
			
				                boost : : optional < ConstantType >  constantResult ;                 boost : : optional < ConstantType >  constantResult ;