pinocchio  3.7.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
 
Loading...
Searching...
No Matches
LanczosDecompositionTpl< _Matrix > Struct Template Reference

Compute the largest eigenvalues and the associated principle eigenvector via power iteration. More...

#include <pinocchio/math/lanczos-decomposition.hpp>

Collaboration diagram for LanczosDecompositionTpl< _Matrix >:

Public Types

enum  { Options = _Matrix::Options }
 
typedef _Matrix PlainMatrix
 
typedef _Matrix::Scalar Scalar
 
typedef TridiagonalSymmetricMatrixTpl< Scalar, Options > TridiagonalMatrix
 
typedef PlainMatrix::ColXpr Vector
 

Public Member Functions

template<typename MatrixLikeType >
 LanczosDecompositionTpl (const MatrixLikeType &mat, const Eigen::DenseIndex decomposition_size)
 Default constructor for the Lanczos decomposition from an input matrix.
 
template<typename MatrixLikeType >
void compute (const MatrixLikeType &A)
 Computes the Lanczos decomposition of the input matrix A.
 
template<typename MatrixLikeType >
PlainMatrix computeDecompositionResidual (const MatrixLikeType &A) const
 Computes the residual associated with the decomposition, namely, the quantity \( A Q_s - Q_s T_s \).
 
bool operator!= (const LanczosDecompositionTpl &other) const
 
bool operator== (const LanczosDecompositionTpl &other) const
 
PlainMatrix & Qs ()
 Returns the orthogonal basis associated with the Lanczos decomposition.
 
const PlainMatrix & Qs () const
 Returns the orthogonal basis associated with the Lanczos decomposition.
 
Eigen::DenseIndex rank () const
 Returns the rank of the decomposition.
 
TridiagonalMatrix & Ts ()
 Returns the tridiagonal matrix associated with the Lanczos decomposition.
 
const TridiagonalMatrix & Ts () const
 Returns the tridiagonal matrix associated with the Lanczos decomposition.
 

Protected Attributes

Vector m_A_times_q
 
PlainMatrix m_Qs
 
Eigen::DenseIndex m_rank
 
TridiagonalMatrix m_Ts
 

Detailed Description

template<typename _Matrix>
struct pinocchio::LanczosDecompositionTpl< _Matrix >

Compute the largest eigenvalues and the associated principle eigenvector via power iteration.

Definition at line 18 of file lanczos-decomposition.hpp.

Member Typedef Documentation

◆ PlainMatrix

Definition at line 22 of file lanczos-decomposition.hpp.

◆ Scalar

template<typename _Matrix >
typedef _Matrix::Scalar Scalar

Definition at line 24 of file lanczos-decomposition.hpp.

◆ TridiagonalMatrix

Definition at line 29 of file lanczos-decomposition.hpp.

◆ Vector

template<typename _Matrix >
typedef PlainMatrix::ColXpr Vector

Definition at line 23 of file lanczos-decomposition.hpp.

Member Enumeration Documentation

◆ anonymous enum

Definition at line 25 of file lanczos-decomposition.hpp.

Constructor & Destructor Documentation

◆ LanczosDecompositionTpl()

template<typename _Matrix >
LanczosDecompositionTpl ( const MatrixLikeType &  mat,
const Eigen::DenseIndex  decomposition_size 
)
inline

Default constructor for the Lanczos decomposition from an input matrix.

Definition at line 33 of file lanczos-decomposition.hpp.

Member Function Documentation

◆ compute()

template<typename _Matrix >
void compute ( const MatrixLikeType &  A)
inline

Computes the Lanczos decomposition of the input matrix A.

Parameters
[in]AThe matrix to decompose

Definition at line 67 of file lanczos-decomposition.hpp.

◆ computeDecompositionResidual()

template<typename _Matrix >
PlainMatrix computeDecompositionResidual ( const MatrixLikeType &  A) const
inline

Computes the residual associated with the decomposition, namely, the quantity \( A Q_s - Q_s T_s \).

Parameters
[in]Athe matrix that have been decomposed.
Returns
The residual of the decomposition

Definition at line 123 of file lanczos-decomposition.hpp.

◆ operator!=()

template<typename _Matrix >
bool operator!= ( const LanczosDecompositionTpl< _Matrix > &  other) const
inline

Definition at line 56 of file lanczos-decomposition.hpp.

◆ operator==()

template<typename _Matrix >
bool operator== ( const LanczosDecompositionTpl< _Matrix > &  other) const
inline

Definition at line 49 of file lanczos-decomposition.hpp.

◆ Qs() [1/2]

template<typename _Matrix >
PlainMatrix & Qs ( )
inline

Returns the orthogonal basis associated with the Lanczos decomposition.

Definition at line 162 of file lanczos-decomposition.hpp.

◆ Qs() [2/2]

template<typename _Matrix >
const PlainMatrix & Qs ( ) const
inline

Returns the orthogonal basis associated with the Lanczos decomposition.

Definition at line 157 of file lanczos-decomposition.hpp.

◆ rank()

template<typename _Matrix >
Eigen::DenseIndex rank ( ) const
inline

Returns the rank of the decomposition.

Definition at line 168 of file lanczos-decomposition.hpp.

◆ Ts() [1/2]

template<typename _Matrix >
TridiagonalMatrix & Ts ( )
inline

Returns the tridiagonal matrix associated with the Lanczos decomposition.

Definition at line 151 of file lanczos-decomposition.hpp.

◆ Ts() [2/2]

template<typename _Matrix >
const TridiagonalMatrix & Ts ( ) const
inline

Returns the tridiagonal matrix associated with the Lanczos decomposition.

Definition at line 146 of file lanczos-decomposition.hpp.

Member Data Documentation

◆ m_A_times_q

template<typename _Matrix >
Vector m_A_times_q
mutableprotected

Definition at line 176 of file lanczos-decomposition.hpp.

◆ m_Qs

template<typename _Matrix >
PlainMatrix m_Qs
protected

Definition at line 174 of file lanczos-decomposition.hpp.

◆ m_rank

template<typename _Matrix >
Eigen::DenseIndex m_rank
protected

Definition at line 177 of file lanczos-decomposition.hpp.

◆ m_Ts

template<typename _Matrix >
TridiagonalMatrix m_Ts
protected

Definition at line 175 of file lanczos-decomposition.hpp.


The documentation for this struct was generated from the following file: