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
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
dswap( n, a( ipv, 1 ), lda, a( i, 1 ), lda )
186 $ CALL
dswap( n, a( 1, jpv ), 1, a( 1, i ), 1 )
191 IF( abs( a( i, i ) ).LT.smin )
THEN
196 a(
j, i ) = a(
j, i ) / a( i, i )
198 CALL
dger( n-i, n-i, -one, a( i+1, i ), 1, a( i, i+1 ), lda,
199 $ a( i+1, i+1 ), lda )
202 IF( abs( a( n, n ) ).LT.smin )
THEN
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...
subroutine dlabad(SMALL, LARGE)
DLABAD
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
DOUBLE PRECISION function dlamch(CMACH)
DLAMCH
subroutine dswap(N, DX, INCX, DY, INCY)
DSWAP