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

NAME

6       SLARRE  - find the desired eigenvalues of a given real symmetric tridi‐
7       agonal matrix T, SLARRE 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 SLARRE( 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           REAL           PIVMIN, RTOL1, RTOL2, SPLTOL, VL, VU
23
24           INTEGER        IBLOCK( * ), ISPLIT( * ), IWORK( * ), INDEXW( * )
25
26           REAL           D( * ), E( * ), E2( * ), GERS( * ), W( *  ),WERR(  *
27                          ), WGAP( * ), WORK( * )
28

PURPOSE

30       To  find  the desired eigenvalues of a given real symmetric tridiagonal
31       matrix T, SLARRE 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 SSTEMR 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 SLASQ2) to conpute
39       all and then discard any unwanted one.
40       As an added benefit, SLARRE 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) REAL
54               VU      (input/output) REAL If RANGE='V', the lower  and  upper
55               bounds  for the eigenvalues.  Eigenvalues less than or equal to
56               VL, or greater than VU, will not be returned.   VL  <  VU.   If
57               RANGE='I'  or  ='A', SLARRE computes bounds on the desired part
58               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) REAL             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) REAL             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) REAL             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) REAL
83               RTOL2    (input)  REAL  Parameters   for   bisection.    RIGHT-
84               LEFT.LT.MAX(   RTOL1*GAP,  RTOL2*MAX(|LEFT|,|RIGHT|)  )  SPLTOL
85               (input) REAL 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) REAL             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  (  SLARRE  may  use  the  remaining  N-M   elements   as
104               workspace).
105
106       WERR    (output) REAL             array, dimension (N)
107               The error bound on the corresponding eigenvalue in W.
108
109       WGAP    (output) REAL             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) REAL             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) REAL             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 SLARRE.
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 SLARRD.
147             = 2:  No base representation could be found in MAXTRY iterations.
148             Increasing  MAXTRY  and  recompilation  might  be a remedy.  =-3:
149             Problem in SLARRB when computing the refined root  representation
150             for SLASQ2.  =-4:  Problem in SLARRB when preforming bisection on
151             the desired part of the spectrum.  =-5:  Problem in SLASQ2.
152             =-6:  Problem in SLASQ2.  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                       SLARRE(1)
Impressum