186 SUBROUTINE clarzt( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT )
194 CHARACTER DIRECT, STOREV
195 INTEGER K, LDT, LDV, N
198 COMPLEX T( ldt, * ), TAU( * ), V( ldv, * )
205 parameter( zero = ( 0.0e+0, 0.0e+0 ) )
222 IF( .NOT.lsame( direct,
'B' ) )
THEN
224 ELSE IF( .NOT.lsame( storev,
'R' ) )
THEN
228 CALL
xerbla(
'CLARZT', -info )
233 IF( tau( i ).EQ.zero )
THEN
248 CALL
clacgv( n, v( i, 1 ), ldv )
249 CALL
cgemv(
'No transpose', k-i, n, -tau( i ),
250 $ v( i+1, 1 ), ldv, v( i, 1 ), ldv, zero,
252 CALL
clacgv( n, v( i, 1 ), ldv )
256 CALL
ctrmv(
'Lower',
'No transpose',
'Non-unit', k-i,
257 $ t( i+1, i+1 ), ldt, t( i+1, i ), 1 )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.
subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine ctrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
CTRMV
subroutine clarzt(DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT)
CLARZT forms the triangular factor T of a block reflector H = I - vtvH.