diff --git a/gtsam/hybrid/HybridGaussianFactorGraph.cpp b/gtsam/hybrid/HybridGaussianFactorGraph.cpp index e018d1046..6024a59bc 100644 --- a/gtsam/hybrid/HybridGaussianFactorGraph.cpp +++ b/gtsam/hybrid/HybridGaussianFactorGraph.cpp @@ -563,7 +563,7 @@ AlgebraicDecisionTree HybridGaussianFactorGraph::continuousProbPrimes( /* ************************************************************************ */ boost::shared_ptr -HybridGaussianFactorGraph::eliminateHybridSequential() const { +HybridGaussianFactorGraph::eliminateHybridSequential(const boost::optional continuous, const boost::optional 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 assignments = DiscreteValues::CartesianProduct(discrete_keys); diff --git a/gtsam/hybrid/HybridGaussianFactorGraph.h b/gtsam/hybrid/HybridGaussianFactorGraph.h index 8c387ec9b..31a707579 100644 --- a/gtsam/hybrid/HybridGaussianFactorGraph.h +++ b/gtsam/hybrid/HybridGaussianFactorGraph.h @@ -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 */ - boost::shared_ptr eliminateHybridSequential() const; + boost::shared_ptr eliminateHybridSequential( + const boost::optional continuous, + const boost::optional discrete) const; /** * @brief Return a Colamd constrained ordering where the discrete keys are