45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
/*
|
|
* IterativeOptimizationParameters.h
|
|
*
|
|
* Created on: Oct 22, 2010
|
|
* Author: Yong-Dian Jian
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
namespace gtsam {
|
|
|
|
// a container for all related parameters
|
|
struct IterativeOptimizationParameters {
|
|
typedef enum {
|
|
SILENT,
|
|
ERROR,
|
|
} verbosityLevel;
|
|
|
|
IterativeOptimizationParameters():
|
|
maxIterations_(100),
|
|
reset_(101),
|
|
epsilon_(1e-5),epsilon_abs_(1e-5),verbosity_(SILENT) {}
|
|
|
|
IterativeOptimizationParameters
|
|
(int maxIterations, double epsilon, double epsilon_abs, verbosityLevel verbosity=SILENT, int reset=-1):
|
|
maxIterations_(maxIterations), reset_(reset),
|
|
epsilon_(epsilon), epsilon_abs_(epsilon_abs), verbosity_(verbosity) {
|
|
if (reset_==-1) reset_ = maxIterations_ + 1 ;
|
|
}
|
|
|
|
int maxIterations() const { return maxIterations_; }
|
|
int reset() const { return reset_; }
|
|
double epsilon() const { return epsilon_ ;}
|
|
double epsilon_abs() const { return epsilon_abs_ ; }
|
|
verbosityLevel verbosity() const { return verbosity_ ; }
|
|
|
|
protected:
|
|
int maxIterations_;
|
|
int reset_ ; // number of iterations before reset, for cg and gmres
|
|
double epsilon_; // relative error
|
|
double epsilon_abs_; // absolute error
|
|
verbosityLevel verbosity_;
|
|
};
|
|
}
|