Fix tiny solver build break The solver code must rely on the vectors for sizing, since not all cost functions will have NumParameters() or NumResiduals(). Change-Id: Id254ce37507443910edb0064de7907d64558851e
diff --git a/include/ceres/tiny_solver.h b/include/ceres/tiny_solver.h index d9fa3c5..cbdc228 100644 --- a/include/ceres/tiny_solver.h +++ b/include/ceres/tiny_solver.h
@@ -231,13 +231,14 @@ Scalar u = options.initial_scale_factor; Scalar v = 2; - for (int i = 1; summary.status == RUNNING && i < options.max_iterations; - ++i) { - summary.iterations = i; + for (summary.iterations = 1; + (summary.status == RUNNING && + summary.iterations < options.max_iterations); + summary.iterations++) { jtj_regularized_ = jtj_; const Scalar min_diagonal = 1e-6; const Scalar max_diagonal = 1e32; - for (int i = 0; i < function.NumParameters(); ++i) { + for (int i = 0; i < lm_diagonal_.rows(); ++i) { lm_diagonal_[i] = std::sqrt( u * std::min(std::max(jtj_(i, i), min_diagonal), max_diagonal)); jtj_regularized_(i, i) += lm_diagonal_[i] * lm_diagonal_[i];