290 SUBROUTINE sgtsvx( FACT, TRANS, N, NRHS, DL, D, DU, DLF, DF, DUF,
291 $ DU2, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR,
292 $ WORK, IWORK, INFO )
299 CHARACTER FACT, TRANS
300 INTEGER INFO, LDB, LDX, N, NRHS
304 INTEGER IPIV( * ), IWORK( * )
305 REAL B( LDB, * ), BERR( * ), D( * ), DF( * ),
306 $ dl( * ), dlf( * ), du( * ), du2( * ), duf( * ),
307 $ ferr( * ), work( * ), x( ldx, * )
314 PARAMETER ( ZERO = 0.0e+0 )
317 LOGICAL NOFACT, NOTRAN
324EXTERNAL lsame, slamch, slangt
336 nofact = lsame( fact,
'N' )
337 notran = lsame( trans, 'n
' )
338.NOT..AND..NOT.
IF( NOFACT LSAME( FACT, 'f
' ) ) THEN
340.NOT..AND..NOT.
ELSE IF( NOTRAN LSAME( TRANS, 't.AND..NOT.
' )
341 $ LSAME( TRANS, 'c
' ) ) THEN
343.LT.
ELSE IF( N0 ) THEN
345.LT.
ELSE IF( NRHS0 ) THEN
347.LT.
ELSE IF( LDBMAX( 1, N ) ) THEN
349.LT.
ELSE IF( LDXMAX( 1, N ) ) THEN
353 CALL XERBLA( 'sgtsvx', -INFO )
361 CALL SCOPY( N, D, 1, DF, 1 )
363 CALL SCOPY( N-1, DL, 1, DLF, 1 )
364 CALL SCOPY( N-1, DU, 1, DUF, 1 )
366 CALL SGTTRF( N, DLF, DF, DUF, DU2, IPIV, INFO )
383 ANORM = SLANGT( NORM, N, DL, D, DU )
387 CALL SGTCON( NORM, N, DLF, DF, DUF, DU2, IPIV, ANORM, RCOND, WORK,
392 CALL SLACPY( 'full
', N, NRHS, B, LDB, X, LDX )
393 CALL SGTTRS( TRANS, N, NRHS, DLF, DF, DUF, DU2, IPIV, X, LDX,
399 CALL SGTRFS( TRANS, N, NRHS, DL, D, DU, DLF, DF, DUF, DU2, IPIV,
400 $ B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO )
404.LT.
IF( RCONDSLAMCH( 'epsilon
' ) )
subroutine slacpy(uplo, m, n, a, lda, b, ldb)
SLACPY copies all or part of one two-dimensional array to another.
subroutine xerbla(srname, info)
XERBLA
subroutine sgtrfs(trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info)
SGTRFS
subroutine sgtcon(norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, iwork, info)
SGTCON
subroutine sgttrf(n, dl, d, du, du2, ipiv, info)
SGTTRF
subroutine sgttrs(trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info)
SGTTRS
subroutine sgtsvx(fact, trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info)
SGTSVX computes the solution to system of linear equations A * X = B for GT matrices
subroutine scopy(n, sx, incx, sy, incy)
SCOPY