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
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
SubgraphSolverParameters Parameters
EIGEN_STRONG_INLINE Packet4f print(const Packet4f &a)
static enum @1107 ordering
Implementation of Conjugate Gradient solver for a linear system.
SubgraphBuilderParameters builderParams
Point3 optimize(const NonlinearFactorGraph &graph, const Values &values, Key landmarkKey)
static ConjugateGradientParameters parameters
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
traits
Definition: chartTesting.h:28
~SubgraphSolver() override
Destructor.
ofstream os("timeSchurFactors.csv")
float * p
std::shared_ptr< SubgraphPreconditioner > pc_
preconditioner object
SubgraphSolverParameters(const SubgraphBuilderParameters &p=SubgraphBuilderParameters())
void print(std::ostream &os) const override


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:36:21