1DPBSVX(1)             LAPACK driver routine (version 3.2)            DPBSVX(1)
2
3
4

NAME

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

SYNOPSIS

10       SUBROUTINE DPBSVX( FACT, UPLO, N,  KD,  NRHS,  AB,  LDAB,  AFB,  LDAFB,
11                          EQUED,  S,  B, LDB, X, LDX, RCOND, FERR, BERR, WORK,
12                          IWORK, INFO )
13
14           CHARACTER      EQUED, FACT, UPLO
15
16           INTEGER        INFO, KD, LDAB, LDAFB, LDB, LDX, N, NRHS
17
18           DOUBLE         PRECISION RCOND
19
20           INTEGER        IWORK( * )
21
22           DOUBLE         PRECISION AB( LDAB, * ), AFB( LDAFB, * ), B( LDB,  *
23                          ),  BERR( * ), FERR( * ), S( * ), WORK( * ), X( LDX,
24                          * )
25

PURPOSE

27       DPBSVX uses the Cholesky factorization A = U**T*U or A = L*L**T to com‐
28       pute the solution to a real system of linear equations
29          A  *  X  =  B, where A is an N-by-N symmetric positive definite band
30       matrix and X and B are N-by-NRHS matrices.
31       Error bounds on the solution and a condition  estimate  are  also  pro‐
32       vided.
33

DESCRIPTION

35       The following steps are performed:
36       1. If FACT = 'E', real scaling factors are computed to equilibrate
37          the system:
38             diag(S) * A * diag(S) * inv(diag(S)) * X = diag(S) * B
39          Whether or not the system will be equilibrated depends on the
40          scaling of the matrix A, but if equilibration is used, A is
41          overwritten by diag(S)*A*diag(S) and B by diag(S)*B.
42       2. If FACT = 'N' or 'E', the Cholesky decomposition is used to
43          factor the matrix A (after equilibration if FACT = 'E') as
44             A = U**T * U,  if UPLO = 'U', or
45             A = L * L**T,  if UPLO = 'L',
46          where U is an upper triangular band matrix, and L is a lower
47          triangular band matrix.
48       3. If the leading i-by-i principal minor is not positive definite,
49          then the routine returns with INFO = i. Otherwise, the factored
50          form of A is used to estimate the condition number of the matrix
51          A.  If the reciprocal of the condition number is less than machine
52          precision, INFO = N+1 is returned as a warning, but the routine
53          still goes on to solve for X and compute error bounds as
54          described below.
55       4. The system of equations is solved for X using the factored form
56          of A.
57       5. Iterative refinement is applied to improve the computed solution
58          matrix and calculate error bounds and backward error estimates
59          for it.
60       6. If equilibration was used, the matrix X is premultiplied by
61          diag(S) so that it solves the original system before
62          equilibration.
63

ARGUMENTS

65       FACT    (input) CHARACTER*1
66               Specifies  whether  or not the factored form of the matrix A is
67               supplied on entry, and if not, whether the matrix A  should  be
68               equilibrated before it is factored.  = 'F':  On entry, AFB con‐
69               tains the factored form of A.  If EQUED = 'Y', the matrix A has
70               been  equilibrated with scaling factors given by S.  AB and AFB
71               will not be modified.  = 'N':  The matrix A will be  copied  to
72               AFB and factored.
73               =  'E':   The  matrix A will be equilibrated if necessary, then
74               copied to AFB and factored.
75
76       UPLO    (input) CHARACTER*1
77               = 'U':  Upper triangle of A is stored;
78               = 'L':  Lower triangle of A is stored.
79
80       N       (input) INTEGER
81               The number of linear equations, i.e., the order of  the  matrix
82               A.  N >= 0.
83
84       KD      (input) INTEGER
85               The  number of superdiagonals of the matrix A if UPLO = 'U', or
86               the number of subdiagonals if UPLO = 'L'.  KD >= 0.
87
88       NRHS    (input) INTEGER
89               The number of right-hand sides, i.e., the number of columns  of
90               the matrices B and X.  NRHS >= 0.
91
92       AB      (input/output) DOUBLE PRECISION array, dimension (LDAB,N)
93               On  entry,  the  upper  or lower triangle of the symmetric band
94               matrix A, stored in the first KD+1 rows of the array, except if
95               FACT  =  'F'  and  EQUED = 'Y', then A must contain the equili‐
96               brated matrix diag(S)*A*diag(S).   The  j-th  column  of  A  is
97               stored in the j-th column of the array AB as follows: if UPLO =
98               'U', AB(KD+1+i-j,j) = A(i,j) for max(1,j-KD)<=i<=j; if  UPLO  =
99               'L',  AB(1+i-j,j)    = A(i,j) for j<=i<=min(N,j+KD).  See below
100               for further details.  On exit, if FACT = 'E' and EQUED = 'Y', A
101               is overwritten by diag(S)*A*diag(S).
102
103       LDAB    (input) INTEGER
104               The leading dimension of the array A.  LDAB >= KD+1.
105
106       AFB     (input or output) DOUBLE PRECISION array, dimension (LDAFB,N)
107               If  FACT = 'F', then AFB is an input argument and on entry con‐
108               tains the triangular factor U or L from the Cholesky factoriza‐
109               tion A = U**T*U or A = L*L**T of the band matrix A, in the same
110               storage format as A (see AB).  If EQUED = 'Y', then AFB is  the
111               factored  form  of  the  equilibrated matrix A.  If FACT = 'N',
112               then AFB is an output argument and on exit returns the triangu‐
113               lar factor U or L from the Cholesky factorization A = U**T*U or
114               A = L*L**T.  If FACT = 'E', then AFB is an output argument  and
115               on  exit returns the triangular factor U or L from the Cholesky
116               factorization A = U**T*U or A  =  L*L**T  of  the  equilibrated
117               matrix  A (see the description of A for the form of the equili‐
118               brated matrix).
119
120       LDAFB   (input) INTEGER
121               The leading dimension of the array AFB.  LDAFB >= KD+1.
122
123       EQUED   (input or output) CHARACTER*1
124               Specifies the form of equilibration that was done.  = 'N':   No
125               equilibration (always true if FACT = 'N').
126               =  'Y':   Equilibration  was done, i.e., A has been replaced by
127               diag(S) * A * diag(S).  EQUED is an input argument  if  FACT  =
128               'F'; otherwise, it is an output argument.
129
130       S       (input or output) DOUBLE PRECISION array, dimension (N)
131               The  scale factors for A; not accessed if EQUED = 'N'.  S is an
132               input argument if FACT = 'F'; otherwise, S is an  output  argu‐
133               ment.  If FACT = 'F' and EQUED = 'Y', each element of S must be
134               positive.
135
136       B       (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
137               On entry, the N-by-NRHS right hand side matrix B.  On exit,  if
138               EQUED  = 'N', B is not modified; if EQUED = 'Y', B is overwrit‐
139               ten by diag(S) * B.
140
141       LDB     (input) INTEGER
142               The leading dimension of the array B.  LDB >= max(1,N).
143
144       X       (output) DOUBLE PRECISION array, dimension (LDX,NRHS)
145               If INFO = 0 or INFO = N+1, the N-by-NRHS solution matrix  X  to
146               the  original system of equations.  Note that if EQUED = 'Y', A
147               and B are modified on exit, and the  solution  to  the  equili‐
148               brated system is inv(diag(S))*X.
149
150       LDX     (input) INTEGER
151               The leading dimension of the array X.  LDX >= max(1,N).
152
153       RCOND   (output) DOUBLE PRECISION
154               The estimate of the reciprocal condition number of the matrix A
155               after equilibration (if done).   If  RCOND  is  less  than  the
156               machine  precision (in particular, if RCOND = 0), the matrix is
157               singular to working precision.  This condition is indicated  by
158               a return code of INFO > 0.
159
160       FERR    (output) DOUBLE PRECISION array, dimension (NRHS)
161               The estimated forward error bound for each solution vector X(j)
162               (the j-th column of the solution matrix X).  If  XTRUE  is  the
163               true  solution  corresponding  to X(j), FERR(j) is an estimated
164               upper bound for the magnitude of the largest element in (X(j) -
165               XTRUE) divided by the magnitude of the largest element in X(j).
166               The estimate is as reliable as the estimate for RCOND,  and  is
167               almost always a slight overestimate of the true error.
168
169       BERR    (output) DOUBLE PRECISION array, dimension (NRHS)
170               The componentwise relative backward error of each solution vec‐
171               tor X(j) (i.e., the smallest relative change in any element  of
172               A or B that makes X(j) an exact solution).
173
174       WORK    (workspace) DOUBLE PRECISION array, dimension (3*N)
175
176       IWORK   (workspace) INTEGER array, dimension (N)
177
178       INFO    (output) INTEGER
179               = 0:  successful exit
180               < 0:  if INFO = -i, the i-th argument had an illegal value
181               > 0:  if INFO = i, and i is
182               <=  N:  the leading minor of order i of A is not positive defi‐
183               nite, so the factorization could  not  be  completed,  and  the
184               solution  has not been computed. RCOND = 0 is returned.  = N+1:
185               U is nonsingular, but RCOND is  less  than  machine  precision,
186               meaning that the matrix is singular to working precision.  Nev‐
187               ertheless, the solution and error bounds are  computed  because
188               there  are  a  number of situations where the computed solution
189               can be more accurate than the value of RCOND would suggest.
190

FURTHER DETAILS

192       The band storage scheme is illustrated by the following example, when N
193       = 6, KD = 2, and UPLO = 'U':
194       Two-dimensional storage of the symmetric matrix A:
195          a11  a12  a13
196               a22  a23  a24
197                    a33  a34  a35
198                         a44  a45  a46
199                              a55  a56
200          (aij=conjg(aji))         a66
201       Band storage of the upper triangle of A:
202           *    *   a13  a24  a35  a46
203           *   a12  a23  a34  a45  a56
204          a11  a22  a33  a44  a55  a66
205       Similarly, if UPLO = 'L' the format of A is as follows:
206          a11  a22  a33  a44  a55  a66
207          a21  a32  a43  a54  a65   *
208          a31  a42  a53  a64   *    *
209       Array elements marked * are not used by the routine.
210
211
212
213 LAPACK driver routine (version 3.N2o)vember 2008                       DPBSVX(1)
Impressum