148 SUBROUTINE dlatzm( SIDE, M, N, V, INCV, TAU, C1, C2, LDC,
157 INTEGER INCV, LDC, M, N
161 DOUBLE PRECISION C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * )
167 DOUBLE PRECISION ONE, ZERO
168 parameter( one = 1.0d+0, zero = 0.0d+0 )
182 IF( ( min( m, n ).EQ.0 ) .OR. ( tau.EQ.zero ) )
185 IF( lsame( side,
'L' ) )
THEN
189 CALL dcopy( n, c1, ldc, work, 1 )
190 CALL dgemv(
'Transpose', m-1, n, one, c2, ldc, v, incv, one,
196 CALL daxpy( n, -tau, work, 1, c1, ldc )
197 CALL dger( m-1, n, -tau, v, incv, work, 1, c2, ldc )
199 ELSE IF( lsame( side,
'R' ) )
THEN
203 CALL dcopy( m, c1, 1, work, 1 )
204 CALL dgemv(
'No transpose', m, n-1, one, c2, ldc, v, incv,
209 CALL daxpy( m, -tau, work, 1, c1, 1 )
210 CALL dger( m, n-1, -tau, work, 1, v, incv, c2, ldc )
subroutine dlatzm(side, m, n, v, incv, tau, c1, c2, ldc, work)
DLATZM
subroutine dgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
DGEMV
subroutine dger(m, n, alpha, x, incx, y, incy, a, lda)
DGER