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 cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
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.
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.