272 SUBROUTINE sspsvx( FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB,
274 $ LDX, RCOND, FERR, BERR, WORK, IWORK, INFO )
282 INTEGER INFO, LDB, LDX, N, NRHS
286 INTEGER IPIV( * ), IWORK( * )
287 REAL AFP( * ), AP( * ), B( LDB, * ), BERR( * ),
288 $ ferr( * ), work( * ), x( ldx, * )
295 PARAMETER ( ZERO = 0.0e+0 )
304 EXTERNAL lsame, slamch, slansp
319 nofact = lsame( fact,
'N' )
320 IF( .NOT.nofact .AND. .NOT.lsame( fact,
'F' ) )
THEN
322 ELSE IF( .NOT.lsame( uplo,
'U' ) .AND.
323 $ .NOT.lsame( uplo,
'L' ) )
326 ELSE IF( n.LT.0 )
THEN
328 ELSE IF( nrhs.LT.0 )
THEN
330 ELSE IF( ldb.LT.max( 1, n ) )
THEN
332 ELSE IF( ldx.LT.max( 1, n ) )
THEN
336 CALL xerbla(
'SSPSVX', -info )
344 CALL scopy( n*( n+1 ) / 2, ap, 1, afp, 1 )
345 CALL ssptrf( uplo, n, afp, ipiv, info )
357 anorm = slansp(
'I', uplo, n, ap, work )
361 CALL sspcon( uplo, n, afp, ipiv, anorm, rcond, work, iwork,
366 CALL slacpy(
'Full', n, nrhs, b, ldb, x, ldx )
367 CALL ssptrs( uplo, n, nrhs, afp, ipiv, x, ldx, info )
372 CALL ssprfs( uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx,
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 slacpy(uplo, m, n, a, lda, b, ldb)
SLACPY copies all or part of one two-dimensional array to another.