88 SUBROUTINE slarge( N, A, LDA, ISEED, WORK, INFO )
100 REAL a( lda, * ), work( * )
107 parameter( zero = 0.0e+0, one = 1.0e+0 )
130 ELSE IF( lda.LT.max( 1, n ) )
THEN
134 CALL
xerbla(
'SLARGE', -info )
144 CALL
slarnv( 3, iseed, n-i+1, work )
145 wn =
snrm2( n-i+1, work, 1 )
146 wa = sign( wn, work( 1 ) )
147 IF( wn.EQ.zero )
THEN
151 CALL
sscal( n-i, one / wb, work( 2 ), 1 )
158 CALL
sgemv(
'Transpose', n-i+1, n, one, a( i, 1 ), lda, work,
159 $ 1, zero, work( n+1 ), 1 )
160 CALL
sger( n-i+1, n, -tau, work, 1, work( n+1 ), 1, a( i, 1 ),
165 CALL
sgemv(
'No transpose', n, n-i+1, one, a( 1, i ), lda,
166 $ work, 1, zero, work( n+1 ), 1 )
167 CALL
sger( n, n-i+1, -tau, work( n+1 ), 1, work, 1, a( 1, i ),
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine sgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
SGEMV
subroutine slarge(N, A, LDA, ISEED, WORK, INFO)
SLARGE
subroutine slarnv(IDIST, ISEED, N, X)
SLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine sger(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
SGER
REAL function snrm2(N, X, INCX)
SNRM2
subroutine sscal(N, SA, SX, INCX)
SSCAL