HessenbergDecomposition Class Template Reference
[QR module]

List of all members.


Detailed Description

template<typename _MatrixType>
class Eigen::HessenbergDecomposition< _MatrixType >

Reduces a squared matrix to an Hessemberg form.

Warning:
This is not considered to be part of the stable public API yet. Changes may happen in future releases. See Experimental parts of Eigen
Parameters:
MatrixType the type of the matrix of which we are computing the Hessenberg decomposition
This class performs an Hessenberg decomposition of a matrix $ A $ such that: $ A = Q H Q^* $ where $ Q $ is unitary and $ H $ a Hessenberg matrix.

See also:
class Tridiagonalization, class Qr

Public Types

enum  {
  Size,
  SizeMinusOne
}
typedef Matrix< Scalar,
SizeMinusOne, 1 > 
CoeffVectorType
typedef NestByValue
< DiagonalCoeffs< MatrixType >
>::RealReturnType 
DiagonalReturnType
typedef Matrix< RealScalar,
Size, 1 > 
DiagonalType
typedef _MatrixType MatrixType
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)
 HessenbergDecomposition (const MatrixType &matrix)
 HessenbergDecomposition (int size=Size==Dynamic?2:Size)
CoeffVectorType householderCoefficients (void) const
MatrixType matrixH (void) const
MatrixType matrixQ (void) const
const MatrixType & packedMatrix (void) const

Protected Attributes

CoeffVectorType m_hCoeffs
MatrixType m_matrix

Constructor & Destructor Documentation

HessenbergDecomposition ( int  size = Size==Dynamic ? 2 : Size  )  [inline]

This constructor initializes a HessenbergDecomposition object for further use with HessenbergDecomposition::compute()


Member Function Documentation

void compute ( const MatrixType &  matrix  )  [inline]

Computes or re-compute the Hessenberg decomposition for the matrix matrix.

This method allows to re-use the allocated data.

CoeffVectorType householderCoefficients ( void   )  const [inline]

Returns:
the householder coefficients allowing to reconstruct the matrix Q from the packed data.
See also:
packedMatrix()

HessenbergDecomposition< MatrixType >::MatrixType matrixH ( void   )  const [inline]

constructs and returns the matrix H. Note that the matrix H is equivalent to the upper part of the packed matrix (including the lower sub-diagonal). Therefore, it might be often sufficient to directly use the packed matrix instead of creating a new one.

HessenbergDecomposition< MatrixType >::MatrixType matrixQ ( void   )  const [inline]

reconstructs and returns the matrix Q

const MatrixType& packedMatrix ( void   )  const [inline]

Returns:
the internal result of the decomposition.
The returned matrix contains the following information:
  • the upper part and lower sub-diagonal represent the Hessenberg matrix H
  • the rest of the lower part contains the Householder vectors that, combined with Householder coefficients returned by householderCoefficients(), allows to reconstruct the matrix Q as follow: Q = H_{N-1} ... H_1 H_0 where the matrices H are the Householder transformation: H_i = (I - h_i * v_i * v_i') where h_i == householderCoefficients()[i] and v_i is a Householder vector: v_i = [ 0, ..., 0, 1, M(i+2,i), ..., M(N-1,i) ]

See LAPACK for further details on this packed storage.


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

Generated on Thu Apr 9 10:10:01 2009 for Eigen by  doxygen 1.5.5