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 dswap(N, DX, INCX, DY, INCY)
DSWAP
subroutine dger(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
DGER
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine dgetc2(N, A, LDA, IPIV, JPIV, INFO)
DGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix...