minor update

release/4.3a0
Yong-Dian Jian 2012-02-14 04:08:43 +00:00
parent 2573383eca
commit 8b05fdb14f
1 changed files with 45 additions and 67 deletions

View File

@ -27,83 +27,61 @@ public:
} verbosityLevel;
public:
int maxIterations_;
int reset_; // number of iterations before reset, for cg and gmres
double epsilon_; // relative error
size_t minIterations_;
size_t maxIterations_;
size_t reset_; // number of iterations before reset, for cg and gmres
double epsilon_rel_; // relative error
double epsilon_abs_; // absolute error
verbosityLevel verbosity_;
size_t nReduce_ ;
boost::shared_ptr<DimSpec> skeleton_spec_;
bool est_cond_ ;
public:
IterativeOptimizationParameters() :
maxIterations_(500), reset_(501), epsilon_(1e-3), epsilon_abs_(1e-3),
verbosity_(SILENT), nReduce_(0), skeleton_spec_(), est_cond_(false) {
}
IterativeOptimizationParameters()
: minIterations_(1), maxIterations_(500), reset_(501),
epsilon_rel_(1e-3), epsilon_abs_(1e-3), verbosity_(SILENT), est_cond_(false) {}
IterativeOptimizationParameters(
const IterativeOptimizationParameters &parameters) :
maxIterations_(parameters.maxIterations_), reset_(parameters.reset_),
epsilon_(parameters.epsilon_), epsilon_abs_(parameters.epsilon_abs_),
verbosity_(parameters.verbosity_),
nReduce_(parameters.nReduce_),
skeleton_spec_(parameters.skeleton_spec_),
est_cond_(parameters.est_cond_){
}
const IterativeOptimizationParameters &p) :
minIterations_(p.minIterations_), maxIterations_(p.maxIterations_), reset_(p.reset_),
epsilon_rel_(p.epsilon_rel_), epsilon_abs_(p.epsilon_abs_), verbosity_(p.verbosity_),
est_cond_(p.est_cond_){ }
IterativeOptimizationParameters(int maxIterations, double epsilon,
double epsilon_abs, verbosityLevel verbosity = ERROR, int reset = -1, bool est_cond=false) :
maxIterations_(maxIterations), reset_(reset), epsilon_(epsilon),
epsilon_abs_(epsilon_abs), verbosity_(verbosity),
nReduce_(0),
skeleton_spec_(),
est_cond_(est_cond) {
if (reset_ == -1)
reset_ = maxIterations_ + 1;
}
IterativeOptimizationParameters(size_t minIterations, size_t maxIterations, size_t reset,
double epsilon, double epsilon_abs, verbosityLevel verbosity = ERROR, bool est_cond = false) :
minIterations_(minIterations), maxIterations_(maxIterations), reset_(reset),
epsilon_rel_(epsilon), epsilon_abs_(epsilon_abs), verbosity_(verbosity), est_cond_(est_cond) {}
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_;
}
bool est_cond() const {
return est_cond_ ;
}
size_t minIterations() const { return minIterations_; }
size_t maxIterations() const { return maxIterations_; }
size_t reset() const { return reset_; }
double epsilon() const { return epsilon_rel_; }
double epsilon_rel() const { return epsilon_rel_; }
double epsilon_abs() const { return epsilon_abs_; }
verbosityLevel verbosity() const { return verbosity_; }
bool est_cond() const { return est_cond_ ; }
};
struct DimSpec: public std::vector<size_t> {
typedef std::vector<size_t> Base;
typedef boost::shared_ptr<DimSpec> shared_ptr;
DimSpec() :
Base() {
}
DimSpec(size_t n) :
Base(n) {
}
DimSpec(size_t n, size_t init) :
Base(n, init) {
}
DimSpec(const VectorValues &V) :
Base(V.size()) {
const size_t n = V.size();
for (size_t i = 0; i < n; ++i) {
(*this)[i] = V[i].rows();
}
}
};
//struct DimSpec: public std::vector<size_t> {
//
// typedef std::vector<size_t> Base;
// typedef boost::shared_ptr<DimSpec> shared_ptr;
//
// DimSpec() :
// Base() {
// }
// DimSpec(size_t n) :
// Base(n) {
// }
// DimSpec(size_t n, size_t init) :
// Base(n, init) {
// }
// DimSpec(const VectorValues &V) :
// Base(V.size()) {
// const size_t n = V.size();
// for (size_t i = 0; i < n; ++i) {
// (*this)[i] = V[i].rows();
// }
// }
//};
}