version 1.1.1.1, 2010/01/26 15:22:45
|
version 1.8, 2011/07/22 07:38:17
|
Line 1
|
Line 1
|
SUBROUTINE ZLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) |
SUBROUTINE ZLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) |
IMPLICIT NONE |
IMPLICIT NONE |
* |
* |
* -- LAPACK auxiliary routine (version 3.2) -- |
* -- LAPACK auxiliary 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 .. |
CHARACTER SIDE |
CHARACTER SIDE |
Line 22
|
Line 22
|
* matrix C, from either the left or the right. H is represented in the |
* matrix C, from either the left or the right. H is represented in the |
* form |
* form |
* |
* |
* H = I - tau * v * v' |
* H = I - tau * v * v**H |
* |
* |
* where tau is a complex scalar and v is a complex vector. |
* where tau is a complex scalar and v is a complex vector. |
* |
* |
* If tau = 0, then H is taken to be the unit matrix. |
* If tau = 0, then H is taken to be the unit matrix. |
* |
* |
* To apply H' (the conjugate transpose of H), supply conjg(tau) instead |
* To apply H**H, supply conjg(tau) instead |
* tau. |
* tau. |
* |
* |
* Arguments |
* Arguments |
Line 126
|
Line 126
|
* |
* |
IF( LASTV.GT.0 ) THEN |
IF( LASTV.GT.0 ) THEN |
* |
* |
* w(1:lastc,1) := C(1:lastv,1:lastc)' * v(1:lastv,1) |
* w(1:lastc,1) := C(1:lastv,1:lastc)**H * v(1:lastv,1) |
* |
* |
CALL ZGEMV( 'Conjugate transpose', LASTV, LASTC, ONE, |
CALL ZGEMV( 'Conjugate transpose', LASTV, LASTC, ONE, |
$ C, LDC, V, INCV, ZERO, WORK, 1 ) |
$ C, LDC, V, INCV, ZERO, WORK, 1 ) |
* |
* |
* C(1:lastv,1:lastc) := C(...) - v(1:lastv,1) * w(1:lastc,1)' |
* C(1:lastv,1:lastc) := C(...) - v(1:lastv,1) * w(1:lastc,1)**H |
* |
* |
CALL ZGERC( LASTV, LASTC, -TAU, V, INCV, WORK, 1, C, LDC ) |
CALL ZGERC( LASTV, LASTC, -TAU, V, INCV, WORK, 1, C, LDC ) |
END IF |
END IF |
Line 146
|
Line 146
|
CALL ZGEMV( 'No transpose', LASTC, LASTV, ONE, C, LDC, |
CALL ZGEMV( 'No transpose', LASTC, LASTV, ONE, C, LDC, |
$ V, INCV, ZERO, WORK, 1 ) |
$ V, INCV, ZERO, WORK, 1 ) |
* |
* |
* C(1:lastc,1:lastv) := C(...) - w(1:lastc,1) * v(1:lastv,1)' |
* C(1:lastc,1:lastv) := C(...) - w(1:lastc,1) * v(1:lastv,1)**H |
* |
* |
CALL ZGERC( LASTC, LASTV, -TAU, WORK, 1, V, INCV, C, LDC ) |
CALL ZGERC( LASTC, LASTV, -TAU, WORK, 1, V, INCV, C, LDC ) |
END IF |
END IF |