112 SUBROUTINE zgetc2( N, A, LDA, IPIV, JPIV, INFO )
123 INTEGER IPIV( * ), JPIV( * )
124 COMPLEX*16 A( lda, * )
130 DOUBLE PRECISION ZERO, ONE
131 parameter( zero = 0.0d+0, one = 1.0d+0 )
134 INTEGER I, IP, IPV, J, JP, JPV
135 DOUBLE PRECISION BIGNUM, EPS, SMIN, SMLNUM, XMAX
138 EXTERNAL zgeru, zswap
141 DOUBLE PRECISION DLAMCH
145 INTRINSIC abs, dcmplx, max
153 smlnum = dlamch(
'S' ) / eps
154 bignum = one / smlnum
155 CALL
dlabad( smlnum, bignum )
167 IF( abs( a( ip, jp ) ).GE.xmax )
THEN
168 xmax = abs( a( ip, jp ) )
175 $ smin = max( eps*xmax, smlnum )
180 $ CALL zswap( n, a( ipv, 1 ), lda, a( i, 1 ), lda )
186 $ CALL zswap( n, a( 1, jpv ), 1, a( 1, i ), 1 )
191 IF( abs( a( i, i ) ).LT.smin )
THEN
193 a( i, i ) = dcmplx( smin, zero )
196 a( j, i ) = a( j, i ) / a( i, i )
198 CALL
zgeru( n-i, n-i, -dcmplx( one ), a( i+1, i ), 1,
199 $ a( i, i+1 ), lda, a( i+1, i+1 ), lda )
202 IF( abs( a( n, n ) ).LT.smin )
THEN
204 a( n, n ) = dcmplx( smin, zero )
subroutine zgetc2(N, A, LDA, IPIV, JPIV, INFO)
ZGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix...
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine zgeru(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZGERU