From 57c426a870023400c5a9f8d7bc43f508a6b4c082 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 31 Dec 2024 20:36:07 -0500 Subject: [PATCH] simplify discrete conditional computation --- gtsam/hybrid/HybridGaussianFactorGraph.cpp | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/gtsam/hybrid/HybridGaussianFactorGraph.cpp b/gtsam/hybrid/HybridGaussianFactorGraph.cpp index 5fd9ddfa6..e48052c19 100644 --- a/gtsam/hybrid/HybridGaussianFactorGraph.cpp +++ b/gtsam/hybrid/HybridGaussianFactorGraph.cpp @@ -364,19 +364,9 @@ discreteElimination(const HybridGaussianFactorGraph &factors, #if GTSAM_HYBRID_TIMING gttic_(EliminateDiscreteFormDiscreteConditional); #endif - DecisionTreeFactor joint; - // Normalize if we have only 1 key - // Needed due to conversion from TableFactor - if (product.discreteKeys().size() == 1) { - joint = DecisionTreeFactor(product.discreteKeys(), - product.toDecisionTreeFactor().normalize()); - } else { - joint = product.toDecisionTreeFactor(); - } - - // Finally, get the conditional + auto c = product / (*sum); auto conditional = std::make_shared( - joint, sum->toDecisionTreeFactor(), orderedKeys); + c.toDecisionTreeFactor(), frontalKeys.size(), orderedKeys); #if GTSAM_HYBRID_TIMING gttoc_(EliminateDiscreteFormDiscreteConditional); #endif