 LAPACK  3.10.1 LAPACK: Linear Algebra PACKage

## ◆ zpttrs()

 subroutine zpttrs ( character UPLO, integer N, integer NRHS, double precision, dimension( * ) D, complex*16, dimension( * ) E, complex*16, dimension( ldb, * ) B, integer LDB, integer INFO )

ZPTTRS

Purpose:
``` ZPTTRS solves a tridiagonal system of the form
A * X = B
using the factorization A = U**H *D* U or A = L*D*L**H computed by ZPTTRF.
D is a diagonal matrix specified in the vector D, U (or L) is a unit
bidiagonal matrix whose superdiagonal (subdiagonal) is specified in
the vector E, and X and B are N by NRHS matrices.```
Parameters
 [in] UPLO ``` UPLO is CHARACTER*1 Specifies the form of the factorization and whether the vector E is the superdiagonal of the upper bidiagonal factor U or the subdiagonal of the lower bidiagonal factor L. = 'U': A = U**H *D*U, E is the superdiagonal of U = 'L': A = L*D*L**H, E is the subdiagonal of L``` [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 factorization A = U**H *D*U or A = L*D*L**H.``` [in] E ``` E is COMPLEX*16 array, dimension (N-1) If UPLO = 'U', the (n-1) superdiagonal elements of the unit bidiagonal factor U from the factorization A = U**H*D*U. If UPLO = 'L', the (n-1) subdiagonal elements of the unit bidiagonal factor L from the factorization A = L*D*L**H.``` [in,out] B ``` B is COMPLEX*16 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).``` [out] INFO ``` INFO is INTEGER = 0: successful exit < 0: if INFO = -k, the k-th argument had an illegal value```

Definition at line 120 of file zpttrs.f.

121 *
122 * -- LAPACK computational routine --
123 * -- LAPACK is a software package provided by Univ. of Tennessee, --
124 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
125 *
126 * .. Scalar Arguments ..
127  CHARACTER UPLO
128  INTEGER INFO, LDB, N, NRHS
129 * ..
130 * .. Array Arguments ..
131  DOUBLE PRECISION D( * )
132  COMPLEX*16 B( LDB, * ), E( * )
133 * ..
134 *
135 * =====================================================================
136 *
137 * .. Local Scalars ..
138  LOGICAL UPPER
139  INTEGER IUPLO, J, JB, NB
140 * ..
141 * .. External Functions ..
142  INTEGER ILAENV
143  EXTERNAL ilaenv
144 * ..
145 * .. External Subroutines ..
146  EXTERNAL xerbla, zptts2
147 * ..
148 * .. Intrinsic Functions ..
149  INTRINSIC max, min
150 * ..
151 * .. Executable Statements ..
152 *
153 * Test the input arguments.
154 *
155  info = 0
156  upper = ( uplo.EQ.'U' .OR. uplo.EQ.'u' )
157  IF( .NOT.upper .AND. .NOT.( uplo.EQ.'L' .OR. uplo.EQ.'l' ) ) THEN
158  info = -1
159  ELSE IF( n.LT.0 ) THEN
160  info = -2
161  ELSE IF( nrhs.LT.0 ) THEN
162  info = -3
163  ELSE IF( ldb.LT.max( 1, n ) ) THEN
164  info = -7
165  END IF
166  IF( info.NE.0 ) THEN
167  CALL xerbla( 'ZPTTRS', -info )
168  RETURN
169  END IF
170 *
171 * Quick return if possible
172 *
173  IF( n.EQ.0 .OR. nrhs.EQ.0 )
174  \$ RETURN
175 *
176 * Determine the number of right-hand sides to solve at a time.
177 *
178  IF( nrhs.EQ.1 ) THEN
179  nb = 1
180  ELSE
181  nb = max( 1, ilaenv( 1, 'ZPTTRS', uplo, n, nrhs, -1, -1 ) )
182  END IF
183 *
184 * Decode UPLO
185 *
186  IF( upper ) THEN
187  iuplo = 1
188  ELSE
189  iuplo = 0
190  END IF
191 *
192  IF( nb.GE.nrhs ) THEN
193  CALL zptts2( iuplo, n, nrhs, d, e, b, ldb )
194  ELSE
195  DO 10 j = 1, nrhs, nb
196  jb = min( nrhs-j+1, nb )
197  CALL zptts2( iuplo, n, jb, d, e, b( 1, j ), ldb )
198  10 CONTINUE
199  END IF
200 *
201  RETURN
202 *
203 * End of ZPTTRS
204 *
integer function ilaenv(ISPEC, NAME, OPTS, N1, N2, N3, N4)
ILAENV
Definition: ilaenv.f:162
subroutine xerbla(SRNAME, INFO)
XERBLA
Definition: xerbla.f:60
subroutine zptts2(IUPLO, N, NRHS, D, E, B, LDB)
ZPTTS2 solves a tridiagonal system of the form AX=B using the L D LH factorization computed by spttrf...
Definition: zptts2.f:113
Here is the call graph for this function:
Here is the caller graph for this function: