Small change/fix in Mixed Riemanian Trust region solver
The former implementation tests if the norm of the correction of the trust region sub problem is smaller than innerTolerance_
which is usually a small number. If the correction dX has a large magnitude, e.g. ||dX|| = 2. The for loop with innerIterations_
runs till the end because ||dX|| will always stay larger than innerTolerance_
. And the full set of innerIterations_
is performed even if corr_global
is already converged within machine precision. Therefore, to terminate the loop at a better time comparing innerTolerance_
to diff
which measures the change of corr_global
within the current iteration.
I discussed this with @jaap and @lnebel . Maybe you two can check if i missed something?
What do you think about this? @osander