@ -147,9 +147,10 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				            auto  currentX  =  & eigenX ;  
				 
				 
				            auto  currentX  =  & eigenX ;  
			
		 
		
	
		
			
				 
				 
				            auto  nextX  =  & eigenMultiplyResult ;  
				 
				 
				            auto  nextX  =  & eigenMultiplyResult ;  
			
		 
		
	
		
			
				 
				 
				            for  ( uint64_t  iteration  =  0 ;  iteration  <  n ;  + + iteration )  {  
				 
				 
				            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 ) ;  
				 
				 
				                std : : swap ( nextX ,  currentX ) ;  
			
		 
		
	
		
			
				 
				 
				            }  
				 
				 
				            }  
			
		 
		
	
	
		
			
				
					
						
							 
						 
					
					
						
							 
						 
					
					
				 
				@ -209,11 +210,11 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				            auto  currentX  =  & eigenX ;  
				 
				 
				            auto  currentX  =  & eigenX ;  
			
		 
		
	
		
			
				 
				 
				            auto  nextX  =  & eigenMultiplyResult ;  
				 
				 
				            auto  nextX  =  & eigenMultiplyResult ;  
			
		 
		
	
		
			
				 
				 
				            for  ( uint64_t  iteration  =  0 ;  iteration  <  n ;  + + iteration )  {  
				 
				 
				            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.
  
				 
				 
				            // 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  currentX  =  & eigenX ;  
			
		 
		
	
		
			
				 
				 
				            auto  nextX  =  & eigenMultiplyResult ;  
				 
				 
				            auto  nextX  =  & eigenMultiplyResult ;  
			
		 
		
	
		
			
				 
				 
				            for  ( uint64_t  iteration  =  0 ;  iteration  <  n ;  + + iteration )  {  
				 
				 
				            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.
  
				 
				 
				            // If the last result we obtained is not the one in the input vector x, we swap the result there.