88 SUBROUTINE clarge( N, A, LDA, ISEED, WORK, INFO )
100 COMPLEX a( lda, * ), work( * )
107 parameter( zero = ( 0.0e+0, 0.0e+0 ),
108 $ one = ( 1.0e+0, 0.0e+0 ) )
119 INTRINSIC abs, max, real
132 ELSE IF( lda.LT.max( 1, n ) )
THEN
136 CALL
xerbla(
'CLARGE', -info )
146 CALL
clarnv( 3, iseed, n-i+1, work )
147 wn =
scnrm2( n-i+1, work, 1 )
148 wa = ( wn / abs( work( 1 ) ) )*work( 1 )
149 IF( wn.EQ.zero )
THEN
153 CALL
cscal( n-i, one / wb, work( 2 ), 1 )
155 tau =
REAL( wb / wa )
160 CALL
cgemv(
'Conjugate transpose', n-i+1, n, one, a( i, 1 ),
161 $ lda, work, 1, zero, work( n+1 ), 1 )
162 CALL
cgerc( n-i+1, n, -tau, work, 1, work( n+1 ), 1, a( i, 1 ),
167 CALL
cgemv(
'No transpose', n, n-i+1, one, a( 1, i ), lda,
168 $ work, 1, zero, work( n+1 ), 1 )
169 CALL
cgerc( n, n-i+1, -tau, work( n+1 ), 1, work, 1, a( 1, i ),
subroutine cscal(N, CA, CX, INCX)
CSCAL
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
real function scnrm2(N, X, INCX)
SCNRM2
subroutine clarnv(IDIST, ISEED, N, X)
CLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine clarge(N, A, LDA, ISEED, WORK, INFO)
CLARGE
subroutine cgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CGERC