Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Eigen::internal::tridiagonalization_inplace_selector< MatrixType, Size, IsComplex > Struct Template Reference

#include <src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h>

Public Types

typedef Tridiagonalization< MatrixType >::CoeffVectorType CoeffVectorType
 
typedef Tridiagonalization< MatrixType >::HouseholderSequenceType HouseholderSequenceType
 

Static Public Member Functions

template<typename DiagonalType , typename SubDiagonalType >
static void run (MatrixType &mat, DiagonalType &diag, SubDiagonalType &subdiag, bool extractQ)
 

Detailed Description

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

Member Typedef Documentation

◆ CoeffVectorType

template<typename MatrixType , int Size, bool IsComplex>
typedef Tridiagonalization<MatrixType>::CoeffVectorType Eigen::internal::tridiagonalization_inplace_selector< MatrixType, Size, IsComplex >::CoeffVectorType

◆ HouseholderSequenceType

template<typename MatrixType , int Size, bool IsComplex>
typedef Tridiagonalization<MatrixType>::HouseholderSequenceType Eigen::internal::tridiagonalization_inplace_selector< MatrixType, Size, IsComplex >::HouseholderSequenceType

Member Function Documentation

◆ run()

template<typename MatrixType , int Size, bool IsComplex>
template<typename DiagonalType , typename SubDiagonalType >
static void Eigen::internal::tridiagonalization_inplace_selector< MatrixType, Size, IsComplex >::run ( MatrixType &  mat,
DiagonalType &  diag,
SubDiagonalType &  subdiag,
bool  extractQ 
)
inlinestatic
443 {
444 CoeffVectorType hCoeffs(mat.cols()-1);
445 tridiagonalization_inplace(mat,hCoeffs);
446 diag = mat.diagonal().real();
447 subdiag = mat.template diagonal<-1>().real();
448 if(extractQ)
449 mat = HouseholderSequenceType(mat, hCoeffs.conjugate())
450 .setLength(mat.rows() - 1)
451 .setShift(1);
452 }
EIGEN_DEVICE_FUNC RealReturnType real() const
Definition CommonCwiseUnaryOps.h:86
HouseholderSequence & setLength(Index length)
Sets the length of the Householder sequence.
Definition HouseholderSequence.h:375
HouseholderSequence & setShift(Index shift)
Sets the shift of the Householder sequence.
Definition HouseholderSequence.h:392
void tridiagonalization_inplace(MatrixType &matA, CoeffVectorType &hCoeffs)
Definition Tridiagonalization.h:347
IGL_INLINE void diag(const Eigen::SparseMatrix< T > &X, Eigen::SparseVector< T > &V)
Definition diag.cpp:17
Tridiagonalization< MatrixType >::CoeffVectorType CoeffVectorType
Definition Tridiagonalization.h:439
Tridiagonalization< MatrixType >::HouseholderSequenceType HouseholderSequenceType
Definition Tridiagonalization.h:440

References real(), Eigen::HouseholderSequence< VectorsType, CoeffsType, Side >::setLength(), Eigen::HouseholderSequence< VectorsType, CoeffsType, Side >::setShift(), and Eigen::internal::tridiagonalization_inplace().

+ Here is the call graph for this function:

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