Trigiagonal decomposition of a selfadjoint matrix. More...
Public Types | |
| enum | { Size, SizeMinusOne, PacketSize } |
|
typedef Matrix< Scalar, SizeMinusOne, 1 > | CoeffVectorType |
|
typedef NestByValue < DiagonalCoeffs< MatrixType > >::RealReturnType | DiagonalReturnType |
|
typedef Matrix< RealScalar, Size, 1 > | DiagonalType |
| typedef _MatrixType | MatrixType |
|
typedef ei_packet_traits < Scalar >::type | Packet |
| typedef NumTraits< Scalar >::Real | RealScalar |
| typedef MatrixType::Scalar | Scalar |
|
typedef NestByValue < DiagonalCoeffs< NestByValue < Block< MatrixType, SizeMinusOne, SizeMinusOne > > > >::RealReturnType | SubDiagonalReturnType |
|
typedef Matrix< RealScalar, SizeMinusOne, 1 > | SubDiagonalType |
Public Member Functions | |
| void | compute (const MatrixType &matrix) |
| const DiagonalReturnType | diagonal (void) const |
| CoeffVectorType | householderCoefficients (void) const |
| MatrixType | matrixQ (void) const |
| MatrixType | matrixT (void) const |
| const MatrixType & | packedMatrix (void) const |
| const SubDiagonalReturnType | subDiagonal (void) const |
| Tridiagonalization (int size=Size==Dynamic?2:Size) | |
| Tridiagonalization (const MatrixType &matrix) | |
Static Public Member Functions | |
| static void | decomposeInPlace (MatrixType &mat, DiagonalType &diag, SubDiagonalType &subdiag, bool extractQ=true) |
Protected Attributes | |
| CoeffVectorType | m_hCoeffs |
| MatrixType | m_matrix |
Trigiagonal decomposition of a selfadjoint matrix.
| MatrixType | the type of the matrix of which we are performing the tridiagonalization |
This class performs a tridiagonal decomposition of a selfadjoint matrix
such that:
where
is unitary and
a real symmetric tridiagonal matrix.
|
inline |
This constructor initializes a Tridiagonalization object for further use with Tridiagonalization::compute()
|
inline |
Computes or re-compute the tridiagonalization for the matrix matrix.
This method allows to re-use the allocated data.
|
static |
Performs a full decomposition in place
| const Tridiagonalization< MatrixType >::DiagonalReturnType diagonal | ( | void | ) | const |
|
inline |
| Tridiagonalization< MatrixType >::MatrixType matrixQ | ( | void | ) | const |
reconstructs and returns the matrix Q
| Tridiagonalization< MatrixType >::MatrixType matrixT | ( | void | ) | const |
constructs and returns the tridiagonal matrix T. Note that the matrix T is equivalent to the diagonal and sub-diagonal of the packed matrix. Therefore, it might be often sufficient to directly use the packed matrix, or the vector expressions returned by diagonal() and subDiagonal() instead of creating a new matrix.
|
inline |
The returned matrix contains the following information:
See LAPACK for further details on this packed storage.
| const Tridiagonalization< MatrixType >::SubDiagonalReturnType subDiagonal | ( | void | ) | const |
1.8.6