144 SUBROUTINE dlarz( SIDE, M, N, L, V, INCV, TAU, C, LDC, WORK )
152 INTEGER INCV, L, LDC, M, N
156 DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * )
162 DOUBLE PRECISION ONE, ZERO
163 parameter( one = 1.0d+0, zero = 0.0d+0 )
174 IF( lsame( side,
'L' ) )
THEN
178 IF( tau.NE.zero )
THEN
182 CALL dcopy( n, c, ldc, work, 1 )
186 CALL dgemv(
'Transpose', l, n, one, c( m-l+1, 1 ), ldc, v,
187 $ incv, one, work, 1 )
191 CALL daxpy( n, -tau, work, 1, c, ldc )
196 CALL dger( l, n, -tau, v, incv, work, 1, c( m-l+1, 1 ),
204 IF( tau.NE.zero )
THEN
208 CALL dcopy( m, c, 1, work, 1 )
212 CALL dgemv(
'No transpose', m, l, one, c( 1, n-l+1 ), ldc,
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 daxpy(n, da, dx, incx, dy, incy)
DAXPY
subroutine dcopy(n, dx, incx, dy, incy)
DCOPY
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.