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