1 SUBROUTINE zget04( N, NRHS, X, LDX, XACT, LDXACT, RCOND, RESID )
8 INTEGER ldx, ldxact, n, nrhs
9 DOUBLE PRECISION rcond, resid
12 COMPLEX*16 x( ldx, * ), xact( ldxact, * )
60 parameter( zero = 0.0d+0 )
64 DOUBLE PRECISION diffnm, eps, xnorm
69 DOUBLE PRECISION dlamch
70 EXTERNAL izamax, dlamch
73 INTRINSIC abs, dble, dimag,
max
76 DOUBLE PRECISION cabs1
79 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
85 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
92 eps = dlamch(
'Epsilon' )
93 IF( rcond.LT.zero )
THEN
104 ix = izamax( n, xact( 1, j ), 1 )
105 xnorm = cabs1( xact( ix, j ) )
108 diffnm =
max( diffnm, cabs1( x( i, j )-xact( i, j ) ) )
110 IF( xnorm.LE.zero )
THEN
112 $ resid = 1.0d0 / eps
114 resid =
max( resid, ( diffnm / xnorm )*rcond )
117 IF( resid*eps.LT.1.0d0 )
118 $ resid = resid / eps