Check corrected Hessian in Corrector.MultidimensionalGaussNewtonApproximation When rho[2] <= 0, Corrector clamps alpha to 0 and drops the rank-1 curvature correction term, so the implied Gauss-Newton Hessian is rho[1] * J'J rather than rho[1] * J'J + 2 * rho[2] * J'r r'J. Account for this in g_hess and assert that c_hess matches g_hess. Thanks to Matthias Kraft (@matthias-kraft) for reporting this. Fixes https://github.com/ceres-solver/ceres-solver/issues/363 Change-Id: I3ccc3753aab5a5d753a8f650ff71f2b8ea96a51d
Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.
Please see ceres-solver.org for more information.