 LAPACK  3.10.0 LAPACK: Linear Algebra PACKage

◆ dptts2()

 subroutine dptts2 ( integer N, integer NRHS, double precision, dimension( * ) D, double precision, dimension( * ) E, double precision, dimension( ldb, * ) B, integer LDB )

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

Purpose:
DPTTS2 solves a tridiagonal system of the form
A * X = B
using the L*D*L**T factorization of A computed by DPTTRF.  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 DOUBLE PRECISION 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 DOUBLE PRECISION 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 DOUBLE PRECISION 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 dptts2.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  DOUBLE PRECISION B( LDB, * ), D( * ), E( * )
112 * ..
113 *
114 * =====================================================================
115 *
116 * .. Local Scalars ..
117  INTEGER I, J
118 * ..
119 * .. External Subroutines ..
120  EXTERNAL dscal
121 * ..
122 * .. Executable Statements ..
123 *
124 * Quick return if possible
125 *
126  IF( n.LE.1 ) THEN
127  IF( n.EQ.1 )
128  \$ CALL dscal( nrhs, 1.d0 / 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 DPTTS2
154 *
subroutine dscal(N, DA, DX, INCX)
DSCAL
Definition: dscal.f:79
Here is the call graph for this function:
Here is the caller graph for this function: