From 4a7cf4cc40eaea503904e0b0bba1725217b7ca5c Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Fri, 11 Apr 2025 15:19:24 -0400 Subject: [PATCH] update HybridNonlinearFactorGraph::restrict to ignore empty discrete factors --- gtsam/hybrid/HybridNonlinearFactorGraph.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gtsam/hybrid/HybridNonlinearFactorGraph.cpp b/gtsam/hybrid/HybridNonlinearFactorGraph.cpp index b42676aac..4f8cf45ee 100644 --- a/gtsam/hybrid/HybridNonlinearFactorGraph.cpp +++ b/gtsam/hybrid/HybridNonlinearFactorGraph.cpp @@ -237,12 +237,16 @@ HybridNonlinearFactorGraph HybridNonlinearFactorGraph::restrict( if (auto hf = dynamic_pointer_cast(f)) { result.push_back(hf->restrict(discreteValues)); } else if (auto df = dynamic_pointer_cast(f)) { - result.push_back(df->restrict(discreteValues)); + // In the case where all the values have been selected, we ignore the + // factor since it doesn't add any information + if (df->discreteKeys().size() > 0) { + result.push_back(df->restrict(discreteValues)); + } } else { result.push_back(f); // Everything else is just added as is } } - + return result; }