276 SUBROUTINE sspsvx( FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X,
277 $ LDX, RCOND, FERR, BERR, WORK, IWORK, INFO )
286 INTEGER INFO, LDB, LDX, N, NRHS
290 INTEGER IPIV( * ), IWORK( * )
291 REAL AFP( * ), AP( * ), B( ldb, * ), BERR( * ),
292 $ ferr( * ), work( * ), x( ldx, * )
299 parameter( zero = 0.0e+0 )
308 EXTERNAL lsame, slamch, slansp
322 nofact = lsame( fact,
'N' )
323 IF( .NOT.nofact .AND. .NOT.lsame( fact,
'F' ) )
THEN 325 ELSE IF( .NOT.lsame( uplo,
'U' ) .AND. .NOT.lsame( uplo,
'L' ) )
328 ELSE IF( n.LT.0 )
THEN 330 ELSE IF( nrhs.LT.0 )
THEN 332 ELSE IF( ldb.LT.max( 1, n ) )
THEN 334 ELSE IF( ldx.LT.max( 1, n ) )
THEN 338 CALL xerbla(
'SSPSVX', -info )
346 CALL scopy( n*( n+1 ) / 2, ap, 1, afp, 1 )
347 CALL ssptrf( uplo, n, afp, ipiv, info )
359 anorm = slansp(
'I', uplo, n, ap, work )
363 CALL sspcon( uplo, n, afp, ipiv, anorm, rcond, work, iwork, info )
367 CALL slacpy(
'Full', n, nrhs, b, ldb, x, ldx )
368 CALL ssptrs( uplo, n, nrhs, afp, ipiv, x, ldx, info )
373 CALL ssprfs( uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr,
374 $ berr, work, iwork, info )
378 IF( rcond.LT.slamch(
'Epsilon' ) )
subroutine sspcon(UPLO, N, AP, IPIV, ANORM, RCOND, WORK, IWORK, INFO)
SSPCON
subroutine ssprfs(UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
SSPRFS
subroutine sspsvx(FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO)
SSPSVX computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine ssptrs(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
SSPTRS
subroutine ssptrf(UPLO, N, AP, IPIV, INFO)
SSPTRF
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine slacpy(UPLO, M, N, A, LDA, B, LDB)
SLACPY copies all or part of one two-dimensional array to another.
subroutine scopy(N, SX, INCX, SY, INCY)
SCOPY