From c6c451bee102f624cf25660ec6a820c9d5c1c49c Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Fri, 3 Jan 2025 13:28:40 -0500 Subject: [PATCH] compute correct subset of keys for division --- gtsam/discrete/DecisionTreeFactor.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gtsam/discrete/DecisionTreeFactor.h b/gtsam/discrete/DecisionTreeFactor.h index 24a699d42..0b94140da 100644 --- a/gtsam/discrete/DecisionTreeFactor.h +++ b/gtsam/discrete/DecisionTreeFactor.h @@ -161,7 +161,15 @@ namespace gtsam { /// divide by factor f (safely) DecisionTreeFactor operator/(const DecisionTreeFactor& f) const { - return apply(f, safe_div); + KeyVector diff; + std::set_difference(this->keys().begin(), this->keys().end(), + f.keys().begin(), f.keys().end(), + std::back_inserter(diff)); + DiscreteKeys keys; + for (Key key : diff) { + keys.push_back({key, this->cardinality(key)}); + } + return DecisionTreeFactor(keys, apply(f, safe_div)); } /// Convert into a decision tree