version 1.7, 2010/12/21 13:53:31
|
version 1.8, 2011/07/22 07:38:07
|
Line 1
|
Line 1
|
SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) |
SUBROUTINE DLARF( 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 21
|
Line 21
|
* DLARF applies a real elementary reflector H to a real m by n matrix |
* DLARF applies a real elementary reflector H to a real m by n matrix |
* C, from either the left or the right. H is represented in the form |
* C, from either the left or the right. H is represented in the form |
* |
* |
* H = I - tau * v * v' |
* H = I - tau * v * v**T |
* |
* |
* where tau is a real scalar and v is a real vector. |
* where tau is a real scalar and v is a real vector. |
* |
* |
Line 121
|
Line 121
|
* |
* |
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)**T * v(1:lastv,1) |
* |
* |
CALL DGEMV( 'Transpose', LASTV, LASTC, ONE, C, LDC, V, INCV, |
CALL DGEMV( 'Transpose', LASTV, LASTC, ONE, C, LDC, V, INCV, |
$ ZERO, WORK, 1 ) |
$ 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)**T |
* |
* |
CALL DGER( LASTV, LASTC, -TAU, V, INCV, WORK, 1, C, LDC ) |
CALL DGER( LASTV, LASTC, -TAU, V, INCV, WORK, 1, C, LDC ) |
END IF |
END IF |
Line 141
|
Line 141
|
CALL DGEMV( 'No transpose', LASTC, LASTV, ONE, C, LDC, |
CALL DGEMV( '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)**T |
* |
* |
CALL DGER( LASTC, LASTV, -TAU, WORK, 1, V, INCV, C, LDC ) |
CALL DGER( LASTC, LASTV, -TAU, WORK, 1, V, INCV, C, LDC ) |
END IF |
END IF |