 LAPACK  3.10.1 LAPACK: Linear Algebra PACKage

## ◆ sptsv()

 subroutine sptsv ( integer N, integer NRHS, real, dimension( * ) D, real, dimension( * ) E, real, dimension( ldb, * ) B, integer LDB, integer INFO )

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

Download SPTSV + dependencies [TGZ] [ZIP] [TXT]

Purpose:
``` SPTSV computes 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.

A is factored as A = L*D*L**T, and the factored form of A is then
used to solve the system of equations.```
Parameters
 [in] N ``` N is INTEGER The order of the matrix A. N >= 0.``` [in] NRHS ``` NRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.``` [in,out] D ``` D is REAL array, dimension (N) On entry, the n diagonal elements of the tridiagonal matrix A. On exit, the n diagonal elements of the diagonal matrix D from the factorization A = L*D*L**T.``` [in,out] E ``` E is REAL array, dimension (N-1) On entry, the (n-1) subdiagonal elements of the tridiagonal matrix A. On exit, the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**T factorization of A. (E can also be regarded as the superdiagonal of the unit bidiagonal factor U from the U**T*D*U factorization of A.)``` [in,out] B ``` B is REAL array, dimension (LDB,NRHS) On entry, the N-by-NRHS right hand side matrix B. On exit, if INFO = 0, the N-by-NRHS solution matrix X.``` [in] LDB ``` LDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).``` [out] INFO ``` INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value > 0: if INFO = i, the leading minor of order i is not positive definite, and the solution has not been computed. The factorization has not been completed unless i = N.```

Definition at line 113 of file sptsv.f.

114 *
115 * -- LAPACK driver routine --
116 * -- LAPACK is a software package provided by Univ. of Tennessee, --
117 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
118 *
119 * .. Scalar Arguments ..
120  INTEGER INFO, LDB, N, NRHS
121 * ..
122 * .. Array Arguments ..
123  REAL B( LDB, * ), D( * ), E( * )
124 * ..
125 *
126 * =====================================================================
127 *
128 * .. External Subroutines ..
129  EXTERNAL spttrf, spttrs, xerbla
130 * ..
131 * .. Intrinsic Functions ..
132  INTRINSIC max
133 * ..
134 * .. Executable Statements ..
135 *
136 * Test the input parameters.
137 *
138  info = 0
139  IF( n.LT.0 ) THEN
140  info = -1
141  ELSE IF( nrhs.LT.0 ) THEN
142  info = -2
143  ELSE IF( ldb.LT.max( 1, n ) ) THEN
144  info = -6
145  END IF
146  IF( info.NE.0 ) THEN
147  CALL xerbla( 'SPTSV ', -info )
148  RETURN
149  END IF
150 *
151 * Compute the L*D*L**T (or U**T*D*U) factorization of A.
152 *
153  CALL spttrf( n, d, e, info )
154  IF( info.EQ.0 ) THEN
155 *
156 * Solve the system A*X = B, overwriting B with X.
157 *
158  CALL spttrs( n, nrhs, d, e, b, ldb, info )
159  END IF
160  RETURN
161 *
162 * End of SPTSV
163 *
subroutine xerbla(SRNAME, INFO)
XERBLA
Definition: xerbla.f:60
subroutine spttrf(N, D, E, INFO)
SPTTRF
Definition: spttrf.f:91
subroutine spttrs(N, NRHS, D, E, B, LDB, INFO)
SPTTRS
Definition: spttrs.f:109
Here is the call graph for this function:
Here is the caller graph for this function: