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 xerbla(srname, info)
subroutine clarge(n, a, lda, iseed, work, info)
CLARGE
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
subroutine clarnv(idist, iseed, n, x)
CLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine cscal(n, ca, cx, incx)
CSCAL