diff options
Diffstat (limited to 'SRC/cggsvd.f')
-rw-r--r-- | SRC/cggsvd.f | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/SRC/cggsvd.f b/SRC/cggsvd.f index 0396e584..e8306976 100644 --- a/SRC/cggsvd.f +++ b/SRC/cggsvd.f @@ -24,11 +24,11 @@ * CGGSVD computes the generalized singular value decomposition (GSVD) * of an M-by-N complex matrix A and P-by-N complex matrix B: * -* U'*A*Q = D1*( 0 R ), V'*B*Q = D2*( 0 R ) +* U**H*A*Q = D1*( 0 R ), V**H*B*Q = D2*( 0 R ) * -* where U, V and Q are unitary matrices, and Z' means the conjugate -* transpose of Z. Let K+L = the effective numerical rank of the -* matrix (A',B')', then R is a (K+L)-by-(K+L) nonsingular upper +* where U, V and Q are unitary matrices. +* Let K+L = the effective numerical rank of the +* matrix (A**H,B**H)**H, then R is a (K+L)-by-(K+L) nonsingular upper * triangular matrix, D1 and D2 are M-by-(K+L) and P-by-(K+L) "diagonal" * matrices and of the following structures, respectively: * @@ -46,6 +46,7 @@ * N-K-L K L * ( 0 R ) = K ( 0 R11 R12 ) * L ( 0 0 R22 ) +* * where * * C = diag( ALPHA(K+1), ... , ALPHA(K+L) ), @@ -85,13 +86,13 @@ * * In particular, if B is an N-by-N nonsingular matrix, then the GSVD of * A and B implicitly gives the SVD of A*inv(B): -* A*inv(B) = U*(D1*inv(D2))*V'. -* If ( A',B')' has orthnormal columns, then the GSVD of A and B is also +* A*inv(B) = U*(D1*inv(D2))*V**H. +* If ( A**H,B**H)**H has orthnormal columns, then the GSVD of A and B is also * equal to the CS decomposition of A and B. Furthermore, the GSVD can * be used to derive the solution of the eigenvalue problem: -* A'*A x = lambda* B'*B x. +* A**H*A x = lambda* B**H*B x. * In some literature, the GSVD of A and B is presented in the form -* U'*A*X = ( 0 D1 ), V'*B*X = ( 0 D2 ) +* U**H*A*X = ( 0 D1 ), V**H*B*X = ( 0 D2 ) * where U and V are orthogonal and X is nonsingular, and D1 and D2 are * ``diagonal''. The former GSVD form can be converted to the latter * form by taking the nonsingular matrix X as @@ -127,7 +128,7 @@ * L (output) INTEGER * On exit, K and L specify the dimension of the subblocks * described in Purpose. -* K + L = effective numerical rank of (A',B')'. +* K + L = effective numerical rank of (A**H,B**H)**H. * * A (input/output) COMPLEX array, dimension (LDA,N) * On entry, the M-by-N matrix A. @@ -209,7 +210,7 @@ * TOLA REAL * TOLB REAL * TOLA and TOLB are the thresholds to determine the effective -* rank of (A',B')'. Generally, they are set to +* rank of (A',B')**H. Generally, they are set to * TOLA = MAX(M,N)*norm(A)*MACHEPS, * TOLB = MAX(P,N)*norm(B)*MACHEPS. * The size of TOLA and TOLB may affect the size of backward |