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 ),
subroutine dcopy(N, DX, INCX, DY, INCY)
DCOPY
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine daxpy(N, DA, DX, INCX, DY, INCY)
DAXPY
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.