152 SUBROUTINE dlatzm( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK )
161 INTEGER incv, ldc, m, n
165 DOUBLE PRECISION c1( ldc, * ), c2( ldc, * ), v( * ), work( * )
171 DOUBLE PRECISION one, zero
172 parameter( one = 1.0d+0, zero = 0.0d+0 )
186 IF( ( min( m, n ).EQ.0 ) .OR. ( tau.EQ.zero ) )
189 IF(
lsame( side,
'L' ) )
THEN
193 CALL
dcopy( n, c1, ldc, work, 1 )
194 CALL
dgemv(
'Transpose', m-1, n, one, c2, ldc, v, incv, one,
200 CALL
daxpy( n, -tau, work, 1, c1, ldc )
201 CALL
dger( m-1, n, -tau, v, incv, work, 1, c2, ldc )
203 ELSE IF(
lsame( side,
'R' ) )
THEN
207 CALL
dcopy( m, c1, 1, work, 1 )
208 CALL
dgemv(
'No transpose', m, n-1, one, c2, ldc, v, incv, one,
213 CALL
daxpy( m, -tau, work, 1, c1, 1 )
214 CALL
dger( m, n-1, -tau, work, 1, v, incv, c2, ldc )