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 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 daxpy(N, DA, DX, INCX, DY, INCY)
DAXPY
subroutine dcopy(N, DX, INCX, DY, INCY)
DCOPY
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.