LAPACK 3.12.0 LAPACK: Linear Algebra PACKage
Searching...
No Matches

## ◆ sptts2()

 subroutine sptts2 ( integer n, integer nrhs, real, dimension( * ) d, real, dimension( * ) e, real, dimension( ldb, * ) b, integer ldb )

SPTTS2 solves a tridiagonal system of the form AX=B using the L D LH factorization computed by spttrf.

Purpose:
``` SPTTS2 solves a tridiagonal system of the form
A * X = B
using the L*D*L**T factorization of A computed by SPTTRF.  D is a
diagonal matrix specified in the vector D, L is a unit bidiagonal
matrix whose subdiagonal is specified in the vector E, and X and B
are N by NRHS matrices.```
Parameters
 [in] N ``` N is INTEGER The order of the tridiagonal 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] D ``` D is REAL array, dimension (N) The n diagonal elements of the diagonal matrix D from the L*D*L**T factorization of A.``` [in] E ``` E is REAL array, dimension (N-1) 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 factorization A = U**T*D*U.``` [in,out] B ``` B is REAL array, dimension (LDB,NRHS) On entry, the right hand side vectors B for the system of linear equations. On exit, the solution vectors, X.``` [in] LDB ``` LDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).```

Definition at line 101 of file sptts2.f.

102*
103* -- LAPACK computational routine --
104* -- LAPACK is a software package provided by Univ. of Tennessee, --
105* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
106*
107* .. Scalar Arguments ..
108 INTEGER LDB, N, NRHS
109* ..
110* .. Array Arguments ..
111 REAL B( LDB, * ), D( * ), E( * )
112* ..
113*
114* =====================================================================
115*
116* .. Local Scalars ..
117 INTEGER I, J
118* ..
119* .. External Subroutines ..
120 EXTERNAL sscal
121* ..
122* .. Executable Statements ..
123*
124* Quick return if possible
125*
126 IF( n.LE.1 ) THEN
127 IF( n.EQ.1 )
128 \$ CALL sscal( nrhs, 1. / d( 1 ), b, ldb )
129 RETURN
130 END IF
131*
132* Solve A * X = B using the factorization A = L*D*L**T,
133* overwriting each right hand side vector with its solution.
134*
135 DO 30 j = 1, nrhs
136*
137* Solve L * x = b.
138*
139 DO 10 i = 2, n
140 b( i, j ) = b( i, j ) - b( i-1, j )*e( i-1 )
141 10 CONTINUE
142*
143* Solve D * L**T * x = b.
144*
145 b( n, j ) = b( n, j ) / d( n )
146 DO 20 i = n - 1, 1, -1
147 b( i, j ) = b( i, j ) / d( i ) - b( i+1, j )*e( i )
148 20 CONTINUE
149 30 CONTINUE
150*
151 RETURN
152*
153* End of SPTTS2
154*
subroutine sscal(n, sa, sx, incx)
SSCAL
Definition sscal.f:79
Here is the call graph for this function:
Here is the caller graph for this function: