129 SUBROUTINE zlarf( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
138 INTEGER INCV, LDC, M, N
142 COMPLEX*16 C( ldc, * ), V( * ), WORK( * )
149 parameter( one = ( 1.0d+0, 0.0d+0 ),
150 $ zero = ( 0.0d+0, 0.0d+0 ) )
154 INTEGER I, LASTV, LASTC
161 INTEGER ILAZLR, ILAZLC
162 EXTERNAL lsame, ilazlr, ilazlc
166 applyleft = lsame( side,
'L' )
169 IF( tau.NE.zero )
THEN
178 i = 1 + (lastv-1) * incv
183 DO WHILE( lastv.GT.0 .AND. v( i ).EQ.zero )
189 lastc = ilazlc(lastv, n, c, ldc)
192 lastc = ilazlr(m, lastv, c, ldc)
201 IF( lastv.GT.0 )
THEN
205 CALL
zgemv(
'Conjugate transpose', lastv, lastc, one,
206 $ c, ldc, v, incv, zero, work, 1 )
210 CALL
zgerc( lastv, lastc, -tau, v, incv, work, 1, c, ldc )
216 IF( lastv.GT.0 )
THEN
220 CALL
zgemv(
'No transpose', lastc, lastv, one, c, ldc,
221 $ v, incv, zero, work, 1 )
225 CALL
zgerc( lastc, lastv, -tau, work, 1, v, incv, c, ldc )
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV
subroutine zgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZGERC
subroutine zlarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
ZLARF applies an elementary reflector to a general rectangular matrix.