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

NAME

6       SSYEVX  -  selected eigenvalues and, optionally, eigenvectors of a real
7       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
30

ARGUMENTS

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