46 Factorization factorization_;
59 void print(
const std::string& str =
"Marginals: ",
const KeyFormatter& keyFormatter = DefaultKeyFormatter)
const;
62 Matrix marginalCovariance(
Key variable)
const;
67 Matrix marginalInformation(
Key variable)
const;
70 JointMarginal jointMarginalCovariance(
const std::vector<Key>& variables)
const;
73 JointMarginal jointMarginalInformation(
const std::vector<Key>& variables)
const;
83 std::vector<size_t> keys_;
108 return blockMatrix_(indices_.at(iVariable), indices_.at(jVariable)); }
112 return (*
this)(iVariable, jVariable); }
119 Eigen::SelfAdjointView<const Matrix, Eigen::Upper>
fullMatrix()
const {
return blockMatrix_.matrix(); }
122 void print(
const std::string& s =
"",
const KeyFormatter& formatter = DefaultKeyFormatter)
const;
125 JointMarginal(
const Matrix& fullMatrix,
const std::vector<size_t>& dims,
const std::vector<Key>& keys) :
126 blockMatrix_(dims, fullMatrix), keys_(keys), indices_(
Ordering(keys).invert()) {}
128 friend class Marginals;
Factorization
The linear factorization mode - either CHOLESKY (faster and suitable for most problems) or QR (slower...
Definition: Marginals.h:37
A non-templated config holding any types of Manifold-group elements.
SymmetricBlockMatrix::constBlock Block
A block view of the joint marginal - this stores a reference to the JointMarginal object...
Definition: Marginals.h:92
Gaussian Bayes Tree, the result of eliminating a GaussianJunctionTree.
Factor Graph Constsiting of non-linear factors.
A non-templated config holding any types of Manifold-group elements.
Definition: Values.h:75
Eigen::SelfAdjointView< const Matrix, Eigen::Upper > fullMatrix() const
The full, dense covariance/information matrix of the joint marginal.
Definition: Marginals.h:119
void print(const Matrix &A, const string &s, ostream &stream)
print a matrix
Definition: Matrix.cpp:183
A non-linear factor graph is a graph of non-Gaussian, i.e.
Definition: NonlinearFactorGraph.h:69
A matrix expression that references a single block of a SymmetricBlockMatrix.
Definition: SymmetricBlockMatrixBlockExpr.h:22
A class to store and access a joint marginal, returned from Marginals::jointMarginalCovariance and Ma...
Definition: Marginals.h:79
size_t Key
Integer nonlinear key type.
Definition: types.h:59
Definition: SymmetricBlockMatrix.h:40
A Linear Factor Graph is a factor graph where all factors are Gaussian, i.e.
Definition: GaussianFactorGraph.h:65
Definition: Ordering.h:30
A class for computing Gaussian marginals of variables in a NonlinearFactorGraph.
Definition: Marginals.h:32
Block operator()(Key iVariable, Key jVariable) const
Access a block, corresponding to a pair of variables, of the joint marginal.
Definition: Marginals.h:107
A Bayes tree representing a Gaussian density.
Definition: GaussianBayesTree.h:49
Block at(Key iVariable, Key jVariable) const
Synonym for operator()
Definition: Marginals.h:111
boost::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: types.h:62