version 1.7, 2010/12/21 13:53:34
|
version 1.8, 2011/07/22 07:38:08
|
Line 1
|
Line 1
|
SUBROUTINE DLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) |
SUBROUTINE DLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) |
* |
* |
* -- 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 .. |
CHARACTER SIDE |
CHARACTER SIDE |
Line 21
|
Line 21
|
* |
* |
* DLATZM applies a Householder matrix generated by DTZRQF to a matrix. |
* DLATZM applies a Householder matrix generated by DTZRQF to a matrix. |
* |
* |
* Let P = I - tau*u*u', u = ( 1 ), |
* Let P = I - tau*u*u**T, u = ( 1 ), |
* ( v ) |
* ( v ) |
* where v is an (m-1) vector if SIDE = 'L', or a (n-1) vector if |
* where v is an (m-1) vector if SIDE = 'L', or a (n-1) vector if |
* SIDE = 'R'. |
* SIDE = 'R'. |
* |
* |
Line 110
|
Line 110
|
* |
* |
IF( LSAME( SIDE, 'L' ) ) THEN |
IF( LSAME( SIDE, 'L' ) ) THEN |
* |
* |
* w := C1 + v' * C2 |
* w := (C1 + v**T * C2)**T |
* |
* |
CALL DCOPY( N, C1, LDC, WORK, 1 ) |
CALL DCOPY( N, C1, LDC, WORK, 1 ) |
CALL DGEMV( 'Transpose', M-1, N, ONE, C2, LDC, V, INCV, ONE, |
CALL DGEMV( 'Transpose', M-1, N, ONE, C2, LDC, V, INCV, ONE, |
$ WORK, 1 ) |
$ WORK, 1 ) |
* |
* |
* [ C1 ] := [ C1 ] - tau* [ 1 ] * w' |
* [ C1 ] := [ C1 ] - tau* [ 1 ] * w**T |
* [ C2 ] [ C2 ] [ v ] |
* [ C2 ] [ C2 ] [ v ] |
* |
* |
CALL DAXPY( N, -TAU, WORK, 1, C1, LDC ) |
CALL DAXPY( N, -TAU, WORK, 1, C1, LDC ) |
Line 130
|
Line 130
|
CALL DGEMV( 'No transpose', M, N-1, ONE, C2, LDC, V, INCV, ONE, |
CALL DGEMV( 'No transpose', M, N-1, ONE, C2, LDC, V, INCV, ONE, |
$ WORK, 1 ) |
$ WORK, 1 ) |
* |
* |
* [ C1, C2 ] := [ C1, C2 ] - tau* w * [ 1 , v'] |
* [ C1, C2 ] := [ C1, C2 ] - tau* w * [ 1 , v**T] |
* |
* |
CALL DAXPY( M, -TAU, WORK, 1, C1, 1 ) |
CALL DAXPY( M, -TAU, WORK, 1, C1, 1 ) |
CALL DGER( M, N-1, -TAU, WORK, 1, V, INCV, C2, LDC ) |
CALL DGER( M, N-1, -TAU, WORK, 1, V, INCV, C2, LDC ) |