27#ifndef G2O_MARGINAL_COVARIANCE_CHOLESKY_H
28#define G2O_MARGINAL_COVARIANCE_CHOLESKY_H
30#include <unordered_map>
58 void computeCovariance(
double** covBlocks,
59 const std::vector<int>& blockIndices);
66 const std::vector<int>& rowBlockIndices,
67 const std::vector<std::pair<int, int> >& blockIndices);
78 void setCholeskyFactor(
int n,
int* Lp,
int* Li,
double* Lx,
int* permInv);
101 double computeEntry(
int r,
int c);
computing the marginal covariance given a cholesky factor (lower triangle of the factor)
int _n
L is an n X n matrix.
double * _Ax
values of the cholesky factor
std::unordered_map< int, double > LookupMap
int * _Ai
row indices of the CCS storage
int * _Ap
column pointer of the CCS storage
std::vector< double > _diag
cache 1 / H_ii to avoid recalculations
LookupMap _map
hash look up table for the already computed entries
int computeIndex(int r, int c) const
compute the index used for hashing
Sparse matrix which uses blocks.