Add a TrustRegionStrategy::Summary object.
Change-Id: I7caee35a3408ee4a0ec16ba407410d822929340d
diff --git a/internal/ceres/dogleg_strategy.cc b/internal/ceres/dogleg_strategy.cc
index 44d484f..4b1f074 100644
--- a/internal/ceres/dogleg_strategy.cc
+++ b/internal/ceres/dogleg_strategy.cc
@@ -71,7 +71,7 @@
// gradient) and the new Gauss-Newton step are computed from
// scratch. The Dogleg step is then computed as interpolation of these
// two vectors.
-LinearSolver::Summary DoglegStrategy::ComputeStep(
+TrustRegionStrategy::Summary DoglegStrategy::ComputeStep(
const TrustRegionStrategy::PerSolveOptions& per_solve_options,
SparseMatrix* jacobian,
const double* residuals,
@@ -85,10 +85,10 @@
// Gauss-Newton and gradient vectors are always available, only a
// new interpolant need to be computed.
ComputeDoglegStep(step);
- LinearSolver::Summary linear_solver_summary;
- linear_solver_summary.num_iterations = 0;
- linear_solver_summary.termination_type = TOLERANCE;
- return linear_solver_summary;
+ TrustRegionStrategy::Summary summary;
+ summary.num_iterations = 0;
+ summary.termination_type = TOLERANCE;
+ return summary;
}
reuse_ = true;
@@ -123,7 +123,11 @@
ComputeDoglegStep(step);
}
- return linear_solver_summary;
+ TrustRegionStrategy::Summary summary;
+ summary.residual_norm = linear_solver_summary.residual_norm;
+ summary.num_iterations = linear_solver_summary.num_iterations;
+ summary.termination_type = linear_solver_summary.termination_type;
+ return summary;
}
// The trust region is assumed to be elliptical with the