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