g2o
Loading...
Searching...
No Matches
Functions
internal Namespace Reference

Functions

int computeUpperTriangleIndex (int i, int j)
 
template<typename MatrixType >
void pcg_axy (const MatrixType &A, const VectorX &x, int xoff, VectorX &y, int yoff)
 
template<>
void pcg_axy (const MatrixX &A, const VectorX &x, int xoff, VectorX &y, int yoff)
 
template<typename MatrixType >
void pcg_axpy (const MatrixType &A, const VectorX &x, int xoff, VectorX &y, int yoff)
 
template<>
void pcg_axpy (const MatrixX &A, const VectorX &x, int xoff, VectorX &y, int yoff)
 
template<typename MatrixType >
void pcg_atxpy (const MatrixType &A, const VectorX &x, int xoff, VectorX &y, int yoff)
 
template<>
void pcg_atxpy (const MatrixX &A, const VectorX &x, int xoff, VectorX &y, int yoff)
 

Function Documentation

◆ computeUpperTriangleIndex()

int internal::computeUpperTriangleIndex ( int  i,
int  j 
)
inline

Definition at line 30 of file base_variable_sized_edge.hpp.

30 {
31 int elemsUpToCol = ((j - 1) * j) / 2;
32 return elemsUpToCol + i;
33}

Referenced by g2o::BaseVariableSizedEdge< D, E >::computeQuadraticForm(), and g2o::BaseVariableSizedEdge< D, E >::mapHessianMemory().

◆ pcg_atxpy() [1/2]

template<typename MatrixType >
void internal::pcg_atxpy ( const MatrixType &  A,
const VectorX &  x,
int  xoff,
VectorX &  y,
int  yoff 
)
inline

Definition at line 73 of file linear_solver_pcg.hpp.

74 {
75 y.segment<MatrixType::ColsAtCompileTime>(yoff) +=
76 A.transpose() * x.segment<MatrixType::RowsAtCompileTime>(xoff);
77}

Referenced by g2o::LinearSolverPCG< MatrixType >::mult().

◆ pcg_atxpy() [2/2]

template<>
void internal::pcg_atxpy ( const MatrixX &  A,
const VectorX &  x,
int  xoff,
VectorX &  y,
int  yoff 
)
inline

Definition at line 80 of file linear_solver_pcg.hpp.

81 {
82 y.segment(yoff, A.cols()) += A.transpose() * x.segment(xoff, A.rows());
83}

◆ pcg_axpy() [1/2]

template<typename MatrixType >
void internal::pcg_axpy ( const MatrixType &  A,
const VectorX &  x,
int  xoff,
VectorX &  y,
int  yoff 
)
inline

Definition at line 60 of file linear_solver_pcg.hpp.

61 {
62 y.segment<MatrixType::RowsAtCompileTime>(yoff) +=
63 A * x.segment<MatrixType::ColsAtCompileTime>(xoff);
64}

Referenced by g2o::LinearSolverPCG< MatrixType >::mult().

◆ pcg_axpy() [2/2]

template<>
void internal::pcg_axpy ( const MatrixX &  A,
const VectorX &  x,
int  xoff,
VectorX &  y,
int  yoff 
)
inline

Definition at line 67 of file linear_solver_pcg.hpp.

68 {
69 y.segment(yoff, A.rows()) += A * x.segment(xoff, A.cols());
70}

◆ pcg_axy() [1/2]

template<typename MatrixType >
void internal::pcg_axy ( const MatrixType &  A,
const VectorX &  x,
int  xoff,
VectorX &  y,
int  yoff 
)
inline

Definition at line 46 of file linear_solver_pcg.hpp.

47 {
48 y.segment<MatrixType::RowsAtCompileTime>(yoff) =
49 A * x.segment<MatrixType::ColsAtCompileTime>(xoff);
50}

Referenced by g2o::LinearSolverPCG< MatrixType >::multDiag(), and g2o::LinearSolverPCG< MatrixType >::multDiag().

◆ pcg_axy() [2/2]

template<>
void internal::pcg_axy ( const MatrixX &  A,
const VectorX &  x,
int  xoff,
VectorX &  y,
int  yoff 
)
inline

Definition at line 53 of file linear_solver_pcg.hpp.

54 {
55 y.segment(yoff, A.rows()) = A * x.segment(xoff, A.cols());
56}