From 73f54083a7aeab7c996f865e4fe77d3ab3cdfb1d Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 31 Dec 2024 19:34:46 -0500 Subject: [PATCH] normalize --- gtsam/hybrid/HybridGaussianFactorGraph.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gtsam/hybrid/HybridGaussianFactorGraph.cpp b/gtsam/hybrid/HybridGaussianFactorGraph.cpp index ca971191c..5fd9ddfa6 100644 --- a/gtsam/hybrid/HybridGaussianFactorGraph.cpp +++ b/gtsam/hybrid/HybridGaussianFactorGraph.cpp @@ -364,9 +364,19 @@ 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 conditional = std::make_shared( - product.toDecisionTreeFactor(), sum->toDecisionTreeFactor(), orderedKeys); + joint, sum->toDecisionTreeFactor(), orderedKeys); #if GTSAM_HYBRID_TIMING gttoc_(EliminateDiscreteFormDiscreteConditional); #endif