1 SUBROUTINE dlarft( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT )
9 CHARACTER DIRECT, STOREV
10 INTEGER K, LDT, LDV, N
13 DOUBLE PRECISION T( LDT, * ), TAU( * ), V( LDV, * )
107 DOUBLE PRECISION ONE, ZERO
108 parameter( one = 1.0d+0, zero = 0.0d+0 )
128 IF( lsame( direct,
'F' ) )
THEN
130 IF( tau( i ).EQ.zero )
THEN
143 IF( lsame( storev,
'C' ) )
THEN
147 CALL dgemv(
'Transpose', n-i+1, i-1, -tau( i ),
148 $ v( i, 1 ), ldv, v( i, i ), 1, zero,
154 CALL dgemv(
'No transpose', i-1, n-i+1, -tau( i ),
155 $ v( 1, i ), ldv, v( i, i ), ldv, zero,
162 CALL dtrmv(
'Upper',
'No transpose',
'Non-unit', i-1, t,
163 $ ldt, t( 1, i ), 1 )
169 IF( tau( i ).EQ.zero )
THEN
181 IF( lsame( storev,
'C' ) )
THEN
188 CALL dgemv(
'Transpose', n-k+i, k-i, -tau( i ),
189 $ v( 1, i+1 ), ldv, v( 1, i ), 1, zero,
199 CALL dgemv(
'No transpose', k-i, n-k+i, -tau( i ),
200 $ v( i+1, 1 ), ldv, v( i, 1 ), ldv, zero,
207 CALL dtrmv(
'Lower',
'No transpose',
'Non-unit', k-i,
208 $ t( i+1, i+1 ), ldt, t( i+1, i ), 1 )
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
subroutine dlarft(DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT)
subroutine dtrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)