116 SUBROUTINE cgesc2( N, A, LDA, RHS, IPIV, JPIV, SCALE )
128 INTEGER ipiv( * ), jpiv( * )
129 COMPLEX a( lda, * ), rhs( * )
136 parameter( zero = 0.0e+0, one = 1.0e+0, two = 2.0e+0 )
140 REAL bignum, eps, smlnum
152 INTRINSIC abs, cmplx, real
159 smlnum =
slamch(
'S' ) / eps
160 bignum = one / smlnum
161 CALL
slabad( smlnum, bignum )
165 CALL
claswp( 1, rhs, lda, 1, n-1, ipiv, 1 )
171 rhs(
j ) = rhs(
j ) - a(
j, i )*rhs( i )
182 IF( two*smlnum*abs( rhs( i ) ).GT.abs( a( n, n ) ) )
THEN
183 temp = cmplx( one / two, zero ) / abs( rhs( i ) )
184 CALL
cscal( n, temp, rhs( 1 ), 1 )
185 scale = scale*
REAL( temp )
188 temp = cmplx( one, zero ) / a( i, i )
189 rhs( i ) = rhs( i )*temp
191 rhs( i ) = rhs( i ) - rhs(
j )*( a( i,
j )*temp )
197 CALL
claswp( 1, rhs, lda, 1, n-1, jpiv, -1 )
subroutine claswp(N, A, LDA, K1, K2, IPIV, INCX)
CLASWP performs a series of row interchanges on a general rectangular matrix.
subroutine cscal(N, CA, CX, INCX)
CSCAL
integer function icamax(N, CX, INCX)
ICAMAX
subroutine cgesc2(N, A, LDA, RHS, IPIV, JPIV, SCALE)
CGESC2 solves a system of linear equations using the LU factorization with complete pivoting computed...
real function slamch(CMACH)
SLAMCH
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine slabad(SMALL, LARGE)
SLABAD