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

NAME

6       SSYEVX - computes selected eigenvalues and, optionally, eigenvectors of
7       a real symmetric matrix A
8

SYNOPSIS

10       SUBROUTINE SSYEVX( JOBZ, RANGE, UPLO,  N,  A,  LDA,  VL,  VU,  IL,  IU,
11                          ABSTOL,  M,  W,  Z,  LDZ, WORK, LWORK, IWORK, IFAIL,
12                          INFO )
13
14           CHARACTER      JOBZ, RANGE, UPLO
15
16           INTEGER        IL, INFO, IU, LDA, LDZ, LWORK, M, N
17
18           REAL           ABSTOL, VL, VU
19
20           INTEGER        IFAIL( * ), IWORK( * )
21
22           REAL           A( LDA, * ), W( * ), WORK( * ), Z( LDZ, * )
23

PURPOSE

25       SSYEVX computes selected eigenvalues and, optionally, eigenvectors of a
26       real  symmetric matrix A.  Eigenvalues and eigenvectors can be selected
27       by specifying either a range of values or a range of  indices  for  the
28       desired eigenvalues.
29

ARGUMENTS

31       JOBZ    (input) CHARACTER*1
32               = 'N':  Compute eigenvalues only;
33               = 'V':  Compute eigenvalues and eigenvectors.
34
35       RANGE   (input) CHARACTER*1
36               = 'A': all eigenvalues will be found.
37               =  'V':  all eigenvalues in the half-open interval (VL,VU] will
38               be found.  = 'I': the IL-th through IU-th eigenvalues  will  be
39               found.
40
41       UPLO    (input) CHARACTER*1
42               = 'U':  Upper triangle of A is stored;
43               = 'L':  Lower triangle of A is stored.
44
45       N       (input) INTEGER
46               The order of the matrix A.  N >= 0.
47
48       A       (input/output) REAL array, dimension (LDA, N)
49               On  entry,  the symmetric matrix A.  If UPLO = 'U', the leading
50               N-by-N upper triangular part of A contains the upper triangular
51               part  of the matrix A.  If UPLO = 'L', the leading N-by-N lower
52               triangular part of A contains the lower triangular part of  the
53               matrix  A.   On  exit,  the lower triangle (if UPLO='L') or the
54               upper triangle (if UPLO='U') of A, including the  diagonal,  is
55               destroyed.
56
57       LDA     (input) INTEGER
58               The leading dimension of the array A.  LDA >= max(1,N).
59
60       VL      (input) REAL
61               VU       (input)  REAL If RANGE='V', the lower and upper bounds
62               of the interval to be searched for eigenvalues. VL <  VU.   Not
63               referenced if RANGE = 'A' or 'I'.
64
65       IL      (input) INTEGER
66               IU      (input) INTEGER If RANGE='I', the indices (in ascending
67               order) of the smallest and largest eigenvalues to be  returned.
68               1  <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.  Not
69               referenced if RANGE = 'A' or 'V'.
70
71       ABSTOL  (input) REAL
72               The absolute error tolerance for the eigenvalues.  An  approxi‐
73               mate  eigenvalue is accepted as converged when it is determined
74               to lie in an interval [a,b] of width  less  than  or  equal  to
75               ABSTOL + EPS *   max( |a|,|b| ) , where EPS is the machine pre‐
76               cision.  If ABSTOL is less than or equal to zero, then  EPS*|T|
77               will  be  used  in  its  place,  where |T| is the 1-norm of the
78               tridiagonal matrix obtained by reducing A to tridiagonal  form.
79               Eigenvalues will be computed most accurately when ABSTOL is set
80               to twice the underflow threshold 2*SLAMCH('S'), not  zero.   If
81               this  routine  returns with INFO>0, indicating that some eigen‐
82               vectors did not converge, try setting ABSTOL to  2*SLAMCH('S').
83               See  "Computing  Small  Singular  Values of Bidiagonal Matrices
84               with Guaranteed High Relative Accuracy," by Demmel  and  Kahan,
85               LAPACK Working Note #3.
86
87       M       (output) INTEGER
88               The  total number of eigenvalues found.  0 <= M <= N.  If RANGE
89               = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
90
91       W       (output) REAL array, dimension (N)
92               On normal exit, the first M elements contain the  selected  ei‐
93               genvalues in ascending order.
94
95       Z       (output) REAL array, dimension (LDZ, max(1,M))
96               If  JOBZ = 'V', then if INFO = 0, the first M columns of Z con‐
97               tain the orthonormal eigenvectors of the matrix A corresponding
98               to  the selected eigenvalues, with the i-th column of Z holding
99               the eigenvector associated with W(i).  If an eigenvector  fails
100               to converge, then that column of Z contains the latest approxi‐
101               mation to the eigenvector, and the index of the eigenvector  is
102               returned  in  IFAIL.   If JOBZ = 'N', then Z is not referenced.
103               Note: the user must ensure that at least max(1,M)  columns  are
104               supplied  in  the array Z; if RANGE = 'V', the exact value of M
105               is not known in advance and an upper bound must be used.
106
107       LDZ     (input) INTEGER
108               The leading dimension of the array Z.  LDZ >= 1, and if JOBZ  =
109               'V', LDZ >= max(1,N).
110
111       WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
112               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
113
114       LWORK   (input) INTEGER
115               The  length of the array WORK.  LWORK >= 1, when N <= 1; other‐
116               wise 8*N.  For optimal efficiency, LWORK >= (NB+3)*N, where  NB
117               is  the  max of the blocksize for SSYTRD and SORMTR returned by
118               ILAENV.  If LWORK = -1, then a workspace query is assumed;  the
119               routine  only  calculates  the  optimal size of the WORK array,
120               returns this value as the first entry of the WORK array, and no
121               error message related to LWORK is issued by XERBLA.
122
123       IWORK   (workspace) INTEGER array, dimension (5*N)
124
125       IFAIL   (output) INTEGER array, dimension (N)
126               If  JOBZ = 'V', then if INFO = 0, the first M elements of IFAIL
127               are zero.  If INFO > 0, then IFAIL contains the indices of  the
128               eigenvectors  that  failed  to  converge.   If JOBZ = 'N', then
129               IFAIL is not referenced.
130
131       INFO    (output) INTEGER
132               = 0:  successful exit
133               < 0:  if INFO = -i, the i-th argument had an illegal value
134               > 0:  if INFO = i, then  i  eigenvectors  failed  to  converge.
135               Their indices are stored in array IFAIL.
136
137
138
139 LAPACK driver routine (version 3.N2o)vember 2008                       SSYEVX(1)
Impressum