# lapgsvdcst#

## Purpose#

Compute the generalized singular value decomposition of a pair of real or complex general matrices.

## Format#

{ C, S, R, U, V, Q } = lapgsvdcst(A, B)#
Parameters:
• A (MxN matrix) – data

• B (PxN matrix) – data

Returns:
• C (Lx1 vector) – singular values for A.

• S (Lx1 vector) – singular values for B.

• R ((K+L)x(K+L)) – upper triangular matrix.

• U (MxM matrix) – orthogonal transformation matrix.

• V (PxP matrix) – orthogonal transformation matrix.

• Q (NxN matrix) – orthogonal transformation matrix.

## Remarks#

1. The generalized singular value decomposition of A and B is

$U'*A*Q = D_1*Z$
$V'*B*Q = D_2*Z$

where U, V, and Q are orthogonal matrices (see lapgsvdcst() and lapgsvdst()). Letting K + L = the rank of $$A|B$$ then R is a $$(K+L)x(K+L)$$ upper triangular matrix, D1 and D2 are Mx(K+L) and Px(K+L) matrices with entries on the diagonal, $$Z = [ 0\; R ]$$, and if $$M-K-L \geq 0$$

                  K L
D1 =         K  [ I 0 ]
L  [ 0 C ]
M - K - L  [ 0 0 ]

              K L
D2 =     P  [ 0 S ]
P - L  [ 0 0 ]

              N-K-L   K    L
[ 0 R ] = K [   0    R11  R12 ]
L [   0     0   R22 ]


or if $$M-K-L \lt 0$$

            K  M-K  K+L-M
D1 =   K  [ I   0     0  ]
M-K  [ 0   0     0  ]

                  N-K-L  K   M-K  K+L-M
K [   0   R11  R12   R13  ]
[ 0 R ] =   M-K [   0    0   R22   R23  ]
K+L-M [   0    0    0    R33  ]

1. Form the matrix

X = Q [ I 0  ]
[ 0 R^-1 ]


then

\begin{align}\begin{aligned}A = U'^{-1}E_1X\\B = V'^{-1}E_2X^{-1}\end{aligned}\end{align}

where

E1 = [ 0  D1 ]

E2 = [ 0  D2 ]


(3) The generalized singular value decomposition of A and B implicitly produces the singular value decomposition of $$AB^{-1}$$:

$AB^{-1} = UD_1D_2^{-1}V'$

This procedure calls the LAPACK routines DGGSVD and ZGGSVD.

See also