gtsam
Loading...
Searching...
No Matches
HybridGaussianISAM.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
22#include <gtsam/base/Testable.h>
26
27#include <optional>
28
29namespace gtsam {
30
37class GTSAM_EXPORT HybridGaussianISAM : public ISAM<HybridBayesTree> {
38 public:
39 typedef ISAM<HybridBayesTree> Base;
40 typedef HybridGaussianISAM This;
41 typedef std::shared_ptr<This> shared_ptr;
42
45
48
50 HybridGaussianISAM(const HybridBayesTree& bayesTree);
51
53
54 private:
56 void updateInternal(
57 const HybridGaussianFactorGraph& newFactors,
59 const std::optional<size_t>& maxNrLeaves = {},
60 const std::optional<Ordering>& ordering = {},
61 const HybridBayesTree::Eliminate& function =
63
64 public:
73 void update(const HybridGaussianFactorGraph& newFactors,
74 const std::optional<size_t>& maxNrLeaves = {},
75 const std::optional<Ordering>& ordering = {},
76 const HybridBayesTree::Eliminate& function =
78
88 const HybridGaussianFactorGraph& newFactors);
89};
90
92template <>
93struct traits<HybridGaussianISAM> : public Testable<HybridGaussianISAM> {};
94
95} // namespace gtsam
Concept check for values that can be used in unit tests.
Linearized Hybrid factor graph that uses type erasure.
Hybrid Bayes Tree, the result of eliminating a HybridJunctionTree.
Incremental update functionality (iSAM) for BayesTree.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition Group.h:37
A helper that implements the traits interface for GTSAM types.
Definition Testable.h:152
A Bayes tree representing a Hybrid density.
Definition HybridBayesTree.h:62
static std::pair< std::shared_ptr< ConditionalType >, std::shared_ptr< FactorType > > DefaultEliminate(const FactorGraphType &factors, const Ordering &keys)
The default dense elimination function.
Definition HybridGaussianFactorGraph.h:87
Definition HybridGaussianFactorGraph.h:107
Incremental Smoothing and Mapping (ISAM) algorithm for hybrid factor graphs.
Definition HybridGaussianISAM.h:37
HybridGaussianISAM()
Create an empty Bayes Tree.
Definition HybridGaussianISAM.cpp:35
void update(const HybridGaussianFactorGraph &newFactors, const std::optional< size_t > &maxNrLeaves={}, const std::optional< Ordering > &ordering={}, const HybridBayesTree::Eliminate &function=HybridBayesTree::EliminationTraitsType::DefaultEliminate)
Perform update step with new factors.
Definition HybridGaussianISAM.cpp:123
static Ordering GetOrdering(HybridGaussianFactorGraph &factors, const HybridGaussianFactorGraph &newFactors)
Helper method to get an ordering given the existing factors and any new factors added.
Definition HybridGaussianISAM.cpp:42
FastList< sharedClique > Cliques
Definition BayesTree.h:99
ISAM()
Definition ISAM.h:49
Definition Ordering.h:33