153 SUBROUTINE clatzm( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK )
162 INTEGER INCV, LDC, M, N
166 COMPLEX C1( ldc, * ), C2( ldc, * ), V( * ), WORK( * )
173 parameter ( one = ( 1.0e+0, 0.0e+0 ),
174 $ zero = ( 0.0e+0, 0.0e+0 ) )
188 IF( ( min( m, n ).EQ.0 ) .OR. ( tau.EQ.zero ) )
191 IF( lsame( side,
'L' ) )
THEN
195 CALL ccopy( n, c1, ldc, work, 1 )
197 CALL cgemv(
'Conjugate transpose', m-1, n, one, c2, ldc, v,
198 $ incv, one, work, 1 )
204 CALL caxpy( n, -tau, work, 1, c1, ldc )
205 CALL cgeru( m-1, n, -tau, v, incv, work, 1, c2, ldc )
207 ELSE IF( lsame( side,
'R' ) )
THEN
211 CALL ccopy( m, c1, 1, work, 1 )
212 CALL cgemv(
'No transpose', m, n-1, one, c2, ldc, v, incv, one,
217 CALL caxpy( m, -tau, work, 1, c1, 1 )
218 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 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 clacgv(N, X, INCX)
CLACGV conjugates a complex vector.
subroutine ccopy(N, CX, INCX, CY, INCY)
CCOPY
subroutine cgeru(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CGERU
subroutine caxpy(N, CA, CX, INCX, CY, INCY)
CAXPY