86 SUBROUTINE zlarge( N, A, LDA, ISEED, WORK, INFO )
97 COMPLEX*16 A( LDA, * ), WORK( * )
104 parameter( zero = ( 0.0d+0, 0.0d+0 ),
105 $ one = ( 1.0d+0, 0.0d+0 ) )
110 COMPLEX*16 TAU, WA, WB
116 INTRINSIC abs, dble, max
119 DOUBLE PRECISION DZNRM2
129 ELSE IF( lda.LT.max( 1, n ) )
THEN
133 CALL xerbla(
'ZLARGE', -info )
143 CALL zlarnv( 3, iseed, n-i+1, work )
144 wn = dznrm2( n-i+1, work, 1 )
145 wa = ( wn / abs( work( 1 ) ) )*work( 1 )
146 IF( wn.EQ.zero )
THEN
150 CALL zscal( n-i, one / wb, work( 2 ), 1 )
152 tau = dble( wb / wa )
157 CALL zgemv(
'Conjugate transpose', n-i+1, n, one, a( i, 1 ),
158 $ lda, work, 1, zero, work( n+1 ), 1 )
159 CALL zgerc( n-i+1, n, -tau, work, 1, work( n+1 ), 1, a( i, 1 ),
164 CALL zgemv(
'No transpose', n, n-i+1, one, a( 1, i ), lda,
165 $ work, 1, zero, work( n+1 ), 1 )
166 CALL zgerc( n, n-i+1, -tau, work( n+1 ), 1, work, 1, a( 1, i ),
subroutine xerbla(srname, info)
subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZGEMV
subroutine zgerc(m, n, alpha, x, incx, y, incy, a, lda)
ZGERC
subroutine zlarnv(idist, iseed, n, x)
ZLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine zscal(n, za, zx, incx)
ZSCAL
subroutine zlarge(n, a, lda, iseed, work, info)
ZLARGE