162 SUBROUTINE zlarft( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT )
169 CHARACTER DIRECT, STOREV
170 INTEGER K, LDT, LDV, N
173 COMPLEX*16 T( LDT, * ), TAU( * ), V( LDV, * )
181 $ zero = ( 0.0d+0, 0.0d+0 ) )
184 INTEGER I, J, PREVLASTV, LASTV
200 IF( lsame( direct, 'f
' ) ) THEN
203 PREVLASTV = MAX( PREVLASTV, I )
204.EQ.
IF( TAU( I )ZERO ) THEN
215 IF( LSAME( STOREV, 'c
' ) ) THEN
217 DO LASTV = N, I+1, -1
218.NE.
IF( V( LASTV, I )ZERO ) EXIT
221 T( J, I ) = -TAU( I ) * CONJG( V( I , J ) )
223 J = MIN( LASTV, PREVLASTV )
227 CALL ZGEMV( 'conjugate transpose
', J-I, I-1,
228 $ -TAU( I ), V( I+1, 1 ), LDV,
229 $ V( I+1, I ), 1, ONE, T( 1, I ), 1 )
232 DO LASTV = N, I+1, -1
233.NE.
IF( V( I, LASTV )ZERO ) EXIT
236 T( J, I ) = -TAU( I ) * V( J , I )
238 J = MIN( LASTV, PREVLASTV )
242 CALL ZGEMM( 'n
', 'c
', I-1, 1, J-I, -TAU( I ),
243 $ V( 1, I+1 ), LDV, V( I, I+1 ), LDV,
244 $ ONE, T( 1, I ), LDT )
249 CALL ZTRMV( 'upper
', 'no transpose
', 'non-unit
', I-1, T,
250 $ LDT, T( 1, I ), 1 )
253 PREVLASTV = MAX( PREVLASTV, LASTV )
262.EQ.
IF( TAU( I )ZERO ) THEN
274 IF( LSAME( STOREV, 'c
' ) ) THEN
277.NE.
IF( V( LASTV, I )ZERO ) EXIT
280 T( J, I ) = -TAU( I ) * CONJG( V( N-K+I , J ) )
282 J = MAX( LASTV, PREVLASTV )
286 CALL ZGEMV( 'conjugate transpose
', N-K+I-J, K-I,
287 $ -TAU( I ), V( J, I+1 ), LDV, V( J, I ),
288 $ 1, ONE, T( I+1, I ), 1 )
292.NE.
IF( V( I, LASTV )ZERO ) EXIT
295 T( J, I ) = -TAU( I ) * V( J, N-K+I )
297 J = MAX( LASTV, PREVLASTV )
301 CALL ZGEMM( 'n
', 'c
', K-I, 1, N-K+I-J, -TAU( I ),
302 $ V( I+1, J ), LDV, V( I, J ), LDV,
303 $ ONE, T( I+1, I ), LDT )
308 CALL ZTRMV( 'lower
', 'no transpose
', 'non-unit
', K-I,
309 $ T( I+1, I+1 ), LDT, T( I+1, I ), 1 )
311 PREVLASTV = MIN( PREVLASTV, LASTV )
subroutine zlarft(direct, storev, n, k, v, ldv, tau, t, ldt)
ZLARFT forms the triangular factor T of a block reflector H = I - vtvH
subroutine ztrmv(uplo, trans, diag, n, a, lda, x, incx)
ZTRMV
subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZGEMV
subroutine zgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
ZGEMM