88 SUBROUTINE dlarge( N, A, LDA, ISEED, WORK, INFO )
100 DOUBLE PRECISION A( lda, * ), WORK( * )
106 DOUBLE PRECISION ZERO, ONE
107 parameter ( zero = 0.0d+0, one = 1.0d+0 )
111 DOUBLE PRECISION TAU, WA, WB, WN
120 DOUBLE PRECISION DNRM2
130 ELSE IF( lda.LT.max( 1, n ) )
THEN
134 CALL xerbla(
'DLARGE', -info )
144 CALL dlarnv( 3, iseed, n-i+1, work )
145 wn = dnrm2( n-i+1, work, 1 )
146 wa = sign( wn, work( 1 ) )
147 IF( wn.EQ.zero )
THEN
151 CALL dscal( n-i, one / wb, work( 2 ), 1 )
158 CALL dgemv(
'Transpose', n-i+1, n, one, a( i, 1 ), lda, work,
159 $ 1, zero, work( n+1 ), 1 )
160 CALL dger( n-i+1, n, -tau, work, 1, work( n+1 ), 1, a( i, 1 ),
165 CALL dgemv(
'No transpose', n, n-i+1, one, a( 1, i ), lda,
166 $ work, 1, zero, work( n+1 ), 1 )
167 CALL dger( n, n-i+1, -tau, work( n+1 ), 1, work, 1, a( 1, i ),
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dger(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
DGER
subroutine dscal(N, DA, DX, INCX)
DSCAL
subroutine dlarnv(IDIST, ISEED, N, X)
DLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine dlarge(N, A, LDA, ISEED, WORK, INFO)
DLARGE