146 SUBROUTINE zlarz( SIDE, M, N, L, V, INCV, TAU, C, LDC, WORK )
154 INTEGER INCV, L, LDC, M, N
158 COMPLEX*16 C( LDC, * ), V( * ), WORK( * )
165 parameter( one = ( 1.0d+0, 0.0d+0 ),
166 $ zero = ( 0.0d+0, 0.0d+0 ) )
177 IF( lsame( side,
'L' ) )
THEN
181 IF( tau.NE.zero )
THEN
185 CALL zcopy( n, c, ldc, work, 1 )
190 CALL zgemv( 'conjugate transpose
', L, N, ONE, C( M-L+1, 1 ),
191 $ LDC, V, INCV, ONE, WORK, 1 )
192 CALL ZLACGV( N, WORK, 1 )
196 CALL ZAXPY( N, -TAU, WORK, 1, C, LDC )
201 CALL ZGERU( L, N, -TAU, V, INCV, WORK, 1, C( M-L+1, 1 ),
209.NE.
IF( TAUZERO ) THEN
213 CALL ZCOPY( M, C, 1, WORK, 1 )
217 CALL ZGEMV( 'no transpose
', M, L, ONE, C( 1, N-L+1 ), LDC,
218 $ V, INCV, ONE, WORK, 1 )
222 CALL ZAXPY( M, -TAU, WORK, 1, C, 1 )
227 CALL ZGERC( M, L, -TAU, WORK, 1, V, INCV, C( 1, N-L+1 ),
subroutine zlacgv(n, x, incx)
ZLACGV conjugates a complex vector.
subroutine zlarz(side, m, n, l, v, incv, tau, c, ldc, work)
ZLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.
subroutine zcopy(n, zx, incx, zy, incy)
ZCOPY
subroutine zaxpy(n, za, zx, incx, zy, incy)
ZAXPY
subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZGEMV
subroutine zgeru(m, n, alpha, x, incx, y, incy, a, lda)
ZGERU
subroutine zgerc(m, n, alpha, x, incx, y, incy, a, lda)
ZGERC