HybridFactorGraph docs and minor updates
parent
d60c4aca5a
commit
adcbb65e5c
|
@ -63,6 +63,7 @@ static std::string RESET = "\033[0m";
|
||||||
|
|
||||||
constexpr bool DEBUG = false;
|
constexpr bool DEBUG = false;
|
||||||
|
|
||||||
|
/* ************************************************************************ */
|
||||||
static GaussianMixtureFactor::Sum &addGaussian(
|
static GaussianMixtureFactor::Sum &addGaussian(
|
||||||
GaussianMixtureFactor::Sum &sum, const GaussianFactor::shared_ptr &factor) {
|
GaussianMixtureFactor::Sum &sum, const GaussianFactor::shared_ptr &factor) {
|
||||||
using Y = GaussianFactorGraph;
|
using Y = GaussianFactorGraph;
|
||||||
|
@ -406,20 +407,24 @@ EliminateHybrid(const HybridFactorGraph &factors, const Ordering &frontalKeys) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ************************************************************************ */
|
||||||
void HybridFactorGraph::add(JacobianFactor &&factor) {
|
void HybridFactorGraph::add(JacobianFactor &&factor) {
|
||||||
FactorGraph::add(boost::make_shared<HybridGaussianFactor>(std::move(factor)));
|
FactorGraph::add(boost::make_shared<HybridGaussianFactor>(std::move(factor)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void HybridFactorGraph::add(DecisionTreeFactor &&factor) {
|
/* ************************************************************************ */
|
||||||
FactorGraph::add(boost::make_shared<HybridDiscreteFactor>(std::move(factor)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void HybridFactorGraph::add(DecisionTreeFactor::shared_ptr factor) {
|
|
||||||
FactorGraph::add(boost::make_shared<HybridDiscreteFactor>(factor));
|
|
||||||
}
|
|
||||||
|
|
||||||
void HybridFactorGraph::add(JacobianFactor::shared_ptr factor) {
|
void HybridFactorGraph::add(JacobianFactor::shared_ptr factor) {
|
||||||
FactorGraph::add(boost::make_shared<HybridGaussianFactor>(factor));
|
FactorGraph::add(boost::make_shared<HybridGaussianFactor>(factor));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ************************************************************************ */
|
||||||
|
void HybridFactorGraph::add(DecisionTreeFactor &&factor) {
|
||||||
|
FactorGraph::add(boost::make_shared<HybridDiscreteFactor>(std::move(factor)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ************************************************************************ */
|
||||||
|
void HybridFactorGraph::add(DecisionTreeFactor::shared_ptr factor) {
|
||||||
|
FactorGraph::add(boost::make_shared<HybridDiscreteFactor>(factor));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace gtsam
|
} // namespace gtsam
|
||||||
|
|
|
@ -81,30 +81,34 @@ class HybridFactorGraph : public FactorGraph<HybridFactor>,
|
||||||
using Values = gtsam::Values; ///< backwards compatibility
|
using Values = gtsam::Values; ///< backwards compatibility
|
||||||
using Indices = KeyVector; ///> map from keys to values
|
using Indices = KeyVector; ///> map from keys to values
|
||||||
|
|
||||||
public:
|
/// @name Constructors
|
||||||
|
/// @{
|
||||||
|
|
||||||
HybridFactorGraph() = default;
|
HybridFactorGraph() = default;
|
||||||
|
|
||||||
// /** Construct from container of factors (shared_ptr or plain objects) */
|
/**
|
||||||
// template <class CONTAINER>
|
* Implicit copy/downcast constructor to override explicit template container
|
||||||
// explicit HybridFactorGraph(const CONTAINER& factors) : Base(factors) {}
|
|
||||||
|
|
||||||
/** Implicit copy/downcast constructor to override explicit template container
|
|
||||||
* constructor. In BayesTree this is used for:
|
* constructor. In BayesTree this is used for:
|
||||||
* `cachedSeparatorMarginal_.reset(*separatorMarginal)`
|
* `cachedSeparatorMarginal_.reset(*separatorMarginal)`
|
||||||
* */
|
* */
|
||||||
template <class DERIVEDFACTOR>
|
template <class DERIVEDFACTOR>
|
||||||
HybridFactorGraph(const FactorGraph<DERIVEDFACTOR>& graph) : Base(graph) {}
|
HybridFactorGraph(const FactorGraph<DERIVEDFACTOR>& graph) : Base(graph) {}
|
||||||
|
|
||||||
|
/// @}
|
||||||
|
|
||||||
using FactorGraph::add;
|
using FactorGraph::add;
|
||||||
|
|
||||||
/// Add a factor directly using a shared_ptr.
|
/// Add a Jacobian factor to the factor graph.
|
||||||
void add(JacobianFactor&& factor);
|
void add(JacobianFactor&& factor);
|
||||||
|
|
||||||
|
/// Add a Jacobian factor as a shared ptr.
|
||||||
|
void add(boost::shared_ptr<JacobianFactor> factor);
|
||||||
|
|
||||||
|
/// Add a DecisionTreeFactor to the factor graph.
|
||||||
void add(DecisionTreeFactor&& factor);
|
void add(DecisionTreeFactor&& factor);
|
||||||
|
|
||||||
|
/// Add a DecisionTreeFactor as a shared ptr.
|
||||||
void add(boost::shared_ptr<DecisionTreeFactor> factor);
|
void add(boost::shared_ptr<DecisionTreeFactor> factor);
|
||||||
|
|
||||||
void add(boost::shared_ptr<JacobianFactor> factor);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace gtsam
|
} // namespace gtsam
|
||||||
|
|
Loading…
Reference in New Issue