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.