# SPTSVX (3) - Linux Manuals

sptsvx.f -

## SYNOPSIS

### Functions/Subroutines

subroutine sptsvx (FACT, N, NRHS, D, E, DF, EF, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, INFO)
SPTSVX computes the solution to system of linear equations A * X = B for PT matrices

## Function/Subroutine Documentation

### subroutine sptsvx (characterFACT, integerN, integerNRHS, real, dimension( * )D, real, dimension( * )E, real, dimension( * )DF, real, dimension( * )EF, real, dimension( ldb, * )B, integerLDB, real, dimension( ldx, * )X, integerLDX, realRCOND, real, dimension( * )FERR, real, dimension( * )BERR, real, dimension( * )WORK, integerINFO)

SPTSVX computes the solution to system of linear equations A * X = B for PT matrices

Purpose:

``` SPTSVX uses the factorization A = L*D*L**T to compute the solution
to a real system of linear equations A*X = B, where A is an N-by-N
symmetric positive definite tridiagonal matrix and X and B are
N-by-NRHS matrices.

Error bounds on the solution and a condition estimate are also
provided.
```

Description:

``` The following steps are performed:

1. If FACT = 'N', the matrix A is factored as A = L*D*L**T, where L
is a unit lower bidiagonal matrix and D is diagonal.  The
factorization can also be regarded as having the form
A = U**T*D*U.

2. If the leading i-by-i principal minor is not positive definite,
then the routine returns with INFO = i. Otherwise, the factored
form of A is used to estimate the condition number of the matrix
A.  If the reciprocal of the condition number is less than machine
precision, INFO = N+1 is returned as a warning, but the routine
still goes on to solve for X and compute error bounds as
described below.

3. The system of equations is solved for X using the factored form
of A.

4. Iterative refinement is applied to improve the computed solution
matrix and calculate error bounds and backward error estimates
for it.
```

Parameters:

FACT

```          FACT is CHARACTER*1
Specifies whether or not the factored form of A has been
supplied on entry.
= 'F':  On entry, DF and EF contain the factored form of A.
D, E, DF, and EF will not be modified.
= 'N':  The matrix A will be copied to DF and EF and
factored.
```

N

```          N is INTEGER
The order of the matrix A.  N >= 0.
```

NRHS

```          NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrices B and X.  NRHS >= 0.
```

D

```          D is REAL array, dimension (N)
The n diagonal elements of the tridiagonal matrix A.
```

E

```          E is REAL array, dimension (N-1)
The (n-1) subdiagonal elements of the tridiagonal matrix A.
```

DF

```          DF is REAL array, dimension (N)
If FACT = 'F', then DF is an input argument and on entry
contains the n diagonal elements of the diagonal matrix D
from the L*D*L**T factorization of A.
If FACT = 'N', then DF is an output argument and on exit
contains the n diagonal elements of the diagonal matrix D
from the L*D*L**T factorization of A.
```

EF

```          EF is REAL array, dimension (N-1)
If FACT = 'F', then EF is an input argument and on entry
contains the (n-1) subdiagonal elements of the unit
bidiagonal factor L from the L*D*L**T factorization of A.
If FACT = 'N', then EF is an output argument and on exit
contains the (n-1) subdiagonal elements of the unit
bidiagonal factor L from the L*D*L**T factorization of A.
```

B

```          B is REAL array, dimension (LDB,NRHS)
The N-by-NRHS right hand side matrix B.
```

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= max(1,N).
```

X

```          X is REAL array, dimension (LDX,NRHS)
If INFO = 0 of INFO = N+1, the N-by-NRHS solution matrix X.
```

LDX

```          LDX is INTEGER
The leading dimension of the array X.  LDX >= max(1,N).
```

RCOND

```          RCOND is REAL
The reciprocal condition number of the matrix A.  If RCOND
is less than the machine precision (in particular, if
RCOND = 0), the matrix is singular to working precision.
This condition is indicated by a return code of INFO > 0.
```

FERR

```          FERR is REAL array, dimension (NRHS)
The forward error bound for each solution vector
X(j) (the j-th column of the solution matrix X).
If XTRUE is the true solution corresponding to X(j), FERR(j)
is an estimated upper bound for the magnitude of the largest
element in (X(j) - XTRUE) divided by the magnitude of the
largest element in X(j).
```

BERR

```          BERR is REAL array, dimension (NRHS)
The componentwise relative backward error of each solution
vector X(j) (i.e., the smallest relative change in any
element of A or B that makes X(j) an exact solution).
```

WORK

```          WORK is REAL array, dimension (2*N)
```

INFO

```          INFO is INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value
> 0:  if INFO = i, and i is
<= N:  the leading minor of order i of A is
not positive definite, so the factorization
could not be completed, and the solution has not
been computed. RCOND = 0 is returned.
= N+1: U is nonsingular, but RCOND is less than machine
precision, meaning that the matrix is singular
to working precision.  Nevertheless, the
solution and error bounds are computed because
there are a number of situations where the
computed solution can be more accurate than the
value of RCOND would suggest.
```

Author:

Univ. of Tennessee

Univ. of California Berkeley