Go to the documentation of this file.
38 class HybridGaussianFactorGraph;
39 class HybridConditional;
41 class HybridEliminationTree;
42 class HybridBayesTree;
43 class HybridJunctionTree;
44 class DecisionTreeFactor;
58 std::pair<std::shared_ptr<HybridConditional>, std::shared_ptr<Factor>>
67 GTSAM_EXPORT
const Ordering
85 static std::pair<std::shared_ptr<ConditionalType>,
87 std::shared_ptr<FactorType>>
94 std::optional<std::reference_wrapper<const VariableIndex>>) {
111 template <
typename FACTOR>
132 template <
class CONTAINER>
149 template <
class DERIVEDFACTOR>
158 const std::string&
s =
"HybridGaussianFactorGraph",
171 const std::string&
str =
"HybridGaussianFactorGraph: ",
173 const std::function<
bool(
const Factor* ,
176 [](
const Factor*,
double,
size_t) {
return true; })
const;
196 AlgebraicDecisionTree<Key> errorTree(
217 AlgebraicDecisionTree<Key> discretePosterior(
229 HybridGaussianProductFactor collectProductFactor()
const;
237 std::pair<std::shared_ptr<HybridConditional>, std::shared_ptr<Factor>>
238 eliminate(
const Ordering&
keys)
const;
256 return choose(assignment);
271 :
public Testable<HybridGaussianFactorGraph> {};
GaussianFactorGraph operator()(const DiscreteValues &assignment) const
Syntactic sugar for choose.
HybridBayesTree BayesTreeType
Type of Bayes tree.
const GaussianFactorGraph factors
HybridEliminationTree EliminationTreeType
Type of elimination tree.
Variable ordering for the elimination algorithm.
HybridGaussianFactorGraph(std::initializer_list< sharedFactor > factors)
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
A set of GaussianFactors, indexed by a set of discrete keys.
static std::pair< std::shared_ptr< ConditionalType >, std::shared_ptr< FactorType > > DefaultEliminate(const FactorGraphType &factors, const Ordering &keys)
The default dense elimination function.
HybridGaussianFactorGraph(const FactorGraph< DERIVEDFACTOR > &graph)
KeyFormatter DefaultKeyFormatter
Assign default key formatter.
Factor FactorType
Type of factors in factor graph.
void print(const Matrix &A, const string &s, ostream &stream)
HybridGaussianFactorGraph(const CONTAINER &factors)
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
HybridJunctionTree JunctionTreeType
typename std::enable_if< std::is_base_of< GaussianFactor, FACTOR >::value >::type IsGaussian
Check if FACTOR type is derived from GaussianFactor.
std::pair< HybridConditional::shared_ptr, std::shared_ptr< Factor > > EliminateHybrid(const HybridGaussianFactorGraph &factors, const Ordering &keys)
Main elimination function for HybridGaussianFactorGraph.
Variable elimination algorithms for factor graphs.
specialized key for discrete variables
Factor graph with utilities for hybrid factors.
HybridConditional ConditionalType
Type of conditionals from elimination.
std::vector< float > Values
std::shared_ptr< This > shared_ptr
shared_ptr to This
const Ordering HybridOrdering(const HybridGaussianFactorGraph &graph)
Return a Colamd constrained ordering where the discrete keys are eliminated after the continuous keys...
HybridGaussianFactorGraph FactorGraphType
static Ordering DefaultOrderingFunc(const FactorGraphType &graph, std::optional< std::reference_wrapper< const VariableIndex >>)
The default ordering generation function.
A factor with a quadratic error function - a Gaussian.
NonlinearFactorGraph graph
HybridBayesNet BayesNetType
Type of Bayes net from sequential elimination.
static const T & choose(int layout, const T &col, const T &row)
gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:11:40