version 1.7, 2010/12/21 13:53:42
|
version 1.8, 2011/07/22 07:38:13
|
Line 1
|
Line 1
|
SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) |
SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, 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, M, N |
INTEGER INFO, LDA, M, N |
Line 17
|
Line 17
|
* ======= |
* ======= |
* |
* |
* ZGEBD2 reduces a complex general m by n matrix A to upper or lower |
* ZGEBD2 reduces a complex general m by n matrix A to upper or lower |
* real bidiagonal form B by a unitary transformation: Q' * A * P = B. |
* real bidiagonal form B by a unitary transformation: Q**H * A * P = B. |
* |
* |
* If m >= n, B is upper bidiagonal; if m < n, B is lower bidiagonal. |
* If m >= n, B is upper bidiagonal; if m < n, B is lower bidiagonal. |
* |
* |
Line 87
|
Line 87
|
* |
* |
* Each H(i) and G(i) has the form: |
* Each H(i) and G(i) has the form: |
* |
* |
* H(i) = I - tauq * v * v' and G(i) = I - taup * u * u' |
* H(i) = I - tauq * v * v**H and G(i) = I - taup * u * u**H |
* |
* |
* where tauq and taup are complex scalars, and v and u are complex |
* where tauq and taup are complex scalars, and v and u are complex |
* vectors; v(1:i-1) = 0, v(i) = 1, and v(i+1:m) is stored on exit in |
* vectors; v(1:i-1) = 0, v(i) = 1, and v(i+1:m) is stored on exit in |
Line 100
|
Line 100
|
* |
* |
* Each H(i) and G(i) has the form: |
* Each H(i) and G(i) has the form: |
* |
* |
* H(i) = I - tauq * v * v' and G(i) = I - taup * u * u' |
* H(i) = I - tauq * v * v**H and G(i) = I - taup * u * u**H |
* |
* |
* where tauq and taup are complex scalars, v and u are complex vectors; |
* where tauq and taup are complex scalars, v and u are complex vectors; |
* v(1:i) = 0, v(i+1) = 1, and v(i+2:m) is stored on exit in A(i+2:m,i); |
* v(1:i) = 0, v(i+1) = 1, and v(i+2:m) is stored on exit in A(i+2:m,i); |
Line 170
|
Line 170
|
D( I ) = ALPHA |
D( I ) = ALPHA |
A( I, I ) = ONE |
A( I, I ) = ONE |
* |
* |
* Apply H(i)' to A(i:m,i+1:n) from the left |
* Apply H(i)**H to A(i:m,i+1:n) from the left |
* |
* |
IF( I.LT.N ) |
IF( I.LT.N ) |
$ CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, |
$ CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, |
Line 233
|
Line 233
|
E( I ) = ALPHA |
E( I ) = ALPHA |
A( I+1, I ) = ONE |
A( I+1, I ) = ONE |
* |
* |
* Apply H(i)' to A(i+1:m,i+1:n) from the left |
* Apply H(i)**H to A(i+1:m,i+1:n) from the left |
* |
* |
CALL ZLARF( 'Left', M-I, N-I, A( I+1, I ), 1, |
CALL ZLARF( 'Left', M-I, N-I, A( I+1, I ), 1, |
$ DCONJG( TAUQ( I ) ), A( I+1, I+1 ), LDA, |
$ DCONJG( TAUQ( I ) ), A( I+1, I+1 ), LDA, |