Block Lanczos Tridiagonalization of
Complex Symmetric Matrices C Package

(ps, pdf versions of this file)
Companion Papers     Download Package

1. Introduction

For any symmetric matrix A, there exists a special form of SVD, called Takagi factorization:

where Q is unitary and is the diagonal singular value matrix.

This package tridiagonalizes a complex symmetric matrix using block Lanczos algorithm. It is more efficient than the vector version. It can be followed by the divide-and-conquer method or the QR method for the symmetric SVD of a complex symmetric tridiagonal matrix to compute the Takagi factorization or symmetric SVD of a complex symmetric matrix.

2. Dependency

                                              BlkLanApp.h     
                                              BlkLanApp.c     
                                 __________________|_________________
                                |                                    |
                             zcstrd.h                           Bidiagonal.h
                             zcstrd.c                           Bidiagonal.c
              ___________ ______|______ _______________              |
             |           |             |               |             |
          BlkLan.h   BlkTri.c      LanTri.c      BlkLanAux.c         |        
             |       BlkTriAux.c   LanTriAux.c   DataFile.c          |                     
             |___________|_____________|_______________|_____________|
                          _____________|_______________
                         |             |               |
                     Computing.h   LapackWrap.c  MatComputing.c        
                         |_____________|_______________|        
                          _____________|_______________        
                         |                             |      
                     clapack.h                   clapack.lib                     
                     blaswrap.h                  blas.lib              
                     f2c.h                       libF77.lib        
                     fblaswr.h                   libI77.lib                     

3. Functions

Bidiagonal.c LAPACK's bidiagonalization of general complex matrices.
Bidiagonal.h Prototypes of routines for LAPACK's bidiagonalization of general complex matrices.
BlkLan.h Prototypes of all routines implemented for the block Lanczos algorithm.
BlkLanApp.c Sample application of the block Lanczos tridiagonalization algorithm.
BlkLanApp.h Prototypes of routines in the sample application of the block Lanczos tridiagonalization algorithm.
BlkLanAux.c Auxiliary routines for the block Lanczos algorithm.
BlkTri.c Main routines for the block tridiagonalization stage.
BlkTriAux.c Auxiliary routines for the block tridiagonalization stage.
Computing.h Data structures and prototypes of routines implemented in the LAPACK wrapper and low level computing module. 
DataFile.c Read a data file which is edited from MATLAB.
LanTri.c Main routines for the tridiagonalization stage.
LanTriAux.c Auxiliary routines for the tridiagonalization stage.
LapackWrap.c LAPACK and BLAS wrapper.
MatComputing.c Low level computing module.
zcstrd.h Prototype of the routine user can invoke to perform the tridiagonalization of a complex symmetric matrix. 
zcstrd.c Implementation of the user interface of block Lanczos tridiagonalization algorithm.
blaswrap.h
clapack.h
f2c.h    
fblaswr.h

Include files of LAPACK and BLAS. 
     
 
blas.lib
clapack.lib
libF77.lib
libI77.lib
 
Libray files of LAPACK and BLAS. 
 
 
     

4. References

5. Download

6. Contact

Sanzheng Qiao
Professor, Department of Computing and Software
McMaster University, Hamilton, Ontario L8S 4K1, Canada
(905)-5259140 ext 27234

Developed by Guohong Liu. Last updated in May, 2005