86 SUBROUTINE clarge( N, A, LDA, ISEED, WORK, INFO )
97 COMPLEX A( LDA, * ), WORK( * )
104 parameter( zero = ( 0.0e+0, 0.0e+0 ),
105 $ one = ( 1.0e+0, 0.0e+0 ) )
116 INTRINSIC abs,
max, real
129 ELSE IF( lda.LT.
max( 1, n ) )
THEN
133 CALL xerbla(
'CLARGE', -info )
143 CALL clarnv( 3, iseed, n-i+1, work )
144 wn = scnrm2( n-i+1, work, 1 )
145 wa = ( wn / abs( work( 1 ) ) )*work( 1 )
146 IF( wn.EQ.zero )
THEN
150 CALL cscal( n-i, one / wb, work( 2 ), 1 )
152 tau = real( wb / wa )
157 CALL cgemv(
'Conjugate transpose', n-i+1, n, one, a( i, 1 ),
158 $ lda, work, 1, zero, work( n+1 ), 1 )
159 CALL cgerc( n-i+1, n, -tau, work, 1, work( n+1 ), 1, a( i, 1 ),
164 CALL cgemv(
'No transpose', n, n-i+1, one, a( 1, i ), lda,
165 $ work, 1, zero, work( n+1 ), 1 )
166 CALL cgerc( n, n-i+1, -tau, work( n+1 ), 1, work, 1, a( 1, i ),
subroutine clarnv(idist, iseed, n, x)
CLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine cgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
CGEMV
subroutine cgerc(m, n, alpha, x, incx, y, incy, a, lda)
CGERC