Add methods in HybridBayesNet

release/4.3a0
Frank Dellaert 2022-12-28 18:05:46 -05:00
parent d9511d6dc2
commit 1de49598af
3 changed files with 19 additions and 2 deletions

View File

@ -87,7 +87,6 @@ class HybridBayesTreeClique {
// double evaluate(const gtsam::HybridValues& values) const; // double evaluate(const gtsam::HybridValues& values) const;
}; };
#include <gtsam/hybrid/HybridBayesTree.h>
class HybridBayesTree { class HybridBayesTree {
HybridBayesTree(); HybridBayesTree();
void print(string s = "HybridBayesTree\n", void print(string s = "HybridBayesTree\n",
@ -105,14 +104,29 @@ class HybridBayesTree {
gtsam::DefaultKeyFormatter) const; gtsam::DefaultKeyFormatter) const;
}; };
#include <gtsam/hybrid/HybridBayesTree.h>
class HybridBayesNet { class HybridBayesNet {
HybridBayesNet(); HybridBayesNet();
void add(const gtsam::HybridConditional& s); void add(const gtsam::HybridConditional& s);
void addMixture(const gtsam::GaussianMixture& s);
void addGaussian(const gtsam::GaussianConditional& s);
void addDiscrete(const gtsam::DiscreteConditional& s);
void addDiscrete(const gtsam::DiscreteKey& key, string spec);
void addDiscrete(const gtsam::DiscreteKey& key,
const gtsam::DiscreteKeys& parents, string spec);
void addDiscrete(const gtsam::DiscreteKey& key,
const std::vector<gtsam::DiscreteKey>& parents, string spec);
bool empty() const; bool empty() const;
size_t size() const; size_t size() const;
gtsam::KeySet keys() const; gtsam::KeySet keys() const;
const gtsam::HybridConditional* at(size_t i) const; const gtsam::HybridConditional* at(size_t i) const;
double evaluate(const gtsam::HybridValues& x) const;
gtsam::HybridValues optimize() const; gtsam::HybridValues optimize() const;
gtsam::HybridValues sample(const gtsam::HybridValues &given) const;
gtsam::HybridValues sample() const;
void print(string s = "HybridBayesNet\n", void print(string s = "HybridBayesNet\n",
const gtsam::KeyFormatter& keyFormatter = const gtsam::KeyFormatter& keyFormatter =
gtsam::DefaultKeyFormatter) const; gtsam::DefaultKeyFormatter) const;

View File

@ -19,3 +19,4 @@ PYBIND11_MAKE_OPAQUE(std::vector<gtsam::Key>);
#endif #endif
PYBIND11_MAKE_OPAQUE(std::vector<gtsam::GaussianFactor::shared_ptr>); PYBIND11_MAKE_OPAQUE(std::vector<gtsam::GaussianFactor::shared_ptr>);
PYBIND11_MAKE_OPAQUE(std::vector<gtsam::GaussianConditional::shared_ptr>);

View File

@ -1,4 +1,6 @@
py::bind_vector<std::vector<gtsam::GaussianFactor::shared_ptr> >(m_, "GaussianFactorVector"); py::bind_vector<std::vector<gtsam::GaussianFactor::shared_ptr> >(m_, "GaussianFactorVector");
py::implicitly_convertible<py::list, std::vector<gtsam::GaussianFactor::shared_ptr> >(); py::implicitly_convertible<py::list, std::vector<gtsam::GaussianFactor::shared_ptr> >();
py::bind_vector<std::vector<gtsam::GaussianConditional::shared_ptr> >(m_, "GaussianConditionalVector");
py::implicitly_convertible<py::list, std::vector<gtsam::GaussianConditional::shared_ptr> >();