version 1.7, 2010/12/21 13:53:57
|
version 1.8, 2011/07/22 07:38:21
|
Line 2
|
Line 2
|
$ LDB, TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, |
$ LDB, TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, |
$ Q, LDQ, WORK, NCYCLE, INFO ) |
$ Q, LDQ, WORK, NCYCLE, INFO ) |
* |
* |
* -- LAPACK routine (version 3.2.1) -- |
* -- LAPACK routine (version 3.3.1) -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- April 2009 -- |
* -- April 2009 -- |
Line 48
|
Line 48
|
* |
* |
* On exit, |
* On exit, |
* |
* |
* 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, Z' denotes the conjugate |
* where U, V and Q are unitary matrices. |
* transpose of Z, R is a nonsingular upper triangular matrix, and D1 |
* R is a nonsingular upper triangular matrix, and D1 |
* and D2 are ``diagonal'' matrices, which are of the following |
* and D2 are ``diagonal'' matrices, which are of the following |
* structures: |
* structures: |
* |
* |
Line 184
|
Line 184
|
* ALPHA(K+1:M)= C, ALPHA(M+1:K+L)= 0 |
* ALPHA(K+1:M)= C, ALPHA(M+1:K+L)= 0 |
* BETA(K+1:M) = S, BETA(M+1:K+L) = 1. |
* BETA(K+1:M) = S, BETA(M+1:K+L) = 1. |
* Furthermore, if K+L < N, |
* Furthermore, if K+L < N, |
* ALPHA(K+L+1:N) = 0 |
* ALPHA(K+L+1:N) = 0 and |
* BETA(K+L+1:N) = 0. |
* BETA(K+L+1:N) = 0. |
* |
* |
* U (input/output) COMPLEX*16 array, dimension (LDU,M) |
* U (input/output) COMPLEX*16 array, dimension (LDU,M) |
Line 248
|
Line 248
|
* min(L,M-K)-by-L triangular (or trapezoidal) matrix A23 and L-by-L |
* min(L,M-K)-by-L triangular (or trapezoidal) matrix A23 and L-by-L |
* matrix B13 to the form: |
* matrix B13 to the form: |
* |
* |
* U1'*A13*Q1 = C1*R1; V1'*B13*Q1 = S1*R1, |
* U1**H *A13*Q1 = C1*R1; V1**H *B13*Q1 = S1*R1, |
* |
* |
* where U1, V1 and Q1 are unitary matrix, and Z' is the conjugate |
* where U1, V1 and Q1 are unitary matrix. |
* transpose of Z. C1 and S1 are diagonal matrices satisfying |
* C1 and S1 are diagonal matrices satisfying |
* |
* |
* C1**2 + S1**2 = I, |
* C1**2 + S1**2 = I, |
* |
* |
Line 372
|
Line 372
|
CALL ZLAGS2( UPPER, A1, A2, A3, B1, B2, B3, CSU, SNU, |
CALL ZLAGS2( UPPER, A1, A2, A3, B1, B2, B3, CSU, SNU, |
$ CSV, SNV, CSQ, SNQ ) |
$ CSV, SNV, CSQ, SNQ ) |
* |
* |
* Update (K+I)-th and (K+J)-th rows of matrix A: U'*A |
* Update (K+I)-th and (K+J)-th rows of matrix A: U**H *A |
* |
* |
IF( K+J.LE.M ) |
IF( K+J.LE.M ) |
$ CALL ZROT( L, A( K+J, N-L+1 ), LDA, A( K+I, N-L+1 ), |
$ CALL ZROT( L, A( K+J, N-L+1 ), LDA, A( K+I, N-L+1 ), |
$ LDA, CSU, DCONJG( SNU ) ) |
$ LDA, CSU, DCONJG( SNU ) ) |
* |
* |
* Update I-th and J-th rows of matrix B: V'*B |
* Update I-th and J-th rows of matrix B: V**H *B |
* |
* |
CALL ZROT( L, B( J, N-L+1 ), LDB, B( I, N-L+1 ), LDB, |
CALL ZROT( L, B( J, N-L+1 ), LDB, B( I, N-L+1 ), LDB, |
$ CSV, DCONJG( SNV ) ) |
$ CSV, DCONJG( SNV ) ) |
Line 495
|
Line 495
|
END IF |
END IF |
* |
* |
ELSE |
ELSE |
|
* |
ALPHA( K+I ) = ZERO |
ALPHA( K+I ) = ZERO |
BETA( K+I ) = ONE |
BETA( K+I ) = ONE |
CALL ZCOPY( L-I+1, B( I, N-L+I ), LDB, A( K+I, N-L+I ), |
CALL ZCOPY( L-I+1, B( I, N-L+I ), LDB, A( K+I, N-L+I ), |