Engineering and Scientific Subroutine Library for AIX Version 3 Release 3: Guide and Reference
These subroutines factor symmetric tridiagonal matrix A, stored in
symmetric-tridiagonal storage mode, using Gaussian elimination. To
solve a tridiagonal system of linear equations with one or more right-hand
sides, follow the call to these subroutines with one or more calls to SPTS or
DPTS, respectively.
Table 114. Data Types
c, d
| Subroutine
|
Short-precision real
| SPTF
|
Long-precision real
| DPTF
|
- Note:
- The output from these factorization subroutines should be used only as input
to the solve subroutines SPTS and DPTS, respectively.
Fortran
| CALL SPTF | DPTF (n, c, d, iopt)
|
C and C++
| sptf | dptf (n, c, d, iopt);
|
PL/I
| CALL SPTF | DPTF (n, c, d,
iopt);
|
- n
- is the order n of tridiagonal matrix A. Specified
as: a fullword integer; n >= 0.
- c
- is the vector c, containing the off-diagonal of matrix
A in positions 2 through n in an array, referred to as
C. Specified as: a one-dimensional array, of (at
least) length n, containing numbers of the data type indicated in Table 114.
- d
- is the vector d, containing the main diagonal of matrix
A in positions 1 through n in an array referred to as
D. Specified as: a one-dimensional array of (at least)
length n, containing numbers of the data type indicated in Table 114.
- iopt
- indicates the type of computation to be performed, where:
- If iopt = 0 or 1, Gaussian elimination is used to factor
the matrix.
Specified as: a fullword integer; iopt = 0 or
1.
- c
- is the vector c, containing part of the factorization of matrix
A in an array, referred to as C. Returned
as: a one-dimensional array of (at least) length n, containing
numbers of the data type indicated in Table 114.
- d
- is the vector d, containing part of the factorization of matrix
A in positions 1 through n in an array, referred to as
D. Returned as: a one-dimensional array of (at least)
length n, containing numbers of the data type indicated in Table 114. It has the same length as D on
entry.
For a description of how positive definite symmetric tridiagonal matrices
are stored, see Positive Definite Symmetric Tridiagonal Matrix.
The factorization of positive definite symmetric tridiagonal matrix
A is computed using Gaussian elimination. This factorization
can then be used by SPTS or DPTS, respectively, to solve the tridiagonal
systems of linear equations. See reference [77].
No pivoting is done. Therefore, these subroutines should not be used
when pivoting is necessary to maintain the numerical accuracy of the
solution. Overflow may occur if small pivots are generated.
For performance reasons, divides are done in a way that reduces the
effective exponent range for which DPTF works properly; therefore, you
may want to scale your problem, such that the diagonal elements are close to
1.0 for DPTF.
None
- Note:
- There is no test for positive definiteness in these subroutines.
- n < 0
- iopt <> 0 or 1
This example shows a factorization of the tridiagonal matrix A,
of order 4:
* *
| 1.0 1.0 0.0 0.0 |
| 1.0 2.0 1.0 0.0 |
| 0.0 1.0 3.0 1.0 |
| 0.0 0.0 1.0 1.0 |
* *
N C D IOPT
| | | |
CALL DPTF( 4 , C , D , 0 )
C = ( . , 1.0, 1.0, 1.0)
D = (1.0, 2.0, 3.0, 1.0)
C = ( . , -1.0, -1.0, -1.0)
D = (-1.0, -1.0, -1.0, -1.0)
- A "." means you do not have to store a value in
that position in the array. However, these storage positions are
required and may be overwritten during the computation.
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]