167 SUBROUTINE clatdf( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV,
179 INTEGER IPIV( * ), JPIV( * )
180 COMPLEX RHS( * ), Z( ldz, * )
187 parameter( maxdim = 2 )
189 parameter( zero = 0.0e+0, one = 1.0e+0 )
191 parameter( cone = ( 1.0e+0, 0.0e+0 ) )
194 INTEGER I, INFO, J, K
195 REAL RTEMP, SCALE, SMINU, SPLUS
196 COMPLEX BM, BP, PMONE, TEMP
200 COMPLEX WORK( 4*maxdim ), XM( maxdim ), XP( maxdim )
209 EXTERNAL scasum, cdotc
212 INTRINSIC abs,
REAL, SQRT
220 CALL claswp( 1, rhs, ldz, 1, n-1, ipiv, 1 )
233 splus = splus +
REAL( CDOTC( N-J, Z( J+1, J ), 1, Z( J+1,
$ J ), 1 ) 234 REAL( CDOTC( N-J, Z( J+1, J ), 1, RHS( J+1 ), 1 ) )
235 splus = splus*
REAL( RHS( J ) )
236 IF( splus.GT.sminu )
THEN 238 ELSE IF( sminu.GT.splus )
THEN 248 rhs( j ) = rhs( j ) + pmone
255 CALL caxpy( n-j, temp, z( j+1, j ), 1, rhs( j+1 ), 1 )
263 CALL ccopy( n-1, rhs, 1, work, 1 )
264 work( n ) = rhs( n ) + cone
265 rhs( n ) = rhs( n ) - cone
269 temp = cone / z( i, i )
270 work( i ) = work( i )*temp
271 rhs( i ) = rhs( i )*temp
273 work( i ) = work( i ) - work( k )*( z( i, k )*temp )
274 rhs( i ) = rhs( i ) - rhs( k )*( z( i, k )*temp )
276 splus = splus + abs( work( i ) )
277 sminu = sminu + abs( rhs( i ) )
280 $
CALL ccopy( n, work, 1, rhs, 1 )
284 CALL claswp( 1, rhs, ldz, 1, n-1, jpiv, -1 )
288 CALL classq( n, rhs, 1, rdscal, rdsum )
296 CALL cgecon(
'I', n, z, ldz, one, rtemp, work, rwork, info )
297 CALL ccopy( n, work( n+1 ), 1, xm, 1 )
301 CALL claswp( 1, xm, ldz, 1, n-1, ipiv, -1 )
302 temp = cone / sqrt( cdotc( n, xm, 1, xm, 1 ) )
303 CALL cscal( n, temp, xm, 1 )
304 CALL ccopy( n, xm, 1, xp, 1 )
305 CALL caxpy( n, cone, rhs, 1, xp, 1 )
306 CALL caxpy( n, -cone, xm, 1, rhs, 1 )
307 CALL cgesc2( n, z, ldz, rhs, ipiv, jpiv, scale )
308 CALL cgesc2( n, z, ldz, xp, ipiv, jpiv, scale )
309 IF( scasum( n, xp, 1 ).GT.scasum( n, rhs, 1 ) )
310 $
CALL ccopy( n, xp, 1, rhs, 1 )
314 CALL classq( n, rhs, 1, rdscal, rdsum )
320 subroutine cgecon(NORM, N, A, LDA, ANORM, RCOND, WORK, RWORK, INFO)
CGECON
subroutine ccopy(N, CX, INCX, CY, INCY)
CCOPY
subroutine cscal(N, CA, CX, INCX)
CSCAL
subroutine cgesc2(N, A, LDA, RHS, IPIV, JPIV, SCALE)
CGESC2 solves a system of linear equations using the LU factorization with complete pivoting computed...
subroutine claswp(N, A, LDA, K1, K2, IPIV, INCX)
CLASWP performs a series of row interchanges on a general rectangular matrix.
subroutine clatdf(IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, JPIV)
CLATDF uses the LU factorization of the n-by-n matrix computed by sgetc2 and computes a contribution ...
subroutine caxpy(N, CA, CX, INCX, CY, INCY)
CAXPY