142 SUBROUTINE dlarz( SIDE, M, N, L, V, INCV, TAU, C, LDC, WORK )
150 INTEGER INCV, L, LDC, M, N
154 DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * )
160 DOUBLE PRECISION ONE, ZERO
161 parameter( one = 1.0d+0, zero = 0.0d+0 )
172 IF( lsame( side,
'L' ) )
THEN
176 IF( tau.NE.zero )
THEN
180 CALL dcopy( n, c, ldc, work, 1 )
184 CALL dgemv(
'Transpose', l, n, one, c( m-l+1, 1 ), ldc,
186 $ incv, one, work, 1 )
190 CALL daxpy( n, -tau, work, 1, c, ldc )
195 CALL dger( l, n, -tau, v, incv, work, 1, c( m-l+1, 1 ),
203 IF( tau.NE.zero )
THEN
207 CALL dcopy( m, c, 1, work, 1 )
211 CALL dgemv(
'No transpose', m, l, one, c( 1, n-l+1 ),
213 $ v, incv, one, work, 1 )
217 CALL daxpy( m, -tau, work, 1, c, 1 )
222 CALL dger( m, l, -tau, work, 1, v, incv, c( 1, n-l+1 ),
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
subroutine dlarz(side, m, n, l, v, incv, tau, c, ldc, work)
DLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.