1DGTSVX(1)                LAPACK routine (version 3.2)                DGTSVX(1)
2
3
4

NAME

6       DGTSVX  -  uses  the LU factorization to compute the solution to a real
7       system of linear equations A * X = B or A**T * X = B,
8

SYNOPSIS

10       SUBROUTINE DGTSVX( FACT, TRANS, N, NRHS, DL, D, DU, DLF, DF, DUF,  DU2,
11                          IPIV,  B,  LDB,  X,  LDX,  RCOND,  FERR, BERR, WORK,
12                          IWORK, INFO )
13
14           CHARACTER      FACT, TRANS
15
16           INTEGER        INFO, LDB, LDX, N, NRHS
17
18           DOUBLE         PRECISION RCOND
19
20           INTEGER        IPIV( * ), IWORK( * )
21
22           DOUBLE         PRECISION B( LDB, * ), BERR( * ), D( * ), DF(  *  ),
23                          DL(  *  ),  DLF(  *  ), DU( * ), DU2( * ), DUF( * ),
24                          FERR( * ), WORK( * ), X( LDX, * )
25

PURPOSE

27       DGTSVX uses the LU factorization to compute the solution to a real sys‐
28       tem  of linear equations A * X = B or A**T * X = B, where A is a tridi‐
29       agonal matrix of order N and X and B are N-by-NRHS matrices.
30       Error bounds on the solution and a condition  estimate  are  also  pro‐
31       vided.
32

DESCRIPTION

34       The following steps are performed:
35       1. If FACT = 'N', the LU decomposition is used to factor the matrix A
36          as A = L * U, where L is a product of permutation and unit lower
37          bidiagonal matrices and U is upper triangular with nonzeros in
38          only the main diagonal and first two superdiagonals.
39       2. If some U(i,i)=0, so that U is exactly singular, then the routine
40          returns with INFO = i. Otherwise, the factored form of A is used
41          to estimate the condition number of the matrix A.  If the
42          reciprocal of the condition number is less than machine precision,
43          INFO = N+1 is returned as a warning, but the routine still goes on
44          to  solve for X and compute error bounds as described below.  3. The
45       system of equations is solved for X using the factored form
46          of A.
47       4. Iterative refinement is applied to improve the computed solution
48          matrix and calculate error bounds and backward error estimates
49          for it.
50

ARGUMENTS

52       FACT    (input) CHARACTER*1
53               Specifies whether or not the factored form of A has  been  sup‐
54               plied  on  entry.   = 'F':  DLF, DF, DUF, DU2, and IPIV contain
55               the factored form of A; DL, D, DU, DLF, DF, DUF, DU2  and  IPIV
56               will  not  be  modified.   = 'N':  The matrix will be copied to
57               DLF, DF, and DUF and factored.
58
59       TRANS   (input) CHARACTER*1
60               Specifies the form of the system of equations:
61               = 'N':  A * X = B     (No transpose)
62               = 'T':  A**T * X = B  (Transpose)
63               = 'C':  A**H * X = B  (Conjugate transpose = Transpose)
64
65       N       (input) INTEGER
66               The order of the matrix A.  N >= 0.
67
68       NRHS    (input) INTEGER
69               The number of right hand sides, i.e., the number of columns  of
70               the matrix B.  NRHS >= 0.
71
72       DL      (input) DOUBLE PRECISION array, dimension (N-1)
73               The (n-1) subdiagonal elements of A.
74
75       D       (input) DOUBLE PRECISION array, dimension (N)
76               The n diagonal elements of A.
77
78       DU      (input) DOUBLE PRECISION array, dimension (N-1)
79               The (n-1) superdiagonal elements of A.
80
81       DLF     (input or output) DOUBLE PRECISION array, dimension (N-1)
82               If  FACT = 'F', then DLF is an input argument and on entry con‐
83               tains the (n-1) multipliers that define the matrix L  from  the
84               LU  factorization  of  A as computed by DGTTRF.  If FACT = 'N',
85               then DLF is an output argument and on exit contains  the  (n-1)
86               multipliers  that define the matrix L from the LU factorization
87               of A.
88
89       DF      (input or output) DOUBLE PRECISION array, dimension (N)
90               If FACT = 'F', then DF is an input argument and on  entry  con‐
91               tains  the n diagonal elements of the upper triangular matrix U
92               from the LU factorization of A.  If FACT = 'N', then DF  is  an
93               output argument and on exit contains the n diagonal elements of
94               the upper triangular matrix U from the LU factorization of A.
95
96       DUF     (input or output) DOUBLE PRECISION array, dimension (N-1)
97               If FACT = 'F', then DUF is an input argument and on entry  con‐
98               tains  the  (n-1) elements of the first superdiagonal of U.  If
99               FACT = 'N', then DUF is an output argument and on exit contains
100               the (n-1) elements of the first superdiagonal of U.
101
102       DU2     (input or output) DOUBLE PRECISION array, dimension (N-2)
103               If  FACT = 'F', then DU2 is an input argument and on entry con‐
104               tains the (n-2) elements of the second superdiagonal of U.   If
105               FACT = 'N', then DU2 is an output argument and on exit contains
106               the (n-2) elements of the second superdiagonal of U.
107
108       IPIV    (input or output) INTEGER array, dimension (N)
109               If FACT = 'F', then IPIV is an input argument and on entry con‐
110               tains  the pivot indices from the LU factorization of A as com‐
111               puted by DGTTRF.  If FACT = 'N', then IPIV is an  output  argu‐
112               ment and on exit contains the pivot indices from the LU factor‐
113               ization of A; row i of the matrix  was  interchanged  with  row
114               IPIV(i).   IPIV(i)  will always be either i or i+1; IPIV(i) = i
115               indicates a row interchange was not required.
116
117       B       (input) DOUBLE PRECISION array, dimension (LDB,NRHS)
118               The N-by-NRHS right hand side matrix B.
119
120       LDB     (input) INTEGER
121               The leading dimension of the array B.  LDB >= max(1,N).
122
123       X       (output) DOUBLE PRECISION array, dimension (LDX,NRHS)
124               If INFO = 0 or INFO = N+1, the N-by-NRHS solution matrix X.
125
126       LDX     (input) INTEGER
127               The leading dimension of the array X.  LDX >= max(1,N).
128
129       RCOND   (output) DOUBLE PRECISION
130               The estimate of the reciprocal condition number of  the  matrix
131               A.  If RCOND is less than the machine precision (in particular,
132               if RCOND = 0), the matrix is  singular  to  working  precision.
133               This condition is indicated by a return code of INFO > 0.
134
135       FERR    (output) DOUBLE PRECISION array, dimension (NRHS)
136               The estimated forward error bound for each solution vector X(j)
137               (the j-th column of the solution matrix X).  If  XTRUE  is  the
138               true  solution  corresponding  to X(j), FERR(j) is an estimated
139               upper bound for the magnitude of the largest element in (X(j) -
140               XTRUE) divided by the magnitude of the largest element in X(j).
141               The estimate is as reliable as the estimate for RCOND,  and  is
142               almost always a slight overestimate of the true error.
143
144       BERR    (output) DOUBLE PRECISION array, dimension (NRHS)
145               The componentwise relative backward error of each solution vec‐
146               tor X(j) (i.e., the smallest relative change in any element  of
147               A or B that makes X(j) an exact solution).
148
149       WORK    (workspace) DOUBLE PRECISION array, dimension (3*N)
150
151       IWORK   (workspace) INTEGER array, dimension (N)
152
153       INFO    (output) INTEGER
154               = 0:  successful exit
155               < 0:  if INFO = -i, the i-th argument had an illegal value
156               > 0:  if INFO = i, and i is
157               <=  N:  U(i,i) is exactly zero.  The factorization has not been
158               completed unless i = N, but the factor U is  exactly  singular,
159               so  the solution and error bounds could not be computed.  RCOND
160               = 0 is returned.  = N+1: U is nonsingular, but  RCOND  is  less
161               than  machine precision, meaning that the matrix is singular to
162               working precision.  Nevertheless, the solution and error bounds
163               are computed because there are a number of situations where the
164               computed solution can be more accurate than the value of  RCOND
165               would suggest.
166
167
168
169 LAPACK routine (version 3.2)    November 2008                       DGTSVX(1)
Impressum