180 SUBROUTINE ctrt05( UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, X,
181 $ LDX, XACT, LDXACT, FERR, BERR, RESLTS )
189 INTEGER LDA, LDB, LDX, LDXACT, N
192 REAL BERR( * ), FERR( * ), RESLTS( * )
193 COMPLEX A( LDA, * ), B( LDB, * ), X( LDX, * ),
201 parameter( zero = 0.0e+0, one = 1.0e+0 )
204 LOGICAL NOTRAN, UNIT, UPPER
205 INTEGER I, IFU, IMAX, J, K
206 REAL , EPS, ERRBND, OVFL, TMP, UNFL
213EXTERNAL lsame, icamax, slamch
216 INTRINSIC abs, aimag,
max,
min, real
222 cabs1( zdum ) = abs( real( zdum ) ) + abs( aimag( zdum ) )
228 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
234 eps = slamch(
'Epsilon' )
235 unfl = slamch(
'Safe minimum' )
237 upper = lsame( uplo,
'U' )
238 notran = lsame( trans,
'N' )
239 unit = lsame( diag, 'u
' )
247 IMAX = ICAMAX( N, X( 1, J ), 1 )
248 XNORM = MAX( CABS1( X( IMAX, J ) ), UNFL )
251 DIFF = MAX( DIFF, CABS1( X( I, J )-XACT( I, J ) ) )
254.GT.
IF( XNORMONE ) THEN
256.LE.
ELSE IF( DIFFOVFL*XNORM ) THEN
264.LE.
IF( DIFF / XNORMFERR( J ) ) THEN
265 ERRBND = MAX( ERRBND, ( DIFF / XNORM ) / FERR( J ) )
280 TMP = CABS1( B( I, K ) )
282.NOT.
IF( NOTRAN ) THEN
284 TMP = TMP + CABS1( A( J, I ) )*CABS1( X( J, K ) )
287 $ TMP = TMP + CABS1( X( I, K ) )
290 $ TMP = TMP + CABS1( X( I, K ) )
292 TMP = TMP + CABS1( A( I, J ) )*CABS1( X( J, K ) )
298 TMP = TMP + CABS1( A( I, J ) )*CABS1( X( J, K ) )
301 $ TMP = TMP + CABS1( X( I, K ) )
304 $ TMP = TMP + CABS1( X( I, K ) )
306 TMP = TMP + CABS1( A( J, I ) )*CABS1( X( J, K ) )
313 AXBI = MIN( AXBI, TMP )
316 TMP = BERR( K ) / ( ( N+1 )*EPS+( N+1 )*UNFL /
317 $ MAX( AXBI, ( N+1 )*UNFL ) )
321 RESLTS( 2 ) = MAX( RESLTS( 2 ), TMP )
subroutine ctrt05(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts)
CTRT05