compute correct subset of keys for division

release/4.3a0
Varun Agrawal 2025-01-03 13:28:40 -05:00
parent cb9cec30e3
commit c6c451bee1
1 changed files with 9 additions and 1 deletions

View File

@ -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