@ -34,6 +34,7 @@ namespace storm { 
		
	
		
			
				                doRefinement  =  true ;                 doRefinement  =  true ;  
		
	
		
			
				                refinementPrecision  =  storm : : utility : : convertNumber < ValueType > ( 1e-4 ) ;                 refinementPrecision  =  storm : : utility : : convertNumber < ValueType > ( 1e-4 ) ;  
		
	
		
			
				                numericPrecision  =  storm : : NumberTraits < ValueType > : : IsExact  ?  storm : : utility : : zero < ValueType > ( )  :  storm : : utility : : convertNumber < ValueType > ( 1e-9 ) ;                 numericPrecision  =  storm : : NumberTraits < ValueType > : : IsExact  ?  storm : : utility : : zero < ValueType > ( )  :  storm : : utility : : convertNumber < ValueType > ( 1e-9 ) ;  
		
	
		
			
				                cacheSubsimplices  =  false ;  
		
	
		
			
				            }             }  
		
	
		
			
				                         
		
	
		
			
				            template < typename  ValueType ,  typename  RewardModelType >             template < typename  ValueType ,  typename  RewardModelType >  
		
	
	
		
			
				
					
					
					
						
							 
					
				 
				@ -41,7 +42,6 @@ namespace storm { 
		
	
		
			
				                cc  =  storm : : utility : : ConstantsComparator < ValueType > ( storm : : utility : : convertNumber < ValueType > ( this - > options . numericPrecision ) ,  false ) ;                 cc  =  storm : : utility : : ConstantsComparator < ValueType > ( storm : : utility : : convertNumber < ValueType > ( this - > options . numericPrecision ) ,  false ) ;  
		
	
		
			
				                useMdp  =  true ;                 useMdp  =  true ;  
		
	
		
			
				                maxIterations  =  1000 ;                 maxIterations  =  1000 ;  
		
	
		
			
				                cacheSubsimplices  =  false ;  
		
	
		
			
				            }             }  
		
	
		
			
				
 
		
	
		
			
				            template < typename  ValueType ,  typename  RewardModelType >             template < typename  ValueType ,  typename  RewardModelType >  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -299,7 +299,7 @@ namespace storm { 
		
	
		
			
				                auto  initTemp  =  computeSubSimplexAndLambdas ( initialBelief . probabilities ,  observationResolutionVector [ initialBelief . observation ] ,  pomdp . getNumberOfStates ( ) ) ;                 auto  initTemp  =  computeSubSimplexAndLambdas ( initialBelief . probabilities ,  observationResolutionVector [ initialBelief . observation ] ,  pomdp . getNumberOfStates ( ) ) ;  
		
	
		
			
				                auto  initSubSimplex  =  initTemp . first ;                 auto  initSubSimplex  =  initTemp . first ;  
		
	
		
			
				                auto  initLambdas  =  initTemp . second ;                 auto  initLambdas  =  initTemp . second ;  
		
	
		
			
				                if  ( cacheSubsimplices )  {  
		
	
		
			
				                if  ( options . cacheSubsimplices )  {  
		
	
		
			
				                    subSimplexCache [ 0 ]  =  initSubSimplex ;                     subSimplexCache [ 0 ]  =  initSubSimplex ;  
		
	
		
			
				                    lambdaCache [ 0 ]  =  initLambdas ;                     lambdaCache [ 0 ]  =  initLambdas ;  
		
	
		
			
				                }                 }  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -406,7 +406,7 @@ namespace storm { 
		
	
		
			
				                                //Triangulate here and put the possibly resulting belief in the grid
                                 //Triangulate here and put the possibly resulting belief in the grid
  
		
	
		
			
				                                std : : vector < std : : map < uint64_t ,  ValueType > >  subSimplex ;                                 std : : vector < std : : map < uint64_t ,  ValueType > >  subSimplex ;  
		
	
		
			
				                                std : : vector < ValueType >  lambdas ;                                 std : : vector < ValueType >  lambdas ;  
		
	
		
			
				                                if  ( cacheSubsimplices  & &  subSimplexCache . count ( idNextBelief )  >  0 )  {  
		
	
		
			
				                                if  ( options . cacheSubsimplices  & &  subSimplexCache . count ( idNextBelief )  >  0 )  {  
		
	
		
			
				                                    subSimplex  =  subSimplexCache [ idNextBelief ] ;                                     subSimplex  =  subSimplexCache [ idNextBelief ] ;  
		
	
		
			
				                                    lambdas  =  lambdaCache [ idNextBelief ] ;                                     lambdas  =  lambdaCache [ idNextBelief ] ;  
		
	
		
			
				                                }  else  {                                 }  else  {  
		
	
	
		
			
				
					
					
					
						
							 
					
				 
				@ -414,7 +414,7 @@ namespace storm { 
		
	
		
			
				                                                                            observationResolutionVector [ beliefList [ idNextBelief ] . observation ] ,  pomdp . getNumberOfStates ( ) ) ;                                                                             observationResolutionVector [ beliefList [ idNextBelief ] . observation ] ,  pomdp . getNumberOfStates ( ) ) ;  
		
	
		
			
				                                    subSimplex  =  temp . first ;                                     subSimplex  =  temp . first ;  
		
	
		
			
				                                    lambdas  =  temp . second ;                                     lambdas  =  temp . second ;  
		
	
		
			
				                                    if  ( cacheSubsimplices )  {  
		
	
		
			
				                                    if  ( options . cacheSubsimplices )  {  
		
	
		
			
				                                        subSimplexCache [ idNextBelief ]  =  subSimplex ;                                         subSimplexCache [ idNextBelief ]  =  subSimplex ;  
		
	
		
			
				                                        lambdaCache [ idNextBelief ]  =  lambdas ;                                         lambdaCache [ idNextBelief ]  =  lambdas ;  
		
	
		
			
				                                    }                                     }  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -600,7 +600,7 @@ namespace storm { 
		
	
		
			
				                        std : : vector < std : : map < uint64_t ,  ValueType > >  subSimplex ;                         std : : vector < std : : map < uint64_t ,  ValueType > >  subSimplex ;  
		
	
		
			
				                        std : : vector < ValueType >  lambdas ;                         std : : vector < ValueType >  lambdas ;  
		
	
		
			
				                        //TODO add caching
                         //TODO add caching
  
		
	
		
			
				                        if  ( cacheSubsimplices  & &  subSimplexCache . count ( idNextBelief )  >  0 )  {  
		
	
		
			
				                        if  ( options . cacheSubsimplices  & &  subSimplexCache . count ( idNextBelief )  >  0 )  {  
		
	
		
			
				                            subSimplex  =  subSimplexCache [ idNextBelief ] ;                             subSimplex  =  subSimplexCache [ idNextBelief ] ;  
		
	
		
			
				                            lambdas  =  lambdaCache [ idNextBelief ] ;                             lambdas  =  lambdaCache [ idNextBelief ] ;  
		
	
		
			
				                        }  else  {                         }  else  {  
		
	
	
		
			
				
					
					
					
						
							 
					
				 
				@ -609,7 +609,7 @@ namespace storm { 
		
	
		
			
				                                                                    pomdp . getNumberOfStates ( ) ) ;                                                                     pomdp . getNumberOfStates ( ) ) ;  
		
	
		
			
				                            subSimplex  =  temp . first ;                             subSimplex  =  temp . first ;  
		
	
		
			
				                            lambdas  =  temp . second ;                             lambdas  =  temp . second ;  
		
	
		
			
				                            if  ( cacheSubsimplices )  {  
		
	
		
			
				                            if  ( options . cacheSubsimplices )  {  
		
	
		
			
				                                subSimplexCache [ idNextBelief ]  =  subSimplex ;                                 subSimplexCache [ idNextBelief ]  =  subSimplex ;  
		
	
		
			
				                                lambdaCache [ idNextBelief ]  =  lambdas ;                                 lambdaCache [ idNextBelief ]  =  lambdas ;  
		
	
		
			
				                            }                             }  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -693,7 +693,7 @@ namespace storm { 
		
	
		
			
				                                std : : vector < std : : map < uint64_t ,  ValueType > >  subSimplex ;                                 std : : vector < std : : map < uint64_t ,  ValueType > >  subSimplex ;  
		
	
		
			
				                                std : : vector < ValueType >  lambdas ;                                 std : : vector < ValueType >  lambdas ;  
		
	
		
			
				                                /* TODO Caching
                                 /* TODO Caching
  
		
	
		
			
				                                if  ( cacheSubsimplices  & &  subSimplexCache . count ( idNextBelief )  >  0 )  {  
		
	
		
			
				                                if  ( options . cacheSubsimplices  & &  subSimplexCache . count ( idNextBelief )  >  0 )  {  
		
	
		
			
				                                    subSimplex  =  subSimplexCache [ idNextBelief ] ;                                     subSimplex  =  subSimplexCache [ idNextBelief ] ;  
		
	
		
			
				                                    lambdas  =  lambdaCache [ idNextBelief ] ;                                     lambdas  =  lambdaCache [ idNextBelief ] ;  
		
	
		
			
				                                }  else  {  */                                 }  else  {  */  
		
	
	
		
			
				
					
					
					
						
							 
					
				 
				@ -702,7 +702,7 @@ namespace storm { 
		
	
		
			
				                                                                        pomdp . getNumberOfStates ( ) ) ;                                                                         pomdp . getNumberOfStates ( ) ) ;  
		
	
		
			
				                                subSimplex  =  temp . first ;                                 subSimplex  =  temp . first ;  
		
	
		
			
				                                lambdas  =  temp . second ;                                 lambdas  =  temp . second ;  
		
	
		
			
				                                /*if (cacheSubsimplices) {
  
		
	
		
			
				                                /*if (options. cacheSubsimplices) {
  
		
	
		
			
				                                    subSimplexCache [ idNextBelief ]  =  subSimplex ;                                     subSimplexCache [ idNextBelief ]  =  subSimplex ;  
		
	
		
			
				                                    lambdaCache [ idNextBelief ]  =  lambdas ;                                     lambdaCache [ idNextBelief ]  =  lambdas ;  
		
	
		
			
				                                }                                 }  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -882,14 +882,14 @@ namespace storm { 
		
	
		
			
				                                    // cache the values  to not always re-calculate
                                     // cache the values  to not always re-calculate
  
		
	
		
			
				                                    std : : vector < std : : map < uint64_t ,  ValueType > >  subSimplex ;                                     std : : vector < std : : map < uint64_t ,  ValueType > >  subSimplex ;  
		
	
		
			
				                                    std : : vector < ValueType >  lambdas ;                                     std : : vector < ValueType >  lambdas ;  
		
	
		
			
				                                    if  ( cacheSubsimplices  & &  subSimplexCache . count ( nextBelief . id )  >  0 )  {  
		
	
		
			
				                                    if  ( options . cacheSubsimplices  & &  subSimplexCache . count ( nextBelief . id )  >  0 )  {  
		
	
		
			
				                                        subSimplex  =  subSimplexCache [ nextBelief . id ] ;                                         subSimplex  =  subSimplexCache [ nextBelief . id ] ;  
		
	
		
			
				                                        lambdas  =  lambdaCache [ nextBelief . id ] ;                                         lambdas  =  lambdaCache [ nextBelief . id ] ;  
		
	
		
			
				                                    }  else  {                                     }  else  {  
		
	
		
			
				                                        auto  temp  =  computeSubSimplexAndLambdas ( nextBelief . probabilities ,  gridResolution ,  pomdp . getNumberOfStates ( ) ) ;                                         auto  temp  =  computeSubSimplexAndLambdas ( nextBelief . probabilities ,  gridResolution ,  pomdp . getNumberOfStates ( ) ) ;  
		
	
		
			
				                                        subSimplex  =  temp . first ;                                         subSimplex  =  temp . first ;  
		
	
		
			
				                                        lambdas  =  temp . second ;                                         lambdas  =  temp . second ;  
		
	
		
			
				                                        if  ( cacheSubsimplices )  {  
		
	
		
			
				                                        if  ( options . cacheSubsimplices )  {  
		
	
		
			
				                                            subSimplexCache [ nextBelief . id ]  =  subSimplex ;                                             subSimplexCache [ nextBelief . id ]  =  subSimplex ;  
		
	
		
			
				                                            lambdaCache [ nextBelief . id ]  =  lambdas ;                                             lambdaCache [ nextBelief . id ]  =  lambdas ;  
		
	
		
			
				                                        }                                         }  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -937,7 +937,7 @@ namespace storm { 
		
	
		
			
				
 
		
	
		
			
				                std : : vector < ValueType >  initialLambda ;                 std : : vector < ValueType >  initialLambda ;  
		
	
		
			
				                std : : vector < std : : map < uint64_t ,  ValueType > >  initialSubsimplex ;                 std : : vector < std : : map < uint64_t ,  ValueType > >  initialSubsimplex ;  
		
	
		
			
				                if  ( cacheSubsimplices )  {  
		
	
		
			
				                if  ( options . cacheSubsimplices )  {  
		
	
		
			
				                    initialLambda  =  lambdaCache [ 0 ] ;                     initialLambda  =  lambdaCache [ 0 ] ;  
		
	
		
			
				                    initialSubsimplex  =  subSimplexCache [ 0 ] ;                     initialSubsimplex  =  subSimplexCache [ 0 ] ;  
		
	
		
			
				                }  else  {                 }  else  {  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -1007,7 +1007,7 @@ namespace storm { 
		
	
		
			
				                std : : map < uint64_t ,  std : : vector < ValueType > >  lambdaCache ;                 std : : map < uint64_t ,  std : : vector < ValueType > >  lambdaCache ;  
		
	
		
			
				
 
		
	
		
			
				                auto  temp  =  computeSubSimplexAndLambdas ( initialBelief . probabilities ,  gridResolution ,  pomdp . getNumberOfStates ( ) ) ;                 auto  temp  =  computeSubSimplexAndLambdas ( initialBelief . probabilities ,  gridResolution ,  pomdp . getNumberOfStates ( ) ) ;  
		
	
		
			
				                if  ( cacheSubsimplices )  {  
		
	
		
			
				                if  ( options . cacheSubsimplices )  {  
		
	
		
			
				                    subSimplexCache [ 0 ]  =  temp . first ;                     subSimplexCache [ 0 ]  =  temp . first ;  
		
	
		
			
				                    lambdaCache [ 0 ]  =  temp . second ;                     lambdaCache [ 0 ]  =  temp . second ;  
		
	
		
			
				                }                 }