diff --git a/gtsam/hybrid/HybridBayesNet.cpp b/gtsam/hybrid/HybridBayesNet.cpp index d6fd7e6bd..8668bedd6 100644 --- a/gtsam/hybrid/HybridBayesNet.cpp +++ b/gtsam/hybrid/HybridBayesNet.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -52,13 +53,7 @@ HybridBayesNet HybridBayesNet::prune(size_t maxNrLeaves) const { // Multiply into one big conditional. NOTE: possibly quite expensive. DiscreteConditional joint; for (auto &&conditional : marginal) { - // The last discrete conditional may be a TableDistribution - if (auto dtc = std::dynamic_pointer_cast(conditional)) { - DiscreteConditional dc(dtc->nrFrontals(), dtc->toDecisionTreeFactor()); - joint = joint * dc; - } else { - joint = joint * (*conditional); - } + joint = joint * (*conditional); } // Create the result starting with the pruned joint. diff --git a/gtsam/hybrid/tests/testHybridBayesNet.cpp b/gtsam/hybrid/tests/testHybridBayesNet.cpp index 63a1393c5..989694b26 100644 --- a/gtsam/hybrid/tests/testHybridBayesNet.cpp +++ b/gtsam/hybrid/tests/testHybridBayesNet.cpp @@ -451,13 +451,7 @@ TEST(HybridBayesNet, UpdateDiscreteConditionals) { DiscreteConditional joint; for (auto&& conditional : posterior->discreteMarginal()) { - // The last discrete conditional may be a TableDistribution - if (auto dtc = std::dynamic_pointer_cast(conditional)) { - DiscreteConditional dc(dtc->nrFrontals(), dtc->toDecisionTreeFactor()); - joint = joint * dc; - } else { - joint = joint * (*conditional); - } + joint = joint * (*conditional); } size_t maxNrLeaves = 3;