Fix max. linear solver iterations in ConjugateGradientsSolver

Change-Id: Ice0cef46441dbc1c121eeb42113667a46c96936f
diff --git a/internal/ceres/conjugate_gradients_solver.cc b/internal/ceres/conjugate_gradients_solver.cc
index 56e7946..3071a09 100644
--- a/internal/ceres/conjugate_gradients_solver.cc
+++ b/internal/ceres/conjugate_gradients_solver.cc
@@ -113,9 +113,8 @@
   // Initial value of the quadratic model Q = x'Ax - 2 * b'x.
   double Q0 = -1.0 * xref.dot(bref + r);
 
-  for (summary.num_iterations = 1;
-       summary.num_iterations <= options_.max_num_iterations;
-       ++summary.num_iterations) {
+  for (summary.num_iterations = 1;; ++summary.num_iterations) {
+
     // Apply preconditioner
     if (per_solve_options.preconditioner != NULL) {
       z.setZero();
@@ -227,6 +226,10 @@
           StringPrintf("Convergence. |r| = %e <= %e.", norm_r, tol_r);
       break;
     }
+
+    if (summary.num_iterations >= options_.max_num_iterations) {
+      break;
+    }
   }
 
   return summary;