Add no-argument solve and sample to DiscretePrior

release/4.3a0
Frank Dellaert 2021-12-26 18:23:48 -05:00
parent 075a7cd0fd
commit 1d12995be5
2 changed files with 19 additions and 1 deletions

View File

@ -81,9 +81,25 @@ class GTSAM_EXPORT DiscretePrior : public DiscreteConditional {
/// Evaluate given a single value. /// Evaluate given a single value.
double operator()(size_t value) const; double operator()(size_t value) const;
/// Evaluate given a single value. /// We also want to keep the Base version, taking DiscreteValues:
// TODO(dellaert): does not play well with wrapper!
// using Base::operator();
/// Return entire probability mass function.
std::vector<double> pmf() const; std::vector<double> pmf() const;
/**
* solve a conditional
* @return MPE value of the child (1 frontal variable).
*/
size_t solve() const { return Base::solve({}); }
/**
* sample
* @return sample from conditional
*/
size_t sample() const { return Base::sample({}); }
/// @} /// @}
}; };
// DiscretePrior // DiscretePrior

View File

@ -81,6 +81,8 @@ virtual class DiscretePrior : gtsam::DiscreteConditional {
gtsam::DefaultKeyFormatter) const; gtsam::DefaultKeyFormatter) const;
double operator()(size_t value) const; double operator()(size_t value) const;
std::vector<double> pmf() const; std::vector<double> pmf() const;
size_t solve() const;
size_t sample() const;
}; };
#include <gtsam/discrete/DiscreteBayesNet.h> #include <gtsam/discrete/DiscreteBayesNet.h>