Eigen::internal::tridiagonalization_inplace_selector< MatrixType, Size, IsComplex > Struct Template Reference

#include <Tridiagonalization.h>

Public Types

typedef Tridiagonalization< MatrixType >::HouseholderSequenceType HouseholderSequenceType
 

Static Public Member Functions

template<typename DiagonalType , typename SubDiagonalType , typename CoeffVectorType , typename WorkSpaceType >
static EIGEN_DEVICE_FUNC void run (MatrixType &mat, DiagonalType &diag, SubDiagonalType &subdiag, CoeffVectorType &hCoeffs, WorkSpaceType &workspace, bool extractQ)
 

Detailed Description

template<typename MatrixType, int Size, bool IsComplex>
struct Eigen::internal::tridiagonalization_inplace_selector< MatrixType, Size, IsComplex >

General full tridiagonalization

Member Typedef Documentation

◆ HouseholderSequenceType

Member Function Documentation

◆ run()

template<typename MatrixType , int Size, bool IsComplex>
template<typename DiagonalType , typename SubDiagonalType , typename CoeffVectorType , typename WorkSpaceType >
static EIGEN_DEVICE_FUNC void Eigen::internal::tridiagonalization_inplace_selector< MatrixType, Size, IsComplex >::run ( MatrixType mat,
DiagonalType &  diag,
SubDiagonalType &  subdiag,
CoeffVectorType &  hCoeffs,
WorkSpaceType workspace,
bool  extractQ 
)
inlinestatic
428  {
430  diag = mat.diagonal().real();
431  subdiag = mat.template diagonal<-1>().real();
432  if (extractQ) {
433  HouseholderSequenceType(mat, hCoeffs.conjugate()).setLength(mat.rows() - 1).setShift(1).evalTo(mat, workspace);
434  }
435  }
EIGEN_DEVICE_FUNC HouseholderSequence & setLength(Index length)
Sets the length of the Householder sequence.
Definition: HouseholderSequence.h:402
EIGEN_DEVICE_FUNC HouseholderSequence & setShift(Index shift)
Sets the shift of the Householder sequence.
Definition: HouseholderSequence.h:418
EIGEN_DEVICE_FUNC void evalTo(DestType &dst) const
Definition: HouseholderSequence.h:253
const ConstDiagonalReturnType diagonal() const
Definition: SparseMatrix.h:757
Index rows() const
Definition: SparseMatrix.h:159
void diagonal(const MatrixType &m)
Definition: diagonal.cpp:13
const char const char const char * diag
Definition: level2_impl.h:86
EIGEN_DEVICE_FUNC void tridiagonalization_inplace(MatrixType &matA, CoeffVectorType &hCoeffs)
Definition: Tridiagonalization.h:332
const AutoDiffScalar< DerType > & real(const AutoDiffScalar< DerType > &x)
Definition: AutoDiffScalar.h:486
Tridiagonalization< MatrixType >::HouseholderSequenceType HouseholderSequenceType
Definition: Tridiagonalization.h:425

References diag, Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::diagonal(), diagonal(), Eigen::HouseholderSequence< VectorsType, CoeffsType, Side >::evalTo(), Eigen::real(), Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::rows(), Eigen::HouseholderSequence< VectorsType, CoeffsType, Side >::setLength(), Eigen::HouseholderSequence< VectorsType, CoeffsType, Side >::setShift(), and Eigen::internal::tridiagonalization_inplace().

Referenced by Eigen::internal::tridiagonalization_inplace().


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