Main MRPT website > C++ reference
MRPT logo
Classes | Functions

Eigen::internal Namespace Reference

Classes

struct  traits< TridiagonalizationMatrixTReturnType< MatrixType > >
struct  tridiagonalization_inplace_selector
struct  tridiagonalization_inplace_selector< MatrixType, 3, false >
struct  tridiagonalization_inplace_selector< MatrixType, 1, IsComplex >
struct  TridiagonalizationMatrixTReturnType
struct  traits< HessenbergDecompositionMatrixHReturnType< MatrixType > >
struct  HessenbergDecompositionMatrixHReturnType
  More...
struct  complex_schur_reduce_to_hessenberg
struct  complex_schur_reduce_to_hessenberg< MatrixType, false >
struct  eigenvalues_selector
struct  eigenvalues_selector< Derived, false >
struct  traits< solve_retval_base< DecompositionType, Rhs > >
class  solve_retval_base
struct  llt_inplace< Lower >
struct  llt_inplace< Upper >
struct  LLT_Traits< MatrixType, Lower >
struct  LLT_Traits< MatrixType, Upper >
struct  solve_retval< LLT< _MatrixType, UpLo >, Rhs >
struct  ldlt_inplace< Lower >
struct  ldlt_inplace< Upper >
struct  LDLT_Traits< MatrixType, Lower >
struct  LDLT_Traits< MatrixType, Upper >
struct  solve_retval< LDLT< _MatrixType, _UpLo >, Rhs >
struct  solve_retval< HouseholderQR< _MatrixType >, Rhs >
struct  solve_retval< FullPivHouseholderQR< _MatrixType >, Rhs >
struct  solve_retval< ColPivHouseholderQR< _MatrixType >, Rhs >

Functions

template<typename MatrixType , typename CoeffVectorType >
void tridiagonalization_inplace (MatrixType &matA, CoeffVectorType &hCoeffs)
template<typename MatrixType , typename DiagonalType , typename SubDiagonalType >
void tridiagonalization_inplace (MatrixType &mat, DiagonalType &diag, SubDiagonalType &subdiag, bool extractQ)
 Performs a full tridiagonalization in place.
template<int StorageOrder, typename RealScalar , typename Scalar , typename Index >
static void tridiagonal_qr_step (RealScalar *diag, RealScalar *subdiag, Index start, Index end, Scalar *matrixQ, Index n)
template<typename RealScalar >
std::complex< RealScalar > sqrt (const std::complex< RealScalar > &z)
 Computes the principal value of the square root of the complex z.
template<typename MatrixQR , typename HCoeffs >
void householder_qr_inplace_unblocked (MatrixQR &mat, HCoeffs &hCoeffs, typename MatrixQR::Scalar *tempData=0)
template<typename MatrixQR , typename HCoeffs >
void householder_qr_inplace_blocked (MatrixQR &mat, HCoeffs &hCoeffs, typename MatrixQR::Index maxBlockSize=32, typename MatrixQR::Scalar *tempData=0)

Function Documentation

template<typename MatrixQR , typename HCoeffs >
void Eigen::internal::householder_qr_inplace_blocked ( MatrixQR &  mat,
HCoeffs &  hCoeffs,
typename MatrixQR::Index  maxBlockSize = 32,
typename MatrixQR::Scalar *  tempData = 0 
)

Definition at line 243 of file QR.

template<typename MatrixQR , typename HCoeffs >
void Eigen::internal::householder_qr_inplace_unblocked ( MatrixQR &  mat,
HCoeffs &  hCoeffs,
typename MatrixQR::Scalar *  tempData = 0 
)

Definition at line 207 of file QR.

template<typename RealScalar >
std::complex< RealScalar > Eigen::internal::sqrt ( const std::complex< RealScalar > &  z)

Computes the principal value of the square root of the complex z.

Definition at line 234 of file Eigenvalues.

template<int StorageOrder, typename RealScalar , typename Scalar , typename Index >
static void Eigen::internal::tridiagonal_qr_step ( RealScalar *  diag,
RealScalar *  subdiag,
Index  start,
Index  end,
Scalar *  matrixQ,
Index  n 
) [static]

Definition at line 434 of file Eigenvalues.

template<typename MatrixType , typename CoeffVectorType >
void Eigen::internal::tridiagonalization_inplace ( MatrixType &  matA,
CoeffVectorType &  hCoeffs 
)

Definition at line 360 of file Eigenvalues.

template<typename MatrixType , typename DiagonalType , typename SubDiagonalType >
void Eigen::internal::tridiagonalization_inplace ( MatrixType &  mat,
DiagonalType &  diag,
SubDiagonalType &  subdiag,
bool  extractQ 
)

Performs a full tridiagonalization in place.

Parameters:
[in,out]matOn input, the selfadjoint matrix whose tridiagonal decomposition is to be computed. Only the lower triangular part referenced. The rest is left unchanged. On output, the orthogonal matrix Q in the decomposition if extractQ is true.
[out]diagThe diagonal of the tridiagonal matrix T in the decomposition.
[out]subdiagThe subdiagonal of the tridiagonal matrix T in the decomposition.
[in]extractQIf true, the orthogonal matrix Q in the decomposition is computed and stored in mat.

Computes the tridiagonal decomposition of the selfadjoint matrix mat in place such that $ mat = Q T Q^* $ where $ Q $ is unitary and $ T $ a real symmetric tridiagonal matrix.

The tridiagonal matrix T is passed to the output parameters diag and subdiag. If extractQ is true, then the orthogonal matrix Q is passed to mat. Otherwise the lower part of the matrix mat is destroyed.

The vectors diag and subdiag are not resized. The function assumes that they are already of the correct size. The length of the vector diag should equal the number of rows in mat, and the length of the vector subdiag should be one left.

This implementation contains an optimized path for 3-by-3 matrices which is especially useful for plane fitting.

Note:
Currently, it requires two temporary vectors to hold the intermediate Householder coefficients, and to reconstruct the matrix Q from the Householder reflectors.

Example (this uses the same matrix as the example in Tridiagonalization::Tridiagonalization(const MatrixType&)):

Output:

See also:
class Tridiagonalization

Definition at line 440 of file Eigenvalues.




Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN:exported at Tue Jan 25 21:56:31 UTC 2011