129 SUBROUTINE clarf( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
138 INTEGER INCV, LDC, M, N
142 COMPLEX C( ldc, * ), V( * ), WORK( * )
149 parameter( one = ( 1.0e+0, 0.0e+0 ),
150 $ zero = ( 0.0e+0, 0.0e+0 ) )
154 INTEGER I, LASTV, LASTC
161 INTEGER ILACLR, ILACLC
162 EXTERNAL lsame, ilaclr, ilaclc
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 = ilaclc(lastv, n, c, ldc)
192 lastc = ilaclr(m, lastv, c, ldc)
201 IF( lastv.GT.0 )
THEN
205 CALL
cgemv(
'Conjugate transpose', lastv, lastc, one,
206 $ c, ldc, v, incv, zero, work, 1 )
210 CALL
cgerc( lastv, lastc, -tau, v, incv, work, 1, c, ldc )
216 IF( lastv.GT.0 )
THEN
220 CALL
cgemv(
'No transpose', lastc, lastv, one, c, ldc,
221 $ v, incv, zero, work, 1 )
225 CALL
cgerc( lastc, lastv, -tau, work, 1, v, incv, c, ldc )
subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine cgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CGERC
subroutine clarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
CLARF applies an elementary reflector to a general rectangular matrix.