163 SUBROUTINE zgtt05( TRANS, N, NRHS, DL, D, DU, B, LDB, X, LDX,
164 $ XACT, LDXACT, FERR, BERR, RESLTS )
172 INTEGER LDB, LDX, LDXACT, N,
175 DOUBLE PRECISION ( * ), FERR( * ), RESLTS(
176COMPLEX*16 ( LDB, * ), ( * ), DL( * ), DU( * ),
177 $ x( ldx, * ), xact( ldxact, * )
183 DOUBLE PRECISION ZERO, ONE
184 parameter( zero = 0.0d+0, one = 1.0d+0 )
188 INTEGER , IMAX, J, K, NZ
189 DOUBLE PRECISION AXBI, DIFF, EPS, ERRBND, OVFL, TMP, UNFL, XNORM
199 INTRINSIC abs, dble, dimag,
max,
min
202 DOUBLE PRECISION CABS1
205 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
211 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
218 UNFL = DLAMCH( 'safe minimum
' )
220 NOTRAN = LSAME( TRANS, 'n
' )
229 IMAX = IZAMAX( N, X( 1, J ), 1 )
230 XNORM = MAX( CABS1( X( IMAX, J ) ), UNFL )
233 DIFF = MAX( DIFF, CABS1( X( I, J )-XACT( I, J ) ) )
236.GT.
IF( XNORMONE ) THEN
238.LE.
ELSE IF( DIFFOVFL*XNORM ) THEN
246.LE.
IF( DIFF / XNORMFERR( J ) ) THEN
247 ERRBND = MAX( ERRBND, ( DIFF / XNORM ) / FERR( J ) )
260 AXBI = CABS1( B( 1, K ) ) +
261 $ CABS1( D( 1 ) )*CABS1( X( 1, K ) )
263 AXBI = CABS1( B( 1, K ) ) +
264 $ CABS1( D( 1 ) )*CABS1( X( 1, K ) ) +
265 $ CABS1( DU( 1 ) )*CABS1( X( 2, K ) )
267 TMP = CABS1( B( I, K ) ) +
268 $ CABS1( DL( I-1 ) )*CABS1( X( I-1, K ) ) +
269 $ CABS1( D( I ) )*CABS1( X( I, K ) ) +
270 $ CABS1( DU( I ) )*CABS1( X( I+1, K ) )
271 AXBI = MIN( AXBI, TMP )
273 TMP = CABS1( B( N, K ) ) + CABS1( DL( N-1 ) )*
274 $ CABS1( X( N-1, K ) ) + CABS1( D( N ) )*
276 AXBI = MIN( AXBI, TMP )
280 AXBI = CABS1( B( 1, K ) ) +
281 $ CABS1( D( 1 ) )*CABS1( X( 1, K ) )
283 AXBI = CABS1( B( 1, K ) ) +
284 $ CABS1( D( 1 ) )*CABS1( X( 1, K ) ) +
285 $ CABS1( DL( 1 ) )*CABS1( X( 2, K ) )
287 TMP = CABS1( B( I, K ) ) +
288 $ CABS1( DU( I-1 ) )*CABS1( X( I-1, K ) ) +
289 $ CABS1( D( I ) )*CABS1( X( I, K ) ) +
290 $ CABS1( DL( I ) )*CABS1( X( I+1, K ) )
291 AXBI = MIN( AXBI, TMP )
293 TMP = CABS1( B( N, K ) ) + CABS1( DU( N-1 ) )*
294 $ CABS1( X( N-1, K ) ) + CABS1( D( N ) )*
296 AXBI = MIN( AXBI, TMP )
299 TMP = BERR( K ) / ( NZ*EPS+NZ*UNFL / MAX( AXBI, NZ*UNFL ) )
303 RESLTS( 2 ) = MAX( RESLTS( 2 ), TMP )
subroutine zgtt05(trans, n, nrhs, dl, d, du, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts)
ZGTT05