add to hybrid group
parent
efdbee2a76
commit
cce2722c4d
|
|
@ -41,6 +41,7 @@ namespace gtsam {
|
||||||
* where i indexes the components and k_i is a component-wise normalization
|
* where i indexes the components and k_i is a component-wise normalization
|
||||||
* constant.
|
* constant.
|
||||||
*
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT GaussianMixture
|
class GTSAM_EXPORT GaussianMixture
|
||||||
: public HybridFactor,
|
: public HybridFactor,
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ using GaussianFactorVector = std::vector<gtsam::GaussianFactor::shared_ptr>;
|
||||||
* Represents the underlying Gaussian Mixture as a Decision Tree, where the set
|
* Represents the underlying Gaussian Mixture as a Decision Tree, where the set
|
||||||
* of discrete variables indexes to the continuous gaussian distribution.
|
* of discrete variables indexes to the continuous gaussian distribution.
|
||||||
*
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT GaussianMixtureFactor : public HybridFactor {
|
class GTSAM_EXPORT GaussianMixtureFactor : public HybridFactor {
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,8 @@ namespace gtsam {
|
||||||
/**
|
/**
|
||||||
* A hybrid Bayes net is a collection of HybridConditionals, which can have
|
* A hybrid Bayes net is a collection of HybridConditionals, which can have
|
||||||
* discrete conditionals, Gaussian mixtures, or pure Gaussian conditionals.
|
* discrete conditionals, Gaussian mixtures, or pure Gaussian conditionals.
|
||||||
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT HybridBayesNet : public BayesNet<HybridConditional> {
|
class GTSAM_EXPORT HybridBayesNet : public BayesNet<HybridConditional> {
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,11 @@ class HybridConditional;
|
||||||
class VectorValues;
|
class VectorValues;
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
/** A clique in a HybridBayesTree
|
/**
|
||||||
|
* @brief A clique in a HybridBayesTree
|
||||||
* which is a HybridConditional internally.
|
* which is a HybridConditional internally.
|
||||||
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT HybridBayesTreeClique
|
class GTSAM_EXPORT HybridBayesTreeClique
|
||||||
: public BayesTreeCliqueBase<HybridBayesTreeClique,
|
: public BayesTreeCliqueBase<HybridBayesTreeClique,
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,8 @@ class HybridGaussianFactorGraph;
|
||||||
*
|
*
|
||||||
* A great reference to the type-erasure pattern is Eduaado Madrid's CppCon
|
* A great reference to the type-erasure pattern is Eduaado Madrid's CppCon
|
||||||
* talk (https://www.youtube.com/watch?v=s082Qmd_nHs).
|
* talk (https://www.youtube.com/watch?v=s082Qmd_nHs).
|
||||||
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT HybridConditional
|
class GTSAM_EXPORT HybridConditional
|
||||||
: public HybridFactor,
|
: public HybridFactor,
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ namespace gtsam {
|
||||||
* A HybridDiscreteFactor is a thin container for DiscreteFactor, which allows
|
* A HybridDiscreteFactor is a thin container for DiscreteFactor, which allows
|
||||||
* us to hide the implementation of DiscreteFactor and thus avoid diamond
|
* us to hide the implementation of DiscreteFactor and thus avoid diamond
|
||||||
* inheritance.
|
* inheritance.
|
||||||
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT HybridDiscreteFactor : public HybridFactor {
|
class GTSAM_EXPORT HybridDiscreteFactor : public HybridFactor {
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,8 @@ namespace gtsam {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Elimination Tree type for Hybrid
|
* Elimination Tree type for Hybrid
|
||||||
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT HybridEliminationTree
|
class GTSAM_EXPORT HybridEliminationTree
|
||||||
: public EliminationTree<HybridBayesNet, HybridGaussianFactorGraph> {
|
: public EliminationTree<HybridBayesNet, HybridGaussianFactorGraph> {
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,8 @@ DiscreteKeys CollectDiscreteKeys(const DiscreteKeys &key1,
|
||||||
* - HybridDiscreteFactor
|
* - HybridDiscreteFactor
|
||||||
* - GaussianMixtureFactor
|
* - GaussianMixtureFactor
|
||||||
* - GaussianMixture
|
* - GaussianMixture
|
||||||
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT HybridFactor : public Factor {
|
class GTSAM_EXPORT HybridFactor : public Factor {
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,8 @@ namespace gtsam {
|
||||||
* A HybridGaussianFactor is a layer over GaussianFactor so that we do not have
|
* A HybridGaussianFactor is a layer over GaussianFactor so that we do not have
|
||||||
* a diamond inheritance i.e. an extra factor type that inherits from both
|
* a diamond inheritance i.e. an extra factor type that inherits from both
|
||||||
* HybridFactor and GaussianFactor.
|
* HybridFactor and GaussianFactor.
|
||||||
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT HybridGaussianFactor : public HybridFactor {
|
class GTSAM_EXPORT HybridGaussianFactor : public HybridFactor {
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,14 @@ class DecisionTreeFactor;
|
||||||
|
|
||||||
class JacobianFactor;
|
class JacobianFactor;
|
||||||
|
|
||||||
/** Main elimination function for HybridGaussianFactorGraph */
|
/**
|
||||||
|
* @brief Main elimination function for HybridGaussianFactorGraph.
|
||||||
|
*
|
||||||
|
* @param factors The factor graph to eliminate.
|
||||||
|
* @param keys The elimination ordering.
|
||||||
|
* @return The conditional on the ordering keys and the remaining factors.
|
||||||
|
* @ingroup hybrid
|
||||||
|
*/
|
||||||
GTSAM_EXPORT
|
GTSAM_EXPORT
|
||||||
std::pair<boost::shared_ptr<HybridConditional>, HybridFactor::shared_ptr>
|
std::pair<boost::shared_ptr<HybridConditional>, HybridFactor::shared_ptr>
|
||||||
EliminateHybrid(const HybridGaussianFactorGraph& factors, const Ordering& keys);
|
EliminateHybrid(const HybridGaussianFactorGraph& factors, const Ordering& keys);
|
||||||
|
|
@ -66,10 +73,12 @@ struct EliminationTraits<HybridGaussianFactorGraph> {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gaussian Hybrid Factor Graph
|
* Hybrid Gaussian Factor Graph
|
||||||
* -----------------------
|
* -----------------------
|
||||||
* This is the linearized version of a hybrid factor graph.
|
* This is the linearized version of a hybrid factor graph.
|
||||||
* Everything inside needs to be hybrid factor or hybrid conditional.
|
* Everything inside needs to be hybrid factor or hybrid conditional.
|
||||||
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT HybridGaussianFactorGraph
|
class GTSAM_EXPORT HybridGaussianFactorGraph
|
||||||
: public FactorGraph<HybridFactor>,
|
: public FactorGraph<HybridFactor>,
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,11 @@
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief
|
||||||
|
*
|
||||||
|
* @ingroup hybrid
|
||||||
|
*/
|
||||||
class GTSAM_EXPORT HybridGaussianISAM : public ISAM<HybridBayesTree> {
|
class GTSAM_EXPORT HybridGaussianISAM : public ISAM<HybridBayesTree> {
|
||||||
public:
|
public:
|
||||||
typedef ISAM<HybridBayesTree> Base;
|
typedef ISAM<HybridBayesTree> Base;
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,8 @@ class HybridEliminationTree;
|
||||||
* EliminationTree, except that in the JunctionTree, at each node multiple
|
* EliminationTree, except that in the JunctionTree, at each node multiple
|
||||||
* variables are eliminated at a time.
|
* variables are eliminated at a time.
|
||||||
*
|
*
|
||||||
* \addtogroup Multifrontal
|
* \ingroup Multifrontal
|
||||||
|
* \ingroup hybrid
|
||||||
* \nosubgrouping
|
* \nosubgrouping
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT HybridJunctionTree
|
class GTSAM_EXPORT HybridJunctionTree
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue