22 #include <boost/algorithm/string.hpp> 30 string IterativeOptimizationParameters::getVerbosity()
const {
31 return verbosityTranslator(verbosity_);
35 void IterativeOptimizationParameters::setVerbosity(
const string &src) {
36 verbosity_ = verbosityTranslator(src);
46 os <<
"IterativeOptimizationParameters:" << endl <<
"verbosity: " 47 << verbosityTranslator(verbosity_) << endl;
60 boost::algorithm::to_upper(s);
62 return IterativeOptimizationParameters::SILENT;
63 else if (s ==
"COMPLEXITY")
64 return IterativeOptimizationParameters::COMPLEXITY;
65 else if (s ==
"ERROR")
66 return IterativeOptimizationParameters::ERROR;
69 return IterativeOptimizationParameters::SILENT;
73 string IterativeOptimizationParameters::verbosityTranslator(
75 if (verbosity == SILENT)
77 else if (verbosity == COMPLEXITY)
79 else if (verbosity == ERROR)
87 boost::optional<const KeyInfo&> keyInfo,
88 boost::optional<
const std::map<Key, Vector>&>
lambda) {
95 const KeyInfo &keyInfo,
const std::map<Key, Vector> &
lambda) {
96 return optimize(gfg, keyInfo, lambda, keyInfo.
x0());
101 ordering_(ordering) {
117 for (
size_t i = 0;
i <
n; ++
i) {
119 const auto it_key = colspec.find(key);
120 if (it_key==colspec.end())
121 throw std::runtime_error(
"KeyInfo: Inconsistency in key-dim map");
122 const size_t dim = it_key->second;
132 for (
const auto &item: *
this ) {
133 result[item.second.index] = item.second.dim;
141 for (
const auto &item: *
this ) {
142 result.
emplace(item.first, Vector::Zero(item.second.dim));
void print(const Matrix &A, const string &s, ostream &stream)
static enum @843 ordering
std::map< Key, size_t > getKeyDimMap() const
VectorValues x0() const
Return VectorValues with zeros, of correct dimension.
Linear Factor Graph where all factors are Gaussians.
Some support classes for iterative solvers.
KeyInfo()
Default Constructor.
cout<< "The eigenvalues of A are:"<< endl<< ces.eigenvalues()<< endl;cout<< "The matrix of eigenvectors, V, is:"<< endl<< ces.eigenvectors()<< endl<< endl;complex< float > lambda
const mpreal dim(const mpreal &a, const mpreal &b, mp_rnd_t r=mpreal::get_default_rnd())
std::vector< size_t > colSpec() const
Return a vector of dimensions ordered by ordering()
ofstream os("timeSchurFactors.csv")
int optimize(const SfmData &db, const NonlinearFactorGraph &graph, const Values &initial, bool separateCalibration=false)
ostream & operator<<(ostream &os, const IterativeOptimizationParameters &p)
std::pair< VectorValues::iterator, bool > emplace(Key j, Args &&...args)
GTSAM_EXPORT void print() const
std::uint64_t Key
Integer nonlinear key type.
Vector x0vector() const
Return zero Vector of correct dimension.
void initialize(const GaussianFactorGraph &fg)