Cosine-Sine Decomposition

This topic describes LAPACK computational routines for computing the cosine-sine decomposition (CS decomposition) of a partitioned unitary/orthogonal matrix. The algorithm computes a complete 2-by-2 CS decomposition, which requires simultaneous diagonalization of all the four blocks of a unitary/orthogonal matrix partitioned into a 2-by-2 block structure.

The computation has the following phases:

  1. The matrix is reduced to a bidiagonal block form.
  2. The blocks are simultaneously diagonalized using techniques from the bidiagonal SVD algorithms.

Table "Computational Routines for Cosine-Sine Decomposition (CSD)" lists LAPACK routines that perform CS decomposition of matrices. The corresponding routine names in the Fortran 95 interface are without the first symbol.

Computational Routines for Cosine-Sine Decomposition (CSD)


Real matrices

Complex matrices

Compute the CS decomposition of an orthogonal/unitary matrix in bidiagonal-block form



Simultaneously bidiagonalize the blocks of a partitioned orthogonal matrix

orbdb unbdb

Simultaneously bidiagonalize the blocks of a partitioned unitary matrix

orbdb unbdb

For more complete information about compiler optimizations, see our Optimization Notice.