125 SUBROUTINE clarf( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
133 INTEGER INCV, LDC, M, N
137 COMPLEX C( LDC, * ), V( * ), WORK( * )
144 parameter( one = ( 1.0e+0, 0.0e+0 ),
145 $ zero = ( 0.0e+0, 0.0e+0 ) )
149 INTEGER I, LASTV, LASTC
156 INTEGER ILACLR, ILACLC
157 EXTERNAL lsame, ilaclr, ilaclc
161 applyleft = lsame( side,
'L' )
164 IF( tau.NE.zero )
THEN
173 i = 1 + (lastv-1) * incv
178 DO WHILE( lastv.GT.0 .AND. v( i ).EQ.zero )
184 lastc = ilaclc(lastv, n, c, ldc)
187 lastc = ilaclr(m, lastv, c, ldc)
196 IF( lastv.GT.0 )
THEN
200 CALL cgemv(
'Conjugate transpose', lastv, lastc, one,
201 $ c, ldc, v, incv, zero, work, 1 )
205 CALL cgerc( lastv, lastc, -tau, v, incv, work, 1, c,
212 IF( lastv.GT.0 )
THEN
216 CALL cgemv(
'No transpose', lastc, lastv, one, c, ldc,
217 $ v, incv, zero, work, 1 )
221 CALL cgerc( lastc, lastv, -tau, work, 1, v, incv, c,
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.