146 SUBROUTINE clarz( SIDE, M, N, L, V, INCV, TAU, C, LDC, WORK )
154 INTEGER INCV, L, LDC, M, N
158 COMPLEX C( LDC, * ), V( * ), WORK( * )
165 parameter( one = ( 1.0e+0, 0.0e+0 ),
166 $ zero = ( 0.0e+0, 0.0e+0 ) )
177 IF( lsame( side,
'L' ) )
THEN
181 IF( tau.NE.zero )
THEN
185 CALL ccopy( n, c, ldc, work, 1 )
190 CALL cgemv(
'Conjugate transpose', l, n, one, c( m-l+1, 1 ),
191 $ ldc, v, incv, one, work, 1 )
196 CALL caxpy( n, -tau, work, 1, c, ldc )
201 CALL cgeru( l, n, -tau, v, incv, work, 1, c( m-l+1, 1 ),
209 IF( tau.NE.zero )
THEN
213 CALL ccopy( m, c, 1, work, 1 )
217 CALL cgemv(
'No transpose', m, l, one, c( 1, n-l+1 ), ldc,
218 $ v, incv, one, work, 1 )
222 CALL caxpy( m, -tau, work, 1, c, 1 )
227 CALL cgerc( m, l, -tau, work, 1, v, incv, c( 1, n-l+1 ),
subroutine caxpy(n, ca, cx, incx, cy, incy)
CAXPY
subroutine ccopy(n, cx, incx, cy, incy)
CCOPY
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 cgeru(m, n, alpha, x, incx, y, incy, a, lda)
CGERU
subroutine clacgv(n, x, incx)
CLACGV conjugates a complex vector.
subroutine clarz(side, m, n, l, v, incv, tau, c, ldc, work)
CLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.