gtsam 4.2
gtsam
Loading...
Searching...
No Matches
SubgraphSolver.h
Go to the documentation of this file.
1/* ----------------------------------------------------------------------------
2
3 * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4 * Atlanta, Georgia 30332-0415
5 * All Rights Reserved
6 * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7
8 * See LICENSE for the license information
9
10 * -------------------------------------------------------------------------- */
11
19
20#pragma once
21
24
25#include <map>
26#include <utility> // pair
27
28namespace gtsam {
29
30// Forward declarations
34
35struct GTSAM_EXPORT SubgraphSolverParameters
36 : public ConjugateGradientParameters {
37 SubgraphBuilderParameters builderParams;
38 explicit SubgraphSolverParameters(const SubgraphBuilderParameters &p = SubgraphBuilderParameters())
39 : builderParams(p) {}
40 void print() const { Base::print(); }
41 void print(std::ostream &os) const override {
42 Base::print(os);
43 }
44};
45
76class GTSAM_EXPORT SubgraphSolver : public IterativeSolver {
77 public:
78 typedef SubgraphSolverParameters Parameters;
79
80 protected:
81 Parameters parameters_;
82 boost::shared_ptr<SubgraphPreconditioner> pc_;
83
84 public:
87
93 SubgraphSolver(const GaussianFactorGraph &A, const Parameters &parameters,
94 const Ordering &ordering);
95
103 const Parameters &parameters, const Ordering &ordering);
109 const Parameters &parameters);
110
112 ~SubgraphSolver() override {}
113
117
119 VectorValues optimize() const;
120
123 const KeyInfo &keyInfo,
124 const std::map<Key, Vector> &lambda,
125 const VectorValues &initial) override;
126
130
132 std::pair<GaussianFactorGraph, GaussianFactorGraph> splitGraph(
133 const GaussianFactorGraph &gfg);
134
136};
137
138} // namespace gtsam
Implementation of Conjugate Gradient solver for a linear system.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
Point3 optimize(const NonlinearFactorGraph &graph, const Values &values, Key landmarkKey)
Optimize for triangulation.
Definition triangulation.cpp:155
Definition Ordering.h:34
GaussianBayesNet is a Bayes net made from linear-Gaussian conditionals.
Definition GaussianBayesNet.h:36
A Linear Factor Graph is a factor graph where all factors are Gaussian, i.e.
Definition GaussianFactorGraph.h:75
Handy data structure for iterative solvers.
Definition IterativeSolver.h:126
Definition SubgraphBuilder.h:96
Subgraph conditioner class, as explained in the RSS 2010 submission.
Definition SubgraphPreconditioner.h:54
Definition SubgraphSolver.h:36
~SubgraphSolver() override
Destructor.
Definition SubgraphSolver.h:112
SubgraphSolver(const GaussianFactorGraph &A, const Parameters &parameters, const Ordering &ordering)
Given a gaussian factor graph, split it into a spanning tree (A1) + others (A2) for SPCG Will throw e...
Definition SubgraphSolver.cpp:34
boost::shared_ptr< SubgraphPreconditioner > pc_
preconditioner object
Definition SubgraphSolver.h:82
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:74