114 SUBROUTINE zgesc2( N, A, LDA, RHS, IPIV, JPIV, SCALE )
122 DOUBLE PRECISION SCALE
125 INTEGER IPIV( * ), JPIV( * )
126 COMPLEX*16 A( LDA, * ), RHS( * )
132 DOUBLE PRECISION ZERO, ONE, TWO
133 parameter( zero = 0.0d+0, one = 1.0d+0, two = 2.0d+0 )
137 DOUBLE PRECISION BIGNUM, EPS, SMLNUM
145 DOUBLE PRECISION DLAMCH
146 EXTERNAL izamax, dlamch
149 INTRINSIC abs, dble, dcmplx
156 smlnum = dlamch(
'S' ) / eps
157 bignum = one / smlnum
158 CALL dlabad( smlnum, bignum )
162 CALL zlaswp( 1, rhs, lda, 1, n-1, ipiv, 1 )
168 rhs( j ) = rhs( j ) - a( j, i )*rhs( i )
178 i = izamax( n, rhs, 1 )
179 IF( two*smlnum*abs( rhs( i ) ).GT.abs( a( n, n ) ) )
THEN
180 temp = dcmplx( one / two, zero ) / abs( rhs( i ) )
181 CALL zscal( n, temp, rhs( 1 ), 1 )
182 scale = scale*dble( temp )
185 temp = dcmplx( one, zero ) / a( i, i )
186 rhs( i ) = rhs( i )*temp
188 rhs( i ) = rhs( i ) - rhs( j )*( a( i, j )*temp )
194 CALL zlaswp( 1, rhs, lda, 1, n-1, jpiv, -1 )
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine zscal(N, ZA, ZX, INCX)
ZSCAL
subroutine zgesc2(N, A, LDA, RHS, IPIV, JPIV, SCALE)
ZGESC2 solves a system of linear equations using the LU factorization with complete pivoting computed...
subroutine zlaswp(N, A, LDA, K1, K2, IPIV, INCX)
ZLASWP performs a series of row interchanges on a general rectangular matrix.