update for spcg

release/4.3a0
Yong-Dian Jian 2010-11-05 05:35:04 +00:00
parent 74e82fb615
commit 3e1761b81b
1 changed files with 17 additions and 4 deletions

View File

@ -7,6 +7,9 @@
#pragma once #pragma once
#include <vector>
#include <boost/shared_ptr.hpp>
namespace gtsam { namespace gtsam {
// a container for all related parameters // a container for all related parameters
@ -19,27 +22,38 @@ namespace gtsam {
ERROR, ERROR,
} verbosityLevel; } verbosityLevel;
protected: public:
int maxIterations_; int maxIterations_;
int reset_ ; // number of iterations before reset, for cg and gmres int reset_ ; // number of iterations before reset, for cg and gmres
double epsilon_; // relative error double epsilon_; // relative error
double epsilon_abs_; // absolute error double epsilon_abs_; // absolute error
verbosityLevel verbosity_; verbosityLevel verbosity_;
// specialize for some solvers
typedef size_t Index;
typedef std::vector<Index> Spec ;
typedef boost::shared_ptr<Spec> sharedSpec ;
sharedSpec reduce_spec_ ;
sharedSpec skeleton_spec_ ;
public: public:
IterativeOptimizationParameters(): IterativeOptimizationParameters():
maxIterations_(100), maxIterations_(100),
reset_(101), reset_(101),
epsilon_(1e-5), epsilon_(1e-5),
epsilon_abs_(1e-5), epsilon_abs_(1e-5),
verbosity_(ERROR) {} verbosity_(ERROR),
reduce_spec_(), skeleton_spec_() {}
IterativeOptimizationParameters(const IterativeOptimizationParameters &parameters): IterativeOptimizationParameters(const IterativeOptimizationParameters &parameters):
maxIterations_(parameters.maxIterations_), maxIterations_(parameters.maxIterations_),
reset_(parameters.reset_), reset_(parameters.reset_),
epsilon_(parameters.epsilon_), epsilon_(parameters.epsilon_),
epsilon_abs_(parameters.epsilon_abs_), epsilon_abs_(parameters.epsilon_abs_),
verbosity_(parameters.verbosity_) {} verbosity_(parameters.verbosity_),
reduce_spec_(parameters.reduce_spec_),
skeleton_spec_(parameters.skeleton_spec_)
{}
IterativeOptimizationParameters IterativeOptimizationParameters
@ -54,6 +68,5 @@ namespace gtsam {
double epsilon() const { return epsilon_ ;} double epsilon() const { return epsilon_ ;}
double epsilon_abs() const { return epsilon_abs_ ; } double epsilon_abs() const { return epsilon_abs_ ; }
verbosityLevel verbosity() const { return verbosity_ ; } verbosityLevel verbosity() const { return verbosity_ ; }
}; };
} }