@ -211,10 +211,16 @@ namespace storm { 
			
		
	
		
			
				
					        std : : unique_ptr < MinMaxLinearEquationSolver < storm : : RationalNumber > >  GeneralMinMaxLinearEquationSolverFactory < storm : : RationalNumber > : : selectSolver ( MatrixType & &  matrix )  const  {  
			
		
	
		
			
				
					            std : : unique_ptr < MinMaxLinearEquationSolver < storm : : RationalNumber > >  result ;  
			
		
	
		
			
				
					            auto  method  =  this - > getMinMaxMethod ( ) ;  
			
		
	
		
			
				
					            STORM_LOG_THROW ( method  = =  MinMaxMethod : : ValueIteration  | |  method  = =  MinMaxMethod : : PolicyIteration  | |  method  = =  MinMaxMethod : : Acyclic ,  storm : : exceptions : : InvalidSettingsException ,  " For this data type only value iteration, policy iteration, and acyclic value iteration are available. " ) ;  
			
		
	
		
			
				
					            IterativeMinMaxLinearEquationSolverSettings < storm : : RationalNumber >  iterativeSolverSettings ;  
			
		
	
		
			
				
					            iterativeSolverSettings . setSolutionMethod ( method ) ;  
			
		
	
		
			
				
					            return  std : : make_unique < IterativeMinMaxLinearEquationSolver < storm : : RationalNumber > > ( std : : forward < MatrixType > ( matrix ) ,  std : : make_unique < GeneralLinearEquationSolverFactory < storm : : RationalNumber > > ( ) ,  iterativeSolverSettings ) ;  
			
		
	
		
			
				
					            if  ( method  = =  MinMaxMethod : : ValueIteration  | |  method  = =  MinMaxMethod : : PolicyIteration  | |  method  = =  MinMaxMethod : : Acyclic )  {  
			
		
	
		
			
				
					                IterativeMinMaxLinearEquationSolverSettings < storm : : RationalNumber >  iterativeSolverSettings ;  
			
		
	
		
			
				
					                iterativeSolverSettings . setSolutionMethod ( method ) ;  
			
		
	
		
			
				
					                result  =   std : : make_unique < IterativeMinMaxLinearEquationSolver < storm : : RationalNumber > > ( std : : forward < MatrixType > ( matrix ) ,  std : : make_unique < GeneralLinearEquationSolverFactory < storm : : RationalNumber > > ( ) ,  iterativeSolverSettings ) ;  
			
		
	
		
			
				
					            }  else  if  ( method  = =  MinMaxMethod : : LinearProgramming )  {  
			
		
	
		
			
				
					                result  =  std : : make_unique < LpMinMaxLinearEquationSolver < storm : : RationalNumber > > ( std : : forward < MatrixType > ( matrix ) ,  std : : make_unique < GeneralLinearEquationSolverFactory < storm : : RationalNumber > > ( ) ,  std : : make_unique < storm : : utility : : solver : : LpSolverFactory < storm : : RationalNumber > > ( ) ) ;  
			
		
	
		
			
				
					            }  else  {  
			
		
	
		
			
				
					                STORM_LOG_THROW ( false ,  storm : : exceptions : : InvalidSettingsException ,  " The selected method is not available for this data type. " ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            return  result ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					# endif 
  
			
		
	
		
			
				
					        template  class  MinMaxLinearEquationSolver < float > ;