Computing the complete CS decomposition
Abstract
An algorithm is developed to compute the complete CS decomposition (CSD) of a partitioned unitary matrix. Although the existence of the CSD has been recognized since 1977, prior algorithms compute only a reduced version (the 2-by-1 CSD) that is equivalent to two simultaneous singular value decompositions. The algorithm presented here computes the complete 2-by-2 CSD, which requires the simultaneous diagonalization of all four blocks of a unitary matrix partitioned into a 2-by-2 block structure. The algorithm appears to be the only fully specified algorithm available. The computation occurs in two phases. In the first phase, the unitary matrix is reduced to bidiagonal block form, as described by Sutton and Edelman. In the second phase, the blocks are simultaneously diagonalized using techniques from bidiagonal SVD algorithms of Golub, Kahan, and Demmel. The algorithm has a number of desirable numerical features.
Cite
@article{arxiv.0707.1838,
title = {Computing the complete CS decomposition},
author = {Brian D. Sutton},
journal= {arXiv preprint arXiv:0707.1838},
year = {2008}
}
Comments
New in v3: additional discussion on efficiency, Wilkinson shifts, connection with tridiagonal QR iteration. New in v2: additional figures and a reorganization of the text