@ -24,6 +24,8 @@ namespace storm { 
		
	
		
			
				                / /  States  of  a  removed  ECs  are  mapped  to  the  state  that  substitutes  the  EC .                 / /  States  of  a  removed  ECs  are  mapped  to  the  state  that  substitutes  the  EC .  
		
	
		
			
				                / /  If  the  given  state  does  not  exist  in  the  result  ( i . e . ,  it  is  not  in  the  provided  subsystem ) ,  the  returned  value  will  be  std : : numeric_limits < uint_fast64_t > : : max ( ) ,  i . e . ,  an  invalid  index .                 / /  If  the  given  state  does  not  exist  in  the  result  ( i . e . ,  it  is  not  in  the  provided  subsystem ) ,  the  returned  value  will  be  std : : numeric_limits < uint_fast64_t > : : max ( ) ,  i . e . ,  an  invalid  index .  
		
	
		
			
				                std : : vector < uint_fast64_t >  oldToNewStateMapping ;                 std : : vector < uint_fast64_t >  oldToNewStateMapping ;  
		
	
		
			
				                / /  Indicates  the  rows  that  represent  " staying "  in  the  eliminated  EC  for  ever  
		
	
		
			
				                storm : : storage : : BitVector  sinkRows ;  
		
	
		
			
				            } ;             } ;  
		
	
		
			
				                         
		
	
		
			
				            /*             /*  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -52,7 +54,7 @@ namespace storm { 
		
	
		
			
				                EndComponentEliminatorReturnType  result ;                 EndComponentEliminatorReturnType  result ;  
		
	
		
			
				                std : : vector < uint_fast64_t >  newRowGroupIndices ;                 std : : vector < uint_fast64_t >  newRowGroupIndices ;  
		
	
		
			
				                result . oldToNewStateMapping  =  std : : vector < uint_fast64_t > ( originalMatrix . getRowGroupCount ( ) ,  std : : numeric_limits < uint_fast64_t > : : max ( ) ) ;                 result . oldToNewStateMapping  =  std : : vector < uint_fast64_t > ( originalMatrix . getRowGroupCount ( ) ,  std : : numeric_limits < uint_fast64_t > : : max ( ) ) ;  
		
	
		
			
				                storm : : storage : : BitVector  sinkRows  ( originalMatrix . getRowCount ( ) ,  false ) ;  / /  will  be  resized  as  soon  as  the  rowCount  of  the  resulting  matrix  is  known  
		
	
		
			
				                result . sinkRows  =  storm : : storage : : BitVector ( originalMatrix . getRowCount ( ) ,  false ) ;  / /  will  be  resized  as  soon  as  the  rowCount  of  the  resulting  matrix  is  known  
		
	
		
			
				                                 
		
	
		
			
				                for ( auto  keptState  :  keptStates )  {                 for ( auto  keptState  :  keptStates )  {  
		
	
		
			
				                    result . oldToNewStateMapping [ keptState ]  =  newRowGroupIndices . size ( ) ;  / /  i . e . ,  the  current  number  of  processed  states                     result . oldToNewStateMapping [ keptState ]  =  newRowGroupIndices . size ( ) ;  / /  i . e . ,  the  current  number  of  processed  states  
		
	
	
		
			
				
					
					
					
						
							 
					
				 
				@ -75,14 +77,14 @@ namespace storm { 
		
	
		
			
				                    }                     }  
		
	
		
			
				                    if ( ecGetsSinkRow )  {                     if ( ecGetsSinkRow )  {  
		
	
		
			
				                        STORM_LOG_ASSERT ( result . newToOldRowMapping . size ( )  <  originalMatrix . getRowCount ( ) ,  " Didn't expect to see more rows in the reduced matrix than in the original one. " ) ;                         STORM_LOG_ASSERT ( result . newToOldRowMapping . size ( )  <  originalMatrix . getRowCount ( ) ,  " Didn't expect to see more rows in the reduced matrix than in the original one. " ) ;  
		
	
		
			
				                        sinkRows . set ( result . newToOldRowMapping . size ( ) ,  true ) ;  
		
	
		
			
				                        result . sinkRows . set ( result . newToOldRowMapping . size ( ) ,  true ) ;  
		
	
		
			
				                        result . newToOldRowMapping . push_back ( * ec . begin ( ) - > second . begin ( ) ) ;                         result . newToOldRowMapping . push_back ( * ec . begin ( ) - > second . begin ( ) ) ;  
		
	
		
			
				                    }                     }  
		
	
		
			
				                }                 }  
		
	
		
			
				                newRowGroupIndices . push_back ( result . newToOldRowMapping . size ( ) ) ;                 newRowGroupIndices . push_back ( result . newToOldRowMapping . size ( ) ) ;  
		
	
		
			
				                sinkRows . resize ( result . newToOldRowMapping . size ( ) ) ;  
		
	
		
			
				                result . sinkRows . resize ( result . newToOldRowMapping . size ( ) ) ;  
		
	
		
			
				                                 
		
	
		
			
				                result . matrix  =  buildTransformedMatrix ( originalMatrix ,  newRowGroupIndices ,  result . newToOldRowMapping ,  result . oldToNewStateMapping ,  sinkRows ,  addSelfLoopAtSinkStates ) ;  
		
	
		
			
				                result . matrix  =  buildTransformedMatrix ( originalMatrix ,  newRowGroupIndices ,  result . newToOldRowMapping ,  result . oldToNewStateMapping ,  result . sinkRows ,  addSelfLoopAtSinkStates ) ;  
		
	
		
			
				                STORM_LOG_DEBUG ( " EndComponentEliminator is done. Resulting matrix has  "  < <  result . matrix . getRowGroupCount ( )  < <  "  row groups. " ) ;                 STORM_LOG_DEBUG ( " EndComponentEliminator is done. Resulting matrix has  "  < <  result . matrix . getRowGroupCount ( )  < <  "  row groups. " ) ;  
		
	
		
			
				                return  result ;                 return  result ;  
		
	
		
			
				            }             }