+ while (k <= max_iterations && norm(rk, 'inf') > tolerance)
+ alpha_k = step_length_positive_definite(rk, A, pk);
+ x_next = xk + alpha_k*pk;
+
+ % Avoid accumulated roundoff errors.
+ if (mod(k, sqrt_n) == 0)
+ r_next = A*x_next - b;
+ else
+ r_next = rk + (alpha_k * A * pk);