A hybrid Bayes net is a collection of HybridConditionals, which can have discrete conditionals, Gaussian mixtures, or pure Gaussian conditionals.
|
|
| HybridBayesNet ()=default |
| | Construct empty Bayes net.
|
| void | print (const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const override |
| | GTSAM-style printing.
|
|
bool | equals (const This &fg, double tol=1e-9) const |
| | GTSAM-style equals.
|
| void | push_back (boost::shared_ptr< HybridConditional > conditional) |
| | Add a hybrid conditional using a shared_ptr.
|
| template<class Conditional> |
| void | emplace_back (Conditional *conditional) |
| | Preferred: add a conditional directly using a pointer.
|
| void | push_back (HybridConditional &&conditional) |
| | Add a conditional using a shared_ptr, using implicit conversion to a HybridConditional.
|
| GaussianBayesNet | choose (const DiscreteValues &assignment) const |
| | Get the Gaussian Bayes Net which corresponds to a specific discrete value assignment.
|
|
double | evaluate (const HybridValues &values) const |
| | Evaluate hybrid probability density for given HybridValues.
|
|
double | operator() (const HybridValues &values) const |
| | Evaluate hybrid probability density for given HybridValues, sugar.
|
| HybridValues | optimize () const |
| | Solve the HybridBayesNet by first computing the MPE of all the discrete variables and then optimizing the continuous variables based on the MPE assignment.
|
| VectorValues | optimize (const DiscreteValues &assignment) const |
| | Given the discrete assignment, return the optimized estimate for the selected Gaussian BayesNet.
|
| DecisionTreeFactor::shared_ptr | discreteConditionals () const |
| | Get all the discrete conditionals as a decision tree factor.
|
| HybridValues | sample (const HybridValues &given, std::mt19937_64 *rng) const |
| | Sample from an incomplete BayesNet, given missing variables.
|
| HybridValues | sample (std::mt19937_64 *rng) const |
| | Sample using ancestral sampling.
|
| HybridValues | sample (const HybridValues &given) const |
| | Sample from an incomplete BayesNet, use default rng.
|
| HybridValues | sample () const |
| | Sample using ancestral sampling, use default rng.
|
|
HybridBayesNet | prune (size_t maxNrLeaves) |
| | Prune the Hybrid Bayes Net such that we have at most maxNrLeaves leaves.
|
| AlgebraicDecisionTree< Key > | logProbability (const VectorValues &continuousValues) const |
| | Compute conditional error for each discrete assignment, and return as a tree.
|
| AlgebraicDecisionTree< Key > | evaluate (const VectorValues &continuousValues) const |
| | Compute unnormalized probability q(μ|M), for each discrete assignment, and return as a tree.
|
|
HybridGaussianFactorGraph | toFactorGraph (const VectorValues &measurements) const |
| | Convert a hybrid Bayes net to a hybrid Gaussian factor graph by converting all conditionals with instantiated measurements into likelihood factors.
|
|
double | logProbability (const HybridValues &x) const |
|
void | dot (std::ostream &os, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DotWriter &writer=DotWriter()) const |
| | Output to graphviz format, stream version.
|
|
std::string | dot (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DotWriter &writer=DotWriter()) const |
| | Output to graphviz format string.
|
|
void | saveGraph (const std::string &filename, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DotWriter &writer=DotWriter()) const |
| | output to file with graphviz format.
|
|
double | logProbability (const HybridValues &x) const |
|
double | evaluate (const HybridValues &c) const |
|
size_t | nrFactors () const |
| | return the number of non-null factors
|
|
KeySet | keys () const |
| | Potentially slow function to return all keys involved, sorted, as a set.
|
|
KeyVector | keyVector () const |
| | Potentially slow function to return all keys involved, sorted, as a vector.
|
|
bool | exists (size_t idx) const |
| | MATLAB interface utility: Checks whether a factor index idx exists in the graph and is a live pointer.
|
|
virtual | ~FactorGraph ()=default |
| | Default destructor Public and virtual so boost serialization can call it.
|
| template<class DERIVEDFACTOR, typename = IsDerived<DERIVEDFACTOR>> |
| | FactorGraph (std::initializer_list< boost::shared_ptr< DERIVEDFACTOR > > sharedFactors) |
| | Constructor that takes an initializer list of shared pointers.
|
|
void | reserve (size_t size) |
| | Reserve space for the specified number of factors if you know in advance how many there will be (works like FastVector::reserve).
|
|
template<class DERIVEDFACTOR> |
| IsDerived< DERIVEDFACTOR > | push_back (boost::shared_ptr< DERIVEDFACTOR > factor) |
| | Add a factor directly using a shared_ptr.
|
|
template<class DERIVEDFACTOR, class... Args> |
| IsDerived< DERIVEDFACTOR > | emplace_shared (Args &&... args) |
| | Emplace a shared pointer to factor of given type.
|
|
template<class DERIVEDFACTOR> |
| IsDerived< DERIVEDFACTOR > | push_back (const DERIVEDFACTOR &factor) |
| | Add a factor by value, will be copy-constructed (use push_back with a shared_ptr to avoid the copy).
|
|
template<class DERIVEDFACTOR> |
| IsDerived< DERIVEDFACTOR > | add (boost::shared_ptr< DERIVEDFACTOR > factor) |
| | add is a synonym for push_back.
|
|
template<class DERIVEDFACTOR> |
| std::enable_if< std::is_base_of< FactorType, DERIVEDFACTOR >::value, boost::assign::list_inserter< RefCallPushBack< This > > >::type | operator+= (boost::shared_ptr< DERIVEDFACTOR > factor) |
| | += works well with boost::assign list inserter.
|
|
template<typename ITERATOR> |
| HasDerivedElementType< ITERATOR > | push_back (ITERATOR firstFactor, ITERATOR lastFactor) |
| | Push back many factors with an iterator over shared_ptr (factors are not copied).
|
|
template<typename ITERATOR> |
| HasDerivedValueType< ITERATOR > | push_back (ITERATOR firstFactor, ITERATOR lastFactor) |
| | Push back many factors with an iterator (factors are copied).
|
|
template<typename CONTAINER> |
| HasDerivedElementType< CONTAINER > | push_back (const CONTAINER &container) |
| | Push back many factors as shared_ptr's in a container (factors are not copied).
|
|
template<typename CONTAINER> |
| HasDerivedValueType< CONTAINER > | push_back (const CONTAINER &container) |
| | Push back non-pointer objects in a container (factors are copied).
|
|
template<class FACTOR_OR_CONTAINER> |
| void | add (const FACTOR_OR_CONTAINER &factorOrContainer) |
| | Add a factor or container of factors, including STL collections, BayesTrees, etc.
|
|
template<class FACTOR_OR_CONTAINER> |
| boost::assign::list_inserter< CRefCallPushBack< This > > | operator+= (const FACTOR_OR_CONTAINER &factorOrContainer) |
| | Add a factor or container of factors, including STL collections, BayesTrees, etc.
|
| template<class CLIQUE> |
| std::enable_if< std::is_base_of< This, typenameCLIQUE::FactorGraphType >::value >::type | push_back (const BayesTree< CLIQUE > &bayesTree) |
| | Push back a BayesTree as a collection of factors.
|
|
template<typename CONTAINER, typename = HasDerivedElementType<CONTAINER>> |
| FactorIndices | add_factors (const CONTAINER &factors, bool useEmptySlots=false) |
| | Add new factors to a factor graph and returns a list of new factor indices, optionally finding and reusing empty factor slots.
|
|
bool | equals (const This &fg, double tol=1e-9) const |
| | Check equality up to tolerance.
|
|
size_t | size () const |
| | return the number of factors (including any null factors set by remove() ).
|
|
bool | empty () const |
| | Check if the graph is empty (null factors set by remove() will cause this to return false).
|
|
const sharedFactor | at (size_t i) const |
| | Get a specific factor by index (this checks array bounds and may throw an exception, as opposed to operator[] which does not).
|
|
sharedFactor & | at (size_t i) |
| | Get a specific factor by index (this checks array bounds and may throw an exception, as opposed to operator[] which does not).
|
|
const sharedFactor | operator[] (size_t i) const |
| | Get a specific factor by index (this does not check array bounds, as opposed to at() which does).
|
|
sharedFactor & | operator[] (size_t i) |
| | Get a specific factor by index (this does not check array bounds, as opposed to at() which does).
|
|
const_iterator | begin () const |
| | Iterator to beginning of factors.
|
|
const_iterator | end () const |
| | Iterator to end of factors.
|
|
sharedFactor | front () const |
| | Get the first factor.
|
|
sharedFactor | back () const |
| | Get the last factor.
|
|
double | error (const HybridValues &values) const |
| | Add error for all factors.
|
|
iterator | begin () |
| | non-const STL-style begin()
|
|
iterator | end () |
| | non-const STL-style end()
|
| virtual void | resize (size_t size) |
| | Directly resize the number of factors in the graph.
|
|
void | remove (size_t i) |
| | delete factor without re-arranging indexes by inserting a nullptr pointer
|
|
void | replace (size_t index, sharedFactor factor) |
| | replace a factor by index
|
|
iterator | erase (iterator item) |
| | Erase factor and rearrange other factors to take up the empty space.
|
|
iterator | erase (iterator first, iterator last) |
| | Erase factors and rearrange other factors to take up the empty space.
|
|
void | dot (std::ostream &os, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DotWriter &writer=DotWriter()) const |
| | Output to graphviz format, stream version.
|
|
std::string | dot (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DotWriter &writer=DotWriter()) const |
| | Output to graphviz format string.
|
|
void | saveGraph (const std::string &filename, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DotWriter &writer=DotWriter()) const |
| | output to file with graphviz format.
|