--- rpl/lapack/lapack/dorcsd2by1.f 2016/08/27 15:34:33 1.5 +++ rpl/lapack/lapack/dorcsd2by1.f 2017/06/17 10:53:58 1.6 @@ -2,8 +2,8 @@ * * =========== DOCUMENTATION =========== * -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORCSD2BY1 + dependencies @@ -21,7 +21,7 @@ * SUBROUTINE DORCSD2BY1( JOBU1, JOBU2, JOBV1T, M, P, Q, X11, LDX11, * X21, LDX21, THETA, U1, LDU1, U2, LDU2, V1T, * LDV1T, WORK, LWORK, IWORK, INFO ) -* +* * .. Scalar Arguments .. * CHARACTER JOBU1, JOBU2, JOBV1T * INTEGER INFO, LDU1, LDU2, LDV1T, LWORK, LDX11, LDX21, @@ -33,31 +33,30 @@ * $ X11(LDX11,*), X21(LDX21,*) * INTEGER IWORK(*) * .. -* -* +* +* *> \par Purpose: *> ============= *> *>\verbatim -*> Purpose: -*> ======== *> *> DORCSD2BY1 computes the CS decomposition of an M-by-Q matrix X with *> orthonormal columns that has been partitioned into a 2-by-1 block *> structure: *> -*> [ I 0 0 ] +*> [ I1 0 0 ] *> [ 0 C 0 ] *> [ X11 ] [ U1 | ] [ 0 0 0 ] *> X = [-----] = [---------] [----------] V1**T . *> [ X21 ] [ | U2 ] [ 0 0 0 ] *> [ 0 S 0 ] -*> [ 0 0 I ] -*> +*> [ 0 0 I2] +*> *> X11 is P-by-Q. The orthogonal matrices U1, U2, and V1 are P-by-P, *> (M-P)-by-(M-P), and Q-by-Q, respectively. C and S are R-by-R *> nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which -*> R = MIN(P,M-P,Q,M-Q). +*> R = MIN(P,M-P,Q,M-Q). I1 is a K1-by-K1 identity matrix and I2 is a +*> K2-by-K2 identity matrix, where K1 = MAX(Q+P-M,0), K2 = MAX(Q-P,0). *> \endverbatim * * Arguments: @@ -220,10 +219,10 @@ * Authors: * ======== * -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. * *> \date July 2012 * @@ -250,7 +249,7 @@ $ X11(LDX11,*), X21(LDX21,*) INTEGER IWORK(*) * .. -* +* * ===================================================================== * * .. Parameters .. @@ -526,16 +525,16 @@ CALL DORGLQ( Q-1, Q-1, Q-1, V1T(2,2), LDV1T, WORK(ITAUQ1), $ WORK(IORGLQ), LORGLQ, CHILDINFO ) END IF -* +* * Simultaneously diagonalize X11 and X21. -* +* CALL DBBCSD( JOBU1, JOBU2, JOBV1T, 'N', 'N', M, P, Q, THETA, $ WORK(IPHI), U1, LDU1, U2, LDU2, V1T, LDV1T, $ DUM2, 1, WORK(IB11D), WORK(IB11E), $ WORK(IB12D), WORK(IB12E), WORK(IB21D), $ WORK(IB21E), WORK(IB22D), WORK(IB22E), $ WORK(IBBCSD), LBBCSD, CHILDINFO ) -* +* * Permute rows and columns to place zero submatrices in * preferred positions * @@ -580,16 +579,16 @@ CALL DORGLQ( Q, Q, R, V1T, LDV1T, WORK(ITAUQ1), $ WORK(IORGLQ), LORGLQ, CHILDINFO ) END IF -* +* * Simultaneously diagonalize X11 and X21. -* +* CALL DBBCSD( JOBV1T, 'N', JOBU1, JOBU2, 'T', M, Q, P, THETA, $ WORK(IPHI), V1T, LDV1T, DUM2, 1, U1, LDU1, U2, $ LDU2, WORK(IB11D), WORK(IB11E), WORK(IB12D), $ WORK(IB12E), WORK(IB21D), WORK(IB21E), $ WORK(IB22D), WORK(IB22E), WORK(IBBCSD), LBBCSD, $ CHILDINFO ) -* +* * Permute rows and columns to place identity submatrices in * preferred positions * @@ -635,16 +634,16 @@ CALL DORGLQ( Q, Q, R, V1T, LDV1T, WORK(ITAUQ1), $ WORK(IORGLQ), LORGLQ, CHILDINFO ) END IF -* +* * Simultaneously diagonalize X11 and X21. -* +* CALL DBBCSD( 'N', JOBV1T, JOBU2, JOBU1, 'T', M, M-Q, M-P, $ THETA, WORK(IPHI), DUM2, 1, V1T, LDV1T, U2, $ LDU2, U1, LDU1, WORK(IB11D), WORK(IB11E), $ WORK(IB12D), WORK(IB12E), WORK(IB21D), $ WORK(IB21E), WORK(IB22D), WORK(IB22E), $ WORK(IBBCSD), LBBCSD, CHILDINFO ) -* +* * Permute rows and columns to place identity submatrices in * preferred positions * @@ -704,16 +703,16 @@ CALL DORGLQ( Q, Q, Q, V1T, LDV1T, WORK(ITAUQ1), $ WORK(IORGLQ), LORGLQ, CHILDINFO ) END IF -* +* * Simultaneously diagonalize X11 and X21. -* +* CALL DBBCSD( JOBU2, JOBU1, 'N', JOBV1T, 'N', M, M-P, M-Q, $ THETA, WORK(IPHI), U2, LDU2, U1, LDU1, DUM2, $ 1, V1T, LDV1T, WORK(IB11D), WORK(IB11E), $ WORK(IB12D), WORK(IB12E), WORK(IB21D), $ WORK(IB21E), WORK(IB22D), WORK(IB22E), $ WORK(IBBCSD), LBBCSD, CHILDINFO ) -* +* * Permute rows and columns to place identity submatrices in * preferred positions *