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) {} AlgebraicDecisionTree(double leaf = 1.0) : Base(leaf) {}
/// Constructor which accepts root pointer
AlgebraicDecisionTree(const typename Base::NodePtr root) : Base(root) {}
// Explicitly non-explicit constructor // Explicitly non-explicit constructor
AlgebraicDecisionTree(const Base& add) : Base(add) {} AlgebraicDecisionTree(const Base& add) : Base(add) {}

View File

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