GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
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 
20 #pragma once
21 
24 
25 #include <map>
26 #include <utility> // pair
27 
28 namespace gtsam {
29 
30 // Forward declarations
31 class GaussianFactorGraph;
32 class GaussianBayesNet;
33 class SubgraphPreconditioner;
34 
35 struct GTSAM_EXPORT SubgraphSolverParameters
37  SubgraphBuilderParameters builderParams;
39  : builderParams(p) {}
40  void print() const { Base::print(); }
41  void print(std::ostream &os) const override {
42  Base::print(os);
43  }
44 };
45 
76 class GTSAM_EXPORT SubgraphSolver : public IterativeSolver {
77  public:
79 
80  protected:
81  Parameters parameters_;
82  std::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);
108  SubgraphSolver(const GaussianBayesNet &Rc1, const GaussianFactorGraph &Ab2,
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
Definition: IterativeSolver.h:85
Definition: SubgraphBuilder.h:102
Definition: Ordering.h:37
Definition: VectorValues.h:74
Implementation of Conjugate Gradient solver for a linear system.
Definition: ConjugateGradientSolver.h:29
GTSAM_EXPORT Point3 optimize(const NonlinearFactorGraph &graph, const Values &values, Key landmarkKey)
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
Definition: IterativeSolver.h:125
Definition: chartTesting.h:28
~SubgraphSolver() override
Destructor.
Definition: SubgraphSolver.h:112
std::shared_ptr< SubgraphPreconditioner > pc_
preconditioner object
Definition: SubgraphSolver.h:82
Definition: GaussianBayesNet.h:35
Definition: SubgraphSolver.h:76
Definition: GaussianFactorGraph.h:73
Definition: SubgraphSolver.h:35