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 clarge(N, A, LDA, ISEED, WORK, INFO)
CLARGE
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cscal(N, CA, CX, INCX)
CSCAL
subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine clarnv(IDIST, ISEED, N, X)
CLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine cgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CGERC