LAPACK  3.6.1 LAPACK: Linear Algebra PACKage
 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).```
Date
September 2012

Definition at line 104 of file sptts2.f.

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

Here is the call graph for this function:

Here is the caller graph for this function: