![]() |
The Hermitian matrix A could be represented as A=Q·T·Q H, where Q is an unitary matrix, and T is a real tridiagonal matrix. We can say that matrix A is reduced to a tridiagonal matrix via a similarity transformation: Q H·A·Q = T.
As a result of HMatrixTD subroutine, matrix A is replaced by the tridiagonal matrix T and a sequence of reflections transformations stored in a compact form. The format of the matrix and the subroutine parameters are described in detail in the subroutine comments; there we can note an analogy with QR-decomposition, that uses the lower triangular part of the matrix R to store the matrix Q and utilizes a very similar data storage format. As with QR decomposition, a subroutine for "unpacking" the matrix Q is presented: HMatrixTDUnpackQ.
This algorithm is transferred from the LAPACK library.
| C++ | ortfac subpackage | |
| C# | ortfac subpackage |
This article is intended for personal use only.
C# source.
C++ source.
C++ source. MPFR/GMP is used.
GMP source is available from gmplib.org. MPFR source is available from www.mpfr.org.
FreePascal version.
Delphi version.
VB.NET version.
VBA version.
Python version (CPython and IronPython are supported).
|
ALGLIB® - numerical analysis library, 1999-2012. |