174 SUBROUTINE sgbt05( TRANS, N, KL, KU, NRHS, AB, LDAB, B, LDB, X,
175 $ LDX, XACT, LDXACT, FERR, BERR, RESLTS )
183 INTEGER KL, KU, LDAB, LDB, LDX, LDXACT, N, NRHS
186 REAL AB( LDAB, * ), B( LDB, * ), BERR( * ),
187 $ ferr( * ), reslts( * ), x( ldx, * ),
195 parameter( zero = 0.0e+0, one = 1.0e+0 )
199 INTEGER I, IMAX, J, K, NZ
200 REAL AXBI, DIFF, EPS, ERRBND, OVFL, TMP, UNFL, XNORM
206 EXTERNAL lsame, isamax, slamch
209 INTRINSIC abs, max, min
215 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
221 eps = slamch(
'Epsilon' )
222 unfl = slamch(
'Safe minimum' )
224 notran = lsame( trans,
'N' )
225 nz = min( kl+ku+2, n+1 )
233 imax = isamax( n, x( 1, j ), 1 )
234 xnorm = max( abs( x( imax, j ) ), unfl )
237 diff = max( diff, abs( x( i, j )-xact( i, j ) ) )
240 IF( xnorm.GT.one )
THEN
242 ELSE IF( diff.LE.ovfl*xnorm )
THEN
250 IF( diff / xnorm.LE.ferr( j ) )
THEN
251 errbnd = max( errbnd, ( diff / xnorm ) / ferr( j ) )
263 tmp = abs( b( i, k ) )
265 DO 40 j = max( i-kl, 1 ), min( i+ku, n )
266 tmp = tmp + abs( ab( ku+1+i-j, j ) )*abs( x( j, k ) )
269 DO 50 j = max( i-ku, 1 ), min( i+kl, n )
270 tmp = tmp + abs( ab( ku+1+j-i, i ) )*abs( x( j, k ) )
276 axbi = min( axbi, tmp )
279 tmp = berr( k ) / ( nz*eps+nz*unfl / max( axbi, nz*unfl ) )
283 reslts( 2 ) = max( reslts( 2 ), tmp )
subroutine sgbt05(trans, n, kl, ku, nrhs, ab, ldab, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts)
SGBT05