112 SUBROUTINE dgetc2( N, A, LDA, IPIV, JPIV, INFO )
123 INTEGER IPIV( * ), JPIV( * )
124 DOUBLE PRECISION 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
141 DOUBLE PRECISION DLAMCH
159 smlnum = dlamch(
'S' ) / eps
160 bignum = one / smlnum
161 CALL dlabad( smlnum, bignum )
168 IF( abs( a( 1, 1 ) ).LT.smlnum )
THEN
185 IF( abs( a( ip, jp ) ).GE.xmax )
THEN
186 xmax = abs( a( ip, jp ) )
193 $ smin = max( eps*xmax, smlnum )
198 $
CALL dswap( n, a( ipv, 1 ), lda, a( i, 1 ), lda )
204 $
CALL dswap( n, a( 1, jpv ), 1, a( 1, i ), 1 )
209 IF( abs( a( i, i ) ).LT.smin )
THEN
214 a( j, i ) = a( j, i ) / a( i, i )
216 CALL dger( n-i, n-i, -one, a( i+1, i ), 1, a( i, i+1 ), lda,
217 $ a( i+1, i+1 ), lda )
220 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...