1DLARRE(1)           LAPACK auxiliary routine (version 3.2)           DLARRE(1)
2
3
4

NAME

6       DLARRE  - find the desired eigenvalues of a given real symmetric tridi‐
7       agonal matrix T, DLARRE sets any "small" off-diagonal elements to zero,
8       and  for each unreduced block T_i, it finds (a) a suitable shift at one
9       end of the block's spectrum,
10

SYNOPSIS

12       SUBROUTINE DLARRE( RANGE, N, VL, VU, IL, IU, D, E,  E2,  RTOL1,  RTOL2,
13                          SPLTOL,  NSPLIT,  ISPLIT,  M, W, WERR, WGAP, IBLOCK,
14                          INDEXW, GERS, PIVMIN, WORK, IWORK, INFO )
15
16           IMPLICIT       NONE
17
18           CHARACTER      RANGE
19
20           INTEGER        IL, INFO, IU, M, N, NSPLIT
21
22           DOUBLE         PRECISION PIVMIN, RTOL1, RTOL2, SPLTOL, VL, VU
23
24           INTEGER        IBLOCK( * ), ISPLIT( * ), IWORK( * ), INDEXW( * )
25
26           DOUBLE         PRECISION D( * ), E( * ), E2( * ), GERS( * ),  W(  *
27                          ),WERR( * ), WGAP( * ), WORK( * )
28

PURPOSE

30       To  find  the desired eigenvalues of a given real symmetric tridiagonal
31       matrix T, DLARRE sets any "small" off-diagonal elements  to  zero,  and
32       for  each unreduced block T_i, it finds (a) a suitable shift at one end
33       of the block's spectrum, (b) the base representation, T_i - sigma_i I =
34       L_i D_i L_i^T, and (c) eigenvalues of each L_i D_i L_i^T.
35       The  representations  and  eigenvalues found are then used by DSTEMR to
36       compute the eigenvectors of T.
37       The accuracy varies depending on whether bisection is used  to  find  a
38       few  eigenvalues  or  the dqds algorithm (subroutine DLASQ2) to conpute
39       all and then discard any unwanted one.
40       As an added benefit, DLARRE also outputs the n
41       Gerschgorin intervals for the matrices L_i D_i L_i^T.
42

ARGUMENTS

44       RANGE   (input) CHARACTER
45               = 'A': ("All")   all eigenvalues will be found.
46               = 'V': ("Value") all eigenvalues in the half-open interval (VL,
47               VU]  will  be  found.  = 'I': ("Index") the IL-th through IU-th
48               eigenvalues (of the entire matrix) will be found.
49
50       N       (input) INTEGER
51               The order of the matrix. N > 0.
52
53       VL      (input/output) DOUBLE PRECISION
54               VU      (input/output) DOUBLE PRECISION If RANGE='V', the lower
55               and upper bounds for the eigenvalues.  Eigenvalues less than or
56               equal to VL, or greater than VU, will not be  returned.   VL  <
57               VU.   If  RANGE='I'  or  ='A',  DLARRE  computes  bounds on the
58               desired part of the spectrum.
59
60       IL      (input) INTEGER
61               IU      (input) INTEGER If RANGE='I', the indices (in ascending
62               order)  of the smallest and largest eigenvalues to be returned.
63               1 <= IL <= IU <= N.
64
65       D       (input/output) DOUBLE PRECISION array, dimension (N)
66               On entry, the N diagonal elements of the tridiagonal matrix  T.
67               On exit, the N diagonal elements of the diagonal matrices D_i.
68
69       E       (input/output) DOUBLE PRECISION array, dimension (N)
70               On  entry, the first (N-1) entries contain the subdiagonal ele‐
71               ments of the tridiagonal matrix T; E(N) need not  be  set.   On
72               exit,  E contains the subdiagonal elements of the unit bidiago‐
73               nal matrices L_i. The entries E( ISPLIT( I  )  ),  1  <=  I  <=
74               NSPLIT, contain the base points sigma_i on output.
75
76       E2      (input/output) DOUBLE PRECISION array, dimension (N)
77               On  entry,  the  first (N-1) entries contain the SQUARES of the
78               subdiagonal elements of the tridiagonal matrix  T;  E2(N)  need
79               not  be set.  On exit, the entries E2( ISPLIT( I ) ), 1 <= I <=
80               NSPLIT, have been set to zero
81
82       RTOL1   (input) DOUBLE PRECISION
83               RTOL2   (input)  DOUBLE  PRECISION  Parameters  for  bisection.
84               RIGHT-LEFT.LT.MAX(   RTOL1*GAP,   RTOL2*MAX(|LEFT|,|RIGHT|)   )
85               SPLTOL (input) DOUBLE PRECISION The threshold for splitting.
86
87       NSPLIT  (output) INTEGER
88               The number of blocks T splits into. 1 <= NSPLIT <= N.
89
90       ISPLIT  (output) INTEGER array, dimension (N)
91               The splitting points, at which T breaks up  into  blocks.   The
92               first block consists of rows/columns 1 to ISPLIT(1), the second
93               of rows/columns ISPLIT(1)+1 through ISPLIT(2),  etc.,  and  the
94               NSPLIT-th  consists  of rows/columns ISPLIT(NSPLIT-1)+1 through
95               ISPLIT(NSPLIT)=N.
96
97       M       (output) INTEGER
98               The total number of eigenvalues (of all L_i D_i L_i^T) found.
99
100       W       (output) DOUBLE PRECISION array, dimension (N)
101               The first M elements contain the eigenvalues.  The  eigenvalues
102               of  each  of the blocks, L_i D_i L_i^T, are sorted in ascending
103               order  (  DLARRE  may  use  the  remaining  N-M   elements   as
104               workspace).
105
106       WERR    (output) DOUBLE PRECISION array, dimension (N)
107               The error bound on the corresponding eigenvalue in W.
108
109       WGAP    (output) DOUBLE PRECISION array, dimension (N)
110               The  separation  from  the right neighbor eigenvalue in W.  The
111               gap is only with respect to the eigenvalues of the  same  block
112               as  each  block has its own representation tree.  Exception: at
113               the right end of a block we store the left gap
114
115       IBLOCK  (output) INTEGER array, dimension (N)
116               The indices of the blocks  (submatrices)  associated  with  the
117               corresponding  eigenvalues in W; IBLOCK(i)=1 if eigenvalue W(i)
118               belongs to the first block from the top, =2 if W(i) belongs  to
119               the second block, etc.
120
121       INDEXW  (output) INTEGER array, dimension (N)
122               The  indices  of the eigenvalues within each block (submatrix);
123               for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the  i-th
124               eigenvalue W(i) is the 10-th eigenvalue in block 2
125
126       GERS    (output) DOUBLE PRECISION array, dimension (2*N)
127               The  N  Gerschgorin intervals (the i-th Gerschgorin interval is
128               (GERS(2*i-1), GERS(2*i)).
129
130       PIVMIN  (output) DOUBLE PRECISION
131               The minimum pivot in the Sturm sequence for T.
132
133       WORK    (workspace) DOUBLE PRECISION array, dimension (6*N)
134               Workspace.
135
136       IWORK   (workspace) INTEGER array, dimension (5*N)
137               Workspace.
138
139       INFO    (output) INTEGER
140               = 0:  successful exit
141               > 0:  A problem occured in DLARRE.
142               < 0:  One of the called subroutines signaled an internal  prob‐
143               lem.  Needs inspection of the corresponding parameter IINFO for
144               further information.
145
146       =-1:  Problem in DLARRD.
147             = 2:  No base representation could be found in MAXTRY iterations.
148             Increasing  MAXTRY  and  recompilation  might  be a remedy.  =-3:
149             Problem in DLARRB when computing the refined root  representation
150             for DLASQ2.  =-4:  Problem in DLARRB when preforming bisection on
151             the desired part of the spectrum.  =-5:  Problem in DLASQ2.
152             =-6:  Problem in DLASQ2.  Further Details element growth and con‐
153             sequently define all their eigenvalues to high relative accuracy.
154             =============== Based on contributions by Beresford Parlett, Uni‐
155             versity  of  California,  Berkeley, USA Jim Demmel, University of
156             California, Berkeley, USA Inderjit Dhillon, University of  Texas,
157             Austin,  USA  Osni Marques, LBNL/NERSC, USA Christof Voemel, Uni‐
158             versity of California, Berkeley, USA
159
160
161
162 LAPACK auxiliary routine (versionNo3v.e2m)ber 2008                       DLARRE(1)
Impressum