146 SUBROUTINE dlarz( SIDE, M, N, L, V, INCV, TAU, C, LDC, WORK )
155 INTEGER INCV, L, LDC, M, N
159 DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * )
165 DOUBLE PRECISION ONE, ZERO
166 parameter( one = 1.0d+0, zero = 0.0d+0 )
177 IF( lsame( side,
'L' ) )
THEN
181 IF( tau.NE.zero )
THEN
185 CALL dcopy( n, c, ldc, work, 1 )
189 CALL dgemv(
'Transpose', l, n, one, c( m-l+1, 1 ), ldc, v,
190 $ incv, one, work, 1 )
194 CALL daxpy( n, -tau, work, 1, c, ldc )
199 CALL dger( l, n, -tau, v, incv, work, 1, c( m-l+1, 1 ),
207 IF( tau.NE.zero )
THEN
211 CALL dcopy( m, c, 1, work, 1 )
215 CALL dgemv(
'No transpose', m, l, one, c( 1, n-l+1 ), ldc,
216 $ v, incv, one, work, 1 )
220 CALL daxpy( m, -tau, work, 1, c, 1 )
225 CALL dger( m, l, -tau, work, 1, v, incv, c( 1, n-l+1 ),