110 SUBROUTINE cgetc2( N, A, LDA, IPIV, JPIV, INFO )
120 INTEGER IPIV( * ), JPIV( * )
128 parameter( zero = 0.0e+0, one = 1.0e+0 )
131 INTEGER I, IP, IPV, J, JP, JPV
132 REAL BIGNUM, EPS, SMIN, SMLNUM, XMAX
156 smlnum = slamch(
'S' ) / eps
157 bignum = one / smlnum
158 CALL slabad( smlnum, bignum )
165 IF( abs( a( 1, 1 ) ).LT.smlnum )
THEN
167 a( 1, 1 ) =
cmplx( smlnum, zero )
182 IF( abs( a( ip, jp ) ).GE.xmax )
THEN
183 xmax = abs( a( ip, jp ) )
190 $ smin =
max( eps*xmax, smlnum )
195 $
CALL cswap( n, a( ipv, 1 ), lda, a( i, 1 ), lda )
201 $
CALL cswap( n, a( 1, jpv ), 1, a( 1, i ), 1 )
206 IF( abs( a( i, i ) ).LT.smin )
THEN
208 a( i, i ) =
cmplx( smin, zero )
211 a( j, i ) = a( j, i ) / a( i, i )
213 CALL cgeru( n-i, n-i, -
cmplx( one ), a( i+1, i ), 1,
214 $ a( i, i+1 ), lda, a( i+1, i+1 ), lda )
215 40 CONTINUE
*
IF( ABS( A( N, N ) ).LT.SMIN ) THEN
INFO = N
A( N, N ) = CMPLX( SMIN, ZERO )
END IF
*
* Set last pivots to N
*
IPIV( N ) = N
JPIV( N ) = N
*
RETURN
*
* End of CGETC2
*
END
CONTINUE
217 IF( abs( a( n, n ) ).LT.smin )
THEN
219 a( n, n ) =
cmplx( smin, zero )
subroutine cgetc2(n, a, lda, ipiv, jpiv, info)
CGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix.
subroutine cgeru(m, n, alpha, x, incx, y, incy, a, lda)
CGERU