27#ifndef G2O_MARGINAL_COVARIANCE_CHOLESKY_H
28#define G2O_MARGINAL_COVARIANCE_CHOLESKY_H
30#include "optimizable_graph.h"
31#include "sparse_block_matrix.h"
34#include "Base/Headers/Buffer.hpp"
35#include <unordered_map>
43 class MarginalCovarianceCholesky {
51 MarginalCovarianceCholesky();
The equivelent of std::vector but with a bit more control.
A hash-based key-value store, useful for quick associative lookups.
void computeCovariance(g_type **covBlocks, const Buffer< int > &blockIndices)
compute the marginal cov for the given block indices, write the result to the covBlocks memory (which...
int * _Ap
column pointer of the CCS storage
g_type computeEntry(int r, int c)
compute one entry in the covariance, r and c are values after applying the permutation,...
g_type * _Ax
values of the cholesky factor
void setCholeskyFactor(int n, int *Lp, int *Li, g_type *Lx, int *permInv)
set the CCS representation of the cholesky factor along with the inverse permutation used to reduce t...
Buffer< g_type > _diag
cache 1 / H_ii to avoid recalculations
int computeIndex(int r, int c) const
compute the index used for hashing
int * _perm
permutation of the cholesky factor. Variable re-ordering for better fill-in
int * _Ai
row indices of the CCS storage
int _n
L is an n X n matrix.
Dictionary< int, g_type > LookupMap
hash struct for storing the matrix elements needed to compute the covariance
void computeCovariance(SparseBlockMatrix< MatrixX< g_type > > &spinv, const Buffer< int > &rowBlockIndices, const Buffer< std::pair< int, int > > &blockIndices)
compute the marginal cov for the given block indices, write the result in spinv).
LookupMap _map
hash look up table for the already computed entries
Sparse matrix which uses blocks.
The primary namespace for the NDEVR SDK.