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