Contents
Main
Site map
Links
Site and author
News
Contact

Reduction of a Hermitian matrix to real tridiagonal form by the orthogonal similarity transformation.

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.

Manual entries

C++ htridiagonal.h   
C# htridiagonal.cs   
MPFR htridiagonal.h   
Delphi htridiagonal.pas   
FreePascal htridiagonal.pas   
VBA htridiagonal.bas   

This article is intended for personal use only.

Download ALGLIB

C#

C# source.

alglib-2.4.0.csharp.zip

 

C++

C++ source.

alglib-2.4.0.cpp.zip

 

C++, multiple precision arithmetic

C++ source. MPFR/GMP is used.

GMP source is available from gmplib.org. MPFR source is available from www.mpfr.org.

alglib-2.4.0.mpfr.zip

 

FreePascal

FreePascal source.

alglib-2.4.0.freepascal.zip

 

Delphi

Delphi source.

alglib-2.4.0.delphi.zip

 

Visual Basic

VBA source.

alglib-2.4.0.vb6.zip

 


 
 
Sergey Bochkanov, Vladimir Bystritsky
Copyright © 1999-2010