186 SUBROUTINE dlarzt( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT )
194 CHARACTER DIRECT, STOREV
195 INTEGER K, LDT, LDV, N
198 DOUBLE PRECISION T( ldt, * ), TAU( * ), V( ldv, * )
204 DOUBLE PRECISION ZERO
205 parameter ( zero = 0.0d+0 )
222 IF( .NOT.lsame( direct,
'B' ) )
THEN
224 ELSE IF( .NOT.lsame( storev,
'R' ) )
THEN
228 CALL xerbla(
'DLARZT', -info )
233 IF( tau( i ).EQ.zero )
THEN
248 CALL dgemv(
'No transpose', k-i, n, -tau( i ),
249 $ v( i+1, 1 ), ldv, v( i, 1 ), ldv, zero,
254 CALL dtrmv(
'Lower',
'No transpose',
'Non-unit', k-i,
255 $ t( i+1, i+1 ), ldt, t( i+1, i ), 1 )
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dlarzt(DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT)
DLARZT forms the triangular factor T of a block reflector H = I - vtvH.
subroutine dtrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
DTRMV