Encapsulates the tridiagonal decomposition of a symmetric matrix. More...
#include <rw/lapack/td.h>
Public Types | |
typedef rw_numeric_traits< TypeT >::norm_type | rt |
Public Member Functions | |
unsigned | cols () const |
const RWMathVec< rt > | diagonal () const |
const RWMathVec< rt > | offDiagonal () const |
unsigned | rows () const |
void | set (const RWMathVec< rt > &diag_, const RWMathVec< rt > &offdiag_) |
virtual RWMathVec< TypeT > | transform (const RWMathVec< rt > &) const |
virtual RWGenMat< TypeT > | transform (const RWGenMat< rt > &) const =0 |
The class RWTriDiagDecomp encapsulates the tridiagonal decomposition of a symmetric matrix A:
\[ A = Q^{\prime}TQ \]
where Q is orthogonal and T is tridiagonal and real, even in the complex case. This decomposition is often done as a precursor to computing eigenvalues, since the eigenvalues of T and A are the same, and those of T are easier to compute. This class is used internally by the symmetric eigenvalue classes.
The class RWTriDiagDecomp is an abstract base class. Subclasses must implement the pure virtual function decompose
. This separates the implementation of the storage of Q from the interface, so that band and dense decompositions can use different storage techniques. The Linear Algebra Module provides the derived classes RWDenseTriDiagDecomp and RWBandTriDiagDecomp.
typedef rw_numeric_traits<TypeT>::norm_type RWTriDiagDecomp< TypeT >::rt |
Typedef for the usual return type of numerical norm
-like functions. For more information, see rw_numeric_traits<T>::norm_type.
|
inline |
Returns the number of columns in the decomposition.
|
inline |
Returns the diagonal of the symmetric tridiagonal matrix T.
|
inline |
Returns the subdiagonal or superdiagonal of the symmetric tridiagonal matrix T.
|
inline |
Returns the number of rows in the decomposition.
void RWTriDiagDecomp< TypeT >::set | ( | const RWMathVec< rt > & | diag_, |
const RWMathVec< rt > & | offdiag_ | ||
) |
Sets the tridiagonal matrix directly.
|
virtual |
Transforms the vector from tridiagonal decomposition space back to the original matrix space. This amounts to multiplying it by the matrix Q.
Reimplemented in RWBandTriDiagDecomp< TypeT >, and RWDenseTriDiagDecomp< TypeT >.
|
pure virtual |
Transforms the vector from tridiagonal decomposition space back to the original matrix space. This amounts to multiplying it by the matrix Q.
Implemented in RWBandTriDiagDecomp< TypeT >, and RWDenseTriDiagDecomp< TypeT >.
Copyright © 2021 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved. |