114 SUBROUTINE zgesc2( N, A, LDA, RHS, IPIV, JPIV, SCALE )
122DOUBLE 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
137 DOUBLE PRECISION BIGNUM, , SMLNUM
145 DOUBLE PRECISION DLAMCH
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.GT.
IF( TWO*SMLNUM*ABS( RHS( I ) )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
integer function izamax(n, zx, incx)
IZAMAX
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.
subroutine zscal(n, za, zx, incx)
ZSCAL