166 SUBROUTINE zget07( TRANS, N, NRHS, A, LDA, B, LDB, X, LDX, XACT,
167 $ ldxact, ferr, chkferr, berr, reslts )
177 INTEGER LDA, LDB, LDX, LDXACT, N, NRHS
180 DOUBLE PRECISION BERR( * ), FERR( * ), RESLTS( * )
181 COMPLEX*16 A( lda, * ), B( ldb, * ), X( ldx, * ),
188 DOUBLE PRECISION ZERO, ONE
189 parameter ( zero = 0.0d+0, one = 1.0d+0 )
193 INTEGER I, IMAX, J, K
194 DOUBLE PRECISION AXBI, DIFF, EPS, ERRBND, OVFL, TMP, UNFL, XNORM
200 DOUBLE PRECISION DLAMCH
201 EXTERNAL lsame, izamax, dlamch
204 INTRINSIC abs, dble, dimag, max, min
207 DOUBLE PRECISION CABS1
210 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
216 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
222 eps = dlamch(
'Epsilon' )
223 unfl = dlamch(
'Safe minimum' )
225 notran = lsame( trans,
'N' )
234 imax = izamax( n, x( 1, j ), 1 )
235 xnorm = max( cabs1( x( imax, j ) ), unfl )
238 diff = max( diff, cabs1( x( i, j )-xact( i, j ) ) )
241 IF( xnorm.GT.one )
THEN
243 ELSE IF( diff.LE.ovfl*xnorm )
THEN
251 IF( diff / xnorm.LE.ferr( j ) )
THEN
252 errbnd = max( errbnd, ( diff / xnorm ) / ferr( j ) )
265 tmp = cabs1( b( i, k ) )
268 tmp = tmp + cabs1( a( i, j ) )*cabs1( x( j, k ) )
272 tmp = tmp + cabs1( a( j, i ) )*cabs1( x( j, k ) )
278 axbi = min( axbi, tmp )
281 tmp = berr( k ) / ( ( n+1 )*eps+( n+1 )*unfl /
282 $ max( axbi, ( n+1 )*unfl ) )
286 reslts( 2 ) = max( reslts( 2 ), tmp )
subroutine zget07(TRANS, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, CHKFERR, BERR, RESLTS)
ZGET07