144 SUBROUTINE dlarz( SIDE, M, N, L, V, INCV, TAU, C, LDC, WORK )
152 INTEGER INCV, L, LDC, M, N
156 DOUBLE PRECISION C( , * ), 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,
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 dlarz(side, m, n, l, v, incv, tau, c, ldc, work)
DLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.
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