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