Fast SVD of Hankel/Toeplitz and
Takagi Factorization Package (MatLab)

(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 of Matlab functions computes the Takagi factorization of a complex-symmetric matrix. The computation consists of two stages: Lanczos tridiagonalization and symmetric SVD of a symmetric and tridiagonal matrix. Two Lanczos tridiagonalization functions are provided. One uses partial orthogonalization, another uses modified partial orthogonalization. In general, the modified partial orthogonalization version is more efficient than the partial orthogonalization version. Two methods for symmetric SVD of a symmetric and tridiagonal matrix are provided. One uses pure implicit QR method, another uses the divide-and-conquer method. Usually, the divide-and-conquer method is much faster than the pure QR method. The implicit QR method uses the order two class two shift.

The matrix-vector multiplication in the Lanczos functions can be replaced by a matrix-vector multiplication function. For example, if it is replaced by a fast Hankel matrix-vector multiplication, this package can be used for fast Hankel SVD. If it is replaced by a sparse symmetric matrix-vector multiplication, this package can be used for sparse symmetric SVD. Since a Toeplitz matrix can be transformed into a Hankel by reversing its columns or rows, this package can also be used for fast Toeplitz SVD.

2. Dependency

                                            TakagiDemo
             _________ _________________________|____________________________________
            |         |                         |                                    |
          csgen     LanMPO                   cstsvdd (divide-and-conquer)          CSSVD (QR)
            |       LanPO             __________|__________                          |
        unitarand                    |                     |                      cssvdstep
                                   sqevd                eig2tak               _______|_______
                               ______|_______                                |       |       |
                              |              |                             cssvd2  house   shift22
                            CSSVD          sevr                              |               |
                                       ______|______                       csvd2           rotate
                                      |             |                 _______|_______
                                   deflate         slv               |               |
                                      |                            rotate          slasv2
                                   rotate  
 
                  FHSVDDemo
        __________________|____________________________
       |                  |                            |
    FHLanMPO        cstsvdd (divide-and-conquer)     CSSVD (QR)
       |          ________|________                    |
    fhmvmul      |                 |               cssvdstep
               sqevd            eig2tak         _______|_______
            _____|______                       |       |       |
           |            |                    cssvd2  house   shift22
         CSSVD         sevr                    |               |
                   _____|_____               csvd2           rotate
                  |           |            ____|____
               deflate       slv          |         |
                  |                    rotate    slasv2
               rotate

3. Functions

csgen.m Generate a random complex-symmetric matrix, given its singular values.
CSSVD.m The SVD of a tridiagonal complex-symmetric matrix using implicit QR method with order two class two shifts.
cssvd2.m Compute the SVD of a 2-by-2 complex-symmetric matrix.
cssvdstep.m One step of the implicit QR method for tridiagonal complex-symmetric matrices using order two class two shift.
cstsvdd.m The symmetric SVD of a symmetric and tridiagonal matrix using divide-and-conquer method.
csvd2.m The SVD of a 2-by-2 complex matrix.
deflate.m Deflation in the symmetric eigenvalue rank-one modification problem.
eig2tak.m Convert eigenvalues and eigenvectors (left singular vectors) into Takagi values and Takagi vectors.
FHLanMPO.m Fast Lanczos tridiagonalization of Hankel matrices using the modified partial orthogonalization.
fhmvmul.m Fast Hankel matrix-vector multiplication.
FHSVDDemo.m Demonstrate the fast Hankel SVD.
house.m Householder transformation given a vector.
LanMPO.m Lanczos tridiagonalization of a complex-symmetric matrix using the modified partial orthogonalization.
LanPO.m Lanczos tridiagonalization of a complex-symmetric matrix using the partial orthogonalization.
rotate.m Rotation transformation given a 2-D vector.
sevr.m Symmetric eigen problem rank-one modification.
shift22.m Find the order two class two shift.
slasv2.m Compute the SVD of a 2-by-2 real and upper triangular matrix.
slv.m Secular equation solver.
sqevd.m Symmetric pentadiagonal eigenvalue decomposition. The symmetric pentadiagonal matrix is a product of a tridiagonal matrix and its transpose.
TakagiDemo.m Demonstrate the Takagi factorization, or symmetric SVD, of a complex-symmetric matrix.
unitarand.m Generate a random unitary matrix.

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 Qian Zhang. Last updated on April 12, 2004