add optional ordering and fix bug
parent
64cd7c938f
commit
3987b036a7
|
|
@ -563,7 +563,7 @@ AlgebraicDecisionTree<Key> HybridGaussianFactorGraph::continuousProbPrimes(
|
|||
|
||||
/* ************************************************************************ */
|
||||
boost::shared_ptr<HybridGaussianFactorGraph::BayesNetType>
|
||||
HybridGaussianFactorGraph::eliminateHybridSequential() const {
|
||||
HybridGaussianFactorGraph::eliminateHybridSequential(const boost::optional<Ordering> continuous, const boost::optional<Ordering> discrete) const {
|
||||
Ordering continuous_ordering(this->continuousKeys()),
|
||||
discrete_ordering(this->discreteKeys());
|
||||
|
||||
|
|
@ -577,6 +577,11 @@ HybridGaussianFactorGraph::eliminateHybridSequential() const {
|
|||
auto last_conditional = bayesNet->at(bayesNet->size() - 1);
|
||||
DiscreteKeys discrete_keys = last_conditional->discreteKeys();
|
||||
|
||||
// If not discrete variables, return the eliminated bayes net.
|
||||
if (discrete_keys.size() == 0) {
|
||||
return bayesNet;
|
||||
}
|
||||
|
||||
const std::vector<DiscreteValues> assignments =
|
||||
DiscreteValues::CartesianProduct(discrete_keys);
|
||||
|
||||
|
|
|
|||
|
|
@ -227,9 +227,13 @@ class GTSAM_EXPORT HybridGaussianFactorGraph
|
|||
* @brief Custom elimination function which computes the correct
|
||||
* continuous probabilities.
|
||||
*
|
||||
* @param continuous Optional ordering for all continuous variables.
|
||||
* @param discrete Optional ordering for all discrete variables.
|
||||
* @return boost::shared_ptr<BayesNetType>
|
||||
*/
|
||||
boost::shared_ptr<BayesNetType> eliminateHybridSequential() const;
|
||||
boost::shared_ptr<BayesNetType> eliminateHybridSequential(
|
||||
const boost::optional<Ordering> continuous,
|
||||
const boost::optional<Ordering> discrete) const;
|
||||
|
||||
/**
|
||||
* @brief Return a Colamd constrained ordering where the discrete keys are
|
||||
|
|
|
|||
Loading…
Reference in New Issue