Both GaussNewton and LM now exit immediately if initial error<absoluteThreshold, and pront out a messsage saying that if verbisty>=ERROR
parent
d4447cbe48
commit
920d86ce35
|
|
@ -101,6 +101,13 @@ namespace gtsam {
|
||||||
verbosityLevel verbosity, int maxIterations) const {
|
verbosityLevel verbosity, int maxIterations) const {
|
||||||
static W writer(error_);
|
static W writer(error_);
|
||||||
|
|
||||||
|
// check if we're already close enough
|
||||||
|
if (error_ < absoluteThreshold) {
|
||||||
|
if (verbosity >= ERROR) cout << "Exiting, as error = " << error_
|
||||||
|
<< " < absoluteThreshold (" << absoluteThreshold << ")" << endl;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
// linearize, solve, update
|
// linearize, solve, update
|
||||||
NonlinearOptimizer next = iterate(verbosity);
|
NonlinearOptimizer next = iterate(verbosity);
|
||||||
|
|
||||||
|
|
@ -191,8 +198,11 @@ namespace gtsam {
|
||||||
verbosityLevel verbosity, int maxIterations, double lambdaFactor) const {
|
verbosityLevel verbosity, int maxIterations, double lambdaFactor) const {
|
||||||
|
|
||||||
// check if we're already close enough
|
// check if we're already close enough
|
||||||
if (error_ < absoluteThreshold)
|
if (error_ < absoluteThreshold) {
|
||||||
|
if (verbosity >= ERROR) cout << "Exiting, as error = " << error_
|
||||||
|
<< " < absoluteThreshold (" << absoluteThreshold << ")" << endl;
|
||||||
return *this;
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
// do one iteration of LM
|
// do one iteration of LM
|
||||||
NonlinearOptimizer next = iterateLM(verbosity, lambdaFactor);
|
NonlinearOptimizer next = iterateLM(verbosity, lambdaFactor);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue