Increased precision when printing out convergence info in NonlinearOptimizer

release/4.3a0
Richard Roberts 2011-03-29 19:50:51 +00:00
parent 21f7673acd
commit 1bd10e4b21
1 changed files with 5 additions and 4 deletions

View File

@ -17,6 +17,7 @@
*/ */
#include <iostream> #include <iostream>
#include <iomanip>
#include <gtsam/nonlinear/NonlinearOptimizer.h> #include <gtsam/nonlinear/NonlinearOptimizer.h>
using namespace std; using namespace std;
@ -53,18 +54,18 @@ bool check_convergence(
double absoluteDecrease = currentError - newError; double absoluteDecrease = currentError - newError;
if (verbosity >= 2) { if (verbosity >= 2) {
if (absoluteDecrease < absoluteErrorTreshold) if (absoluteDecrease < absoluteErrorTreshold)
cout << "absoluteDecrease: " << absoluteDecrease << " < " << absoluteErrorTreshold << endl; cout << "absoluteDecrease: " << setprecision(12) << absoluteDecrease << " < " << absoluteErrorTreshold << endl;
else else
cout << "absoluteDecrease: " << absoluteDecrease << " >= " << absoluteErrorTreshold << endl; cout << "absoluteDecrease: " << setprecision(12) << absoluteDecrease << " >= " << absoluteErrorTreshold << endl;
} }
// calculate relative error decrease and update currentError // calculate relative error decrease and update currentError
double relativeDecrease = absoluteDecrease / currentError; double relativeDecrease = absoluteDecrease / currentError;
if (verbosity >= 2) { if (verbosity >= 2) {
if (relativeDecrease < relativeErrorTreshold) if (relativeDecrease < relativeErrorTreshold)
cout << "relativeDecrease: " << relativeDecrease << " < " << relativeErrorTreshold << endl; cout << "relativeDecrease: " << setprecision(12) << relativeDecrease << " < " << relativeErrorTreshold << endl;
else else
cout << "relativeDecrease: " << relativeDecrease << " >= " << relativeErrorTreshold << endl; cout << "relativeDecrease: " << setprecision(12) << relativeDecrease << " >= " << relativeErrorTreshold << endl;
} }
bool converged = (relativeDecrease < relativeErrorTreshold) bool converged = (relativeDecrease < relativeErrorTreshold)
|| (absoluteDecrease < absoluteErrorTreshold); || (absoluteDecrease < absoluteErrorTreshold);