#include <Covariances.h>
Public Types | |
typedef std::list< std::list < Node * > > | node_lists_t |
typedef std::list< std::pair < Node *, Node * > > | node_pair_list_t |
Public Member Functions | |
virtual std::list < Eigen::MatrixXd > | access (const node_pair_list_t &node_pair_list) const |
virtual Covariances | clone () const |
Covariances (Slam *slam) | |
virtual std::list < Eigen::MatrixXd > | marginal (const node_lists_t &node_lists) const |
virtual Eigen::MatrixXd | marginal (const std::list< Node * > &nodes) const |
virtual | ~Covariances () |
Private Member Functions | |
Covariances (Slam &slam) | |
int | get_dim (Node *node) const |
int | get_start (Node *node) const |
Private Attributes | |
CovarianceCache | _cache |
std::map< Node *, std::pair < int, int > > | _index |
SparseSystem | _R |
Slam * | _slam |
Definition at line 42 of file Covariances.h.
typedef std::list<std::list<Node*> > isam::Covariances::node_lists_t |
Definition at line 80 of file Covariances.h.
typedef std::list<std::pair<Node*, Node*> > isam::Covariances::node_pair_list_t |
Definition at line 81 of file Covariances.h.
isam::Covariances::Covariances | ( | Slam & | slam | ) | [private] |
Definition at line 42 of file Covariances.cpp.
isam::Covariances::Covariances | ( | Slam * | slam | ) | [inline] |
Create an instance based on a Slam object, that always refers to the latest state of slam.
Definition at line 66 of file Covariances.h.
virtual isam::Covariances::~Covariances | ( | ) | [inline, virtual] |
Definition at line 68 of file Covariances.h.
list< MatrixXd > isam::Covariances::access | ( | const node_pair_list_t & | node_pair_list | ) | const [virtual] |
Calculates individual entries of the covariance matrix (as opposed to marginal_covariance, which calculates blocks containing select variables). Note that a single call with a long list of entries is significantly more efficient than repeatedly calling this function, as intermediate results are being reused.
entry_list | List of pairs of nodes, indexing entries in the covariance matrix in (column, row) format. |
Definition at line 107 of file Covariances.cpp.
virtual Covariances isam::Covariances::clone | ( | ) | const [inline, virtual] |
Create a stand-alone copy, useful for calculating covariances in a separate thread. Copies all necessary data structures to work independently of the Slam object.
Definition at line 76 of file Covariances.h.
int isam::Covariances::get_dim | ( | Node * | node | ) | const [private] |
Definition at line 62 of file Covariances.cpp.
int isam::Covariances::get_start | ( | Node * | node | ) | const [private] |
Definition at line 54 of file Covariances.cpp.
list< MatrixXd > isam::Covariances::marginal | ( | const node_lists_t & | node_lists | ) | const [virtual] |
Calculates marginal covariance over a list of lists. Significantly more efficient than calling marginal_covariance multiple times with separate lists, as intermediate results are being reused.
node_lists | List of list of nodes. |
Definition at line 70 of file Covariances.cpp.
virtual Eigen::MatrixXd isam::Covariances::marginal | ( | const std::list< Node * > & | nodes | ) | const [virtual] |
Calculates marginal covariance over a list of nodes.
nodes | List of nodes. return Marginal covariance matrix. |
CovarianceCache isam::Covariances::_cache [mutable, private] |
Definition at line 51 of file Covariances.h.
std::map<Node*, std::pair<int, int> > isam::Covariances::_index [private] |
Definition at line 49 of file Covariances.h.
SparseSystem isam::Covariances::_R [private] |
Definition at line 48 of file Covariances.h.
Slam* isam::Covariances::_slam [private] |
Definition at line 45 of file Covariances.h.