184 SUBROUTINE clarzt( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT )
191 CHARACTER DIRECT, STOREV
192 INTEGER K, LDT, LDV, N
195 COMPLEX T( ldt, * ), TAU( * ), V( ldv, * )
202 parameter( zero = ( 0.0e+0, 0.0e+0 ) )
219 IF( .NOT.lsame( direct,
'B' ) )
THEN 221 ELSE IF( .NOT.lsame( storev,
'R' ) )
THEN 225 CALL xerbla(
'CLARZT', -info )
230 IF( tau( i ).EQ.zero )
THEN 245 CALL clacgv( n, v( i, 1 ), ldv )
246 CALL cgemv(
'No transpose', k-i, n, -tau( i ),
247 $ v( i+1, 1 ), ldv, v( i, 1 ), ldv, zero,
249 CALL clacgv( n, v( i, 1 ), ldv )
253 CALL ctrmv(
'Lower',
'No transpose',
'Non-unit', k-i,
254 $ 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 clarzt(DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT)
CLARZT forms the triangular factor T of a block reflector H = I - vtvH.
subroutine ctrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
CTRMV
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.