149 SUBROUTINE zlatzm( SIDE, M, N, V, INCV, TAU, C1, C2, LDC,
158 INTEGER INCV, LDC, M, N
162 COMPLEX*16 C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * )
169 parameter( one = ( 1.0d+0, 0.0d+0 ),
170 $ zero = ( 0.0d+0, 0.0d+0 ) )
184 IF( ( min( m, n ).EQ.0 ) .OR. ( tau.EQ.zero ) )
187 IF( lsame( side,
'L' ) )
THEN
191 CALL zcopy( n, c1, ldc, work, 1 )
193 CALL zgemv(
'Conjugate transpose', m-1, n, one, c2, ldc, v,
194 $ incv, one, work, 1 )
200 CALL zaxpy( n, -tau, work, 1, c1, ldc )
201 CALL zgeru( m-1, n, -tau, v, incv, work, 1, c2, ldc )
203 ELSE IF( lsame( side,
'R' ) )
THEN
207 CALL zcopy( m, c1, 1, work, 1 )
208 CALL zgemv(
'No transpose', m, n-1, one, c2, ldc, v, incv,
213 CALL zaxpy( m, -tau, work, 1, c1, 1 )
214 CALL zgerc( m, n-1, -tau, work, 1, v, incv, c2, ldc )
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
subroutine zlatzm(side, m, n, v, incv, tau, c1, c2, ldc, work)
ZLATZM