version 1.4, 2010/08/06 15:32:40
|
version 1.8, 2011/07/22 07:38:14
|
Line 1
|
Line 1
|
SUBROUTINE ZGGRQF( M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, |
SUBROUTINE ZGGRQF( M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, |
$ LWORK, INFO ) |
$ LWORK, INFO ) |
* |
* |
* -- LAPACK routine (version 3.2) -- |
* -- 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..-- |
* November 2006 |
* -- April 2011 -- |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
INTEGER INFO, LDA, LDB, LWORK, M, N, P |
INTEGER INFO, LDA, LDB, LWORK, M, N, P |
Line 40
|
Line 40
|
* In particular, if B is square and nonsingular, the GRQ factorization |
* In particular, if B is square and nonsingular, the GRQ factorization |
* of A and B implicitly gives the RQ factorization of A*inv(B): |
* of A and B implicitly gives the RQ factorization of A*inv(B): |
* |
* |
* A*inv(B) = (R*inv(T))*Z' |
* A*inv(B) = (R*inv(T))*Z**H |
* |
* |
* where inv(B) denotes the inverse of the matrix B, and Z' denotes the |
* where inv(B) denotes the inverse of the matrix B, and Z**H denotes the |
* conjugate transpose of the matrix Z. |
* conjugate transpose of the matrix Z. |
* |
* |
* Arguments |
* Arguments |
Line 118
|
Line 118
|
* |
* |
* Each H(i) has the form |
* Each H(i) has the form |
* |
* |
* H(i) = I - taua * v * v' |
* H(i) = I - taua * v * v**H |
* |
* |
* where taua is a complex scalar, and v is a complex vector with |
* where taua is a complex scalar, and v is a complex vector with |
* v(n-k+i+1:n) = 0 and v(n-k+i) = 1; v(1:n-k+i-1) is stored on exit in |
* v(n-k+i+1:n) = 0 and v(n-k+i) = 1; v(1:n-k+i-1) is stored on exit in |
Line 132
|
Line 132
|
* |
* |
* Each H(i) has the form |
* Each H(i) has the form |
* |
* |
* H(i) = I - taub * v * v' |
* H(i) = I - taub * v * v**H |
* |
* |
* where taub is a complex scalar, and v is a complex vector with |
* where taub is a complex scalar, and v is a complex vector with |
* v(1:i-1) = 0 and v(i) = 1; v(i+1:p) is stored on exit in B(i+1:p,i), |
* v(1:i-1) = 0 and v(i) = 1; v(i+1:p) is stored on exit in B(i+1:p,i), |
Line 193
|
Line 193
|
CALL ZGERQF( M, N, A, LDA, TAUA, WORK, LWORK, INFO ) |
CALL ZGERQF( M, N, A, LDA, TAUA, WORK, LWORK, INFO ) |
LOPT = WORK( 1 ) |
LOPT = WORK( 1 ) |
* |
* |
* Update B := B*Q' |
* Update B := B*Q**H |
* |
* |
CALL ZUNMRQ( 'Right', 'Conjugate Transpose', P, N, MIN( M, N ), |
CALL ZUNMRQ( 'Right', 'Conjugate Transpose', P, N, MIN( M, N ), |
$ A( MAX( 1, M-N+1 ), 1 ), LDA, TAUA, B, LDB, WORK, |
$ A( MAX( 1, M-N+1 ), 1 ), LDA, TAUA, B, LDB, WORK, |