151 SUBROUTINE clatzm( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK )
159 INTEGER INCV, LDC, M, N
163 COMPLEX C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * )
170 parameter( one = ( 1.0e+0, 0.0e+0 ),
171 $ zero = ( 0.0e+0, 0.0e+0 ) )
185 IF( ( min( m, n ).EQ.0 ) .OR. ( tau.EQ.zero ) )
188 IF( lsame( side,
'L' ) )
THEN
192 CALL ccopy( n, c1, ldc, work, 1 )
194 CALL cgemv(
'Conjugate transpose', m-1, n, one, c2, ldc, v,
195 $ incv, one, work, 1 )
201 CALL caxpy( n, -tau, work, 1, c1, ldc )
202 CALL cgeru( m-1, n, -tau, v, incv, work, 1, c2, ldc )
204 ELSE IF( lsame( side,
'R' ) )
THEN
208 CALL ccopy( m, c1, 1, work, 1 )
209 CALL cgemv(
'No transpose', m, n-1, one, c2, ldc, v, incv, one,
214 CALL caxpy( m, -tau, work, 1, c1, 1 )
215 CALL cgerc( m, n-1, -tau, work, 1, v, incv, c2, ldc )
subroutine clatzm(side, m, n, v, incv, tau, c1, c2, ldc, work)
CLATZM
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.