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.
| c, d | Subroutine |
| Short-precision real | SPTF |
| Long-precision real | DPTF |
| 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); |
Specified as: a fullword integer; iopt = 0 or 1.
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
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)