make ADT with nullptr in TableDistribution

release/4.3a0
Varun Agrawal 2025-01-07 14:52:48 -05:00
parent 9228f0f771
commit b81ab86b69
2 changed files with 6 additions and 4 deletions

View File

@ -57,6 +57,9 @@ namespace gtsam {
AlgebraicDecisionTree(double leaf = 1.0) : Base(leaf) {}
/// Constructor which accepts root pointer
AlgebraicDecisionTree(const typename Base::NodePtr root) : Base(root) {}
// Explicitly non-explicit constructor
AlgebraicDecisionTree(const Base& add) : Base(add) {}

View File

@ -45,15 +45,14 @@ static Eigen::SparseVector<double> normalizeSparseTable(
/* ************************************************************************** */
TableDistribution::TableDistribution(const TableFactor& f)
: BaseConditional(f.keys().size(),
DecisionTreeFactor(f.discreteKeys(), ADT())),
: BaseConditional(f.keys().size(), f.discreteKeys(), ADT(nullptr)),
table_(f / (*std::dynamic_pointer_cast<TableFactor>(
f.sum(f.keys().size())))) {}
/* ************************************************************************** */
TableDistribution::TableDistribution(const DiscreteKeys& keys,
const std::vector<double>& potentials)
: BaseConditional(keys.size(), keys, DecisionTreeFactor(keys, ADT())),
: BaseConditional(keys.size(), keys, ADT(nullptr)),
table_(TableFactor(
keys, normalizeSparseTable(TableFactor::Convert(keys, potentials)))) {
}
@ -61,7 +60,7 @@ TableDistribution::TableDistribution(const DiscreteKeys& keys,
/* ************************************************************************** */
TableDistribution::TableDistribution(const DiscreteKeys& keys,
const std::string& potentials)
: BaseConditional(keys.size(), keys, DecisionTreeFactor(keys, ADT())),
: BaseConditional(keys.size(), keys, ADT(nullptr)),
table_(TableFactor(
keys, normalizeSparseTable(TableFactor::Convert(keys, potentials)))) {
}