110 SUBROUTINE dgetc2( N, A, LDA, IPIV, JPIV, INFO )
120 INTEGER IPIV( * ), JPIV( * )
121 DOUBLE PRECISION A( LDA, * )
127 DOUBLE PRECISION ZERO, ONE
128 parameter( zero = 0.0d+0, one = 1.0d+0 )
131 INTEGER I, IP, IPV, J, JP, JPV
132 DOUBLE PRECISION BIGNUM, EPS, SMIN, SMLNUM, XMAX
138 DOUBLE PRECISION DLAMCH
156 smlnum = dlamch(
'S' ) / eps
157 bignum = one / smlnum
158 CALL dlabad( smlnum, bignum )
165 IF( abs( a( 1, 1 ) ).LT.smlnum )
THEN
182 IF( abs( a( ip, jp ) ).GE.xmax )
THEN
183 xmax = abs( a( ip, jp ) )
190 $ smin = max( eps*xmax, smlnum )
195 $
CALL dswap( n, a( ipv, 1 ), lda, a( i, 1 ), lda )
201 $
CALL dswap( n, a( 1, jpv ), 1, a( 1, i ), 1 )
206 IF( abs( a( i, i ) ).LT.smin )
THEN
211 a( j, i ) = a( j, i ) / a( i, i )
213 CALL dger( n-i, n-i, -one, a( i+1, i ), 1, a( i, i+1 ), lda,
214 $ a( i+1, i+1 ), lda )
217 IF( abs( a( n, n ) ).LT.smin )
THEN
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine dswap(N, DX, INCX, DY, INCY)
DSWAP
subroutine dger(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
DGER
subroutine dgetc2(N, A, LDA, IPIV, JPIV, INFO)
DGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix.