88 SUBROUTINE zlarge( N, A, LDA, ISEED, WORK, INFO )
100 COMPLEX*16 A( lda, * ), WORK( * )
107 parameter ( zero = ( 0.0d+0, 0.0d+0 ),
108 $ one = ( 1.0d+0, 0.0d+0 ) )
113 COMPLEX*16 TAU, WA, WB
119 INTRINSIC abs, dble, max
122 DOUBLE PRECISION DZNRM2
132 ELSE IF( lda.LT.max( 1, n ) )
THEN
136 CALL xerbla(
'ZLARGE', -info )
146 CALL zlarnv( 3, iseed, n-i+1, work )
147 wn = dznrm2( n-i+1, work, 1 )
148 wa = ( wn / abs( work( 1 ) ) )*work( 1 )
149 IF( wn.EQ.zero )
THEN
153 CALL zscal( n-i, one / wb, work( 2 ), 1 )
155 tau = dble( wb / wa )
160 CALL zgemv(
'Conjugate transpose', n-i+1, n, one, a( i, 1 ),
161 $ lda, work, 1, zero, work( n+1 ), 1 )
162 CALL zgerc( n-i+1, n, -tau, work, 1, work( n+1 ), 1, a( i, 1 ),
167 CALL zgemv(
'No transpose', n, n-i+1, one, a( 1, i ), lda,
168 $ work, 1, zero, work( n+1 ), 1 )
169 CALL zgerc( n, n-i+1, -tau, work( n+1 ), 1, work, 1, a( 1, i ),
subroutine zlarnv(IDIST, ISEED, N, X)
ZLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV
subroutine zlarge(N, A, LDA, ISEED, WORK, INFO)
ZLARGE
subroutine zgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZGERC
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zscal(N, ZA, ZX, INCX)
ZSCAL