diff --git a/gtsam/discrete/DiscretePrior.h b/gtsam/discrete/DiscretePrior.h index f44df4987..1a7c6ae6c 100644 --- a/gtsam/discrete/DiscretePrior.h +++ b/gtsam/discrete/DiscretePrior.h @@ -81,9 +81,25 @@ class GTSAM_EXPORT DiscretePrior : public DiscreteConditional { /// Evaluate given a single value. 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 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 diff --git a/gtsam/discrete/discrete.i b/gtsam/discrete/discrete.i index f2e7456d8..9bb05085b 100644 --- a/gtsam/discrete/discrete.i +++ b/gtsam/discrete/discrete.i @@ -81,6 +81,8 @@ virtual class DiscretePrior : gtsam::DiscreteConditional { gtsam::DefaultKeyFormatter) const; double operator()(size_t value) const; std::vector pmf() const; + size_t solve() const; + size_t sample() const; }; #include