@ -147,9 +147,10 @@ namespace storm { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            auto  currentX  =  & eigenX ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            auto  nextX  =  & eigenMultiplyResult ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            for  ( uint64_t  iteration  =  0 ;  iteration  <  n ;  + + iteration )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                * nextX  =  * eigenA  *  * currentX ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                if  ( eigenB  ! =  nullptr )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    * nextX  + =  * eigenB ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                if  ( eigenB )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    nextX - > noalias ( )  =  * eigenA  *  * currentX  +  * eigenB ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    nextX - > noalias ( )  =  * eigenA  *  * currentX ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                std : : swap ( nextX ,  currentX ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -209,11 +210,11 @@ namespace storm { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            auto  currentX  =  & eigenX ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            auto  nextX  =  & eigenMultiplyResult ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            for  ( uint64_t  iteration  =  0 ;  iteration  <  n ;  + + iteration )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                * nextX  =  * eigenA  *  * currentX ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                if  ( eigenB  ! =  nullptr )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    * nextX  + =  * eigenB ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                if  ( eigenB )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    nextX - > noalias ( )  =  * eigenA  *  * currentX  +  * eigenB ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    nextX - > noalias ( )  =  * eigenA  *  * currentX ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                std : : swap ( currentX ,  nextX ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            // If the last result we obtained is not the one in the input vector x, we swap the result there.
  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -261,11 +262,11 @@ namespace storm { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            auto  currentX  =  & eigenX ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            auto  nextX  =  & eigenMultiplyResult ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            for  ( uint64_t  iteration  =  0 ;  iteration  <  n ;  + + iteration )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                * nextX  =  * eigenA  *  * currentX ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                if  ( eigenB  ! =  nullptr )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    * nextX  + =  * eigenB ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                if  ( eigenB )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    nextX - > noalias ( )  =  * eigenA  *  * currentX  +  * eigenB ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    nextX - > noalias ( )  =  * eigenA  *  * currentX ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                std : : swap ( nextX ,  currentX ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            // If the last result we obtained is not the one in the input vector x, we swap the result there.