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

NAME

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

SYNOPSIS

10       SUBROUTINE DSYEVX( 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           DOUBLE         PRECISION ABSTOL, VL, VU
19
20           INTEGER        IFAIL( * ), IWORK( * )
21
22           DOUBLE         PRECISION A( LDA, * ), W( * ), WORK( * ), Z( LDZ,  *
23                          )
24

PURPOSE

26       DSYEVX computes selected eigenvalues and, optionally, eigenvectors of a
27       real symmetric matrix A.  Eigenvalues and eigenvectors can be  selected
28       by  specifying  either  a range of values or a range of indices for the
29       desired eigenvalues.
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) DOUBLE PRECISION 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) DOUBLE PRECISION
62               VU      (input) DOUBLE PRECISION If RANGE='V',  the  lower  and
63               upper bounds of the interval to be searched for eigenvalues. VL
64               < VU.  Not 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) DOUBLE PRECISION
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               ABSTOL + EPS *   max( |a|,|b| ) , where EPS is the machine pre‐
77               cision.  If ABSTOL is less than or equal to zero, then  EPS*|T|
78               will be used in its place, where  |T|  is  the  1-norm  of  the
79               tridiagonal  matrix obtained by reducing A to tridiagonal form.
80               Eigenvalues will be computed most accurately when ABSTOL is set
81               to  twice  the underflow threshold 2*DLAMCH('S'), not zero.  If
82               this routine returns with INFO>0, indicating that  some  eigen‐
83               vectors  did not converge, try setting ABSTOL to 2*DLAMCH('S').
84               See "Computing Small Singular  Values  of  Bidiagonal  Matrices
85               with  Guaranteed  High Relative Accuracy," by Demmel and Kahan,
86               LAPACK Working Note #3.
87
88       M       (output) INTEGER
89               The total number of eigenvalues found.  0 <= M <= N.  If  RANGE
90               = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
91
92       W       (output) DOUBLE PRECISION array, dimension (N)
93               On  normal  exit, the first M elements contain the selected ei‐
94               genvalues in ascending order.
95
96       Z       (output) DOUBLE PRECISION array, dimension (LDZ, max(1,M))
97               If JOBZ = 'V', then if INFO = 0, the first M columns of Z  con‐
98               tain the orthonormal eigenvectors of the matrix A corresponding
99               to the selected eigenvalues, with the i-th column of Z  holding
100               the  eigenvector associated with W(i).  If an eigenvector fails
101               to converge, then that column of Z contains the latest approxi‐
102               mation  to the eigenvector, and the index of the eigenvector is
103               returned in IFAIL.  If JOBZ = 'N', then Z  is  not  referenced.
104               Note:  the  user must ensure that at least max(1,M) columns are
105               supplied in the array Z; if RANGE = 'V', the exact value  of  M
106               is not known in advance and an upper bound must be used.
107
108       LDZ     (input) INTEGER
109               The  leading dimension of the array Z.  LDZ >= 1, and if JOBZ =
110               'V', LDZ >= max(1,N).
111
112       WORK      (workspace/output)   DOUBLE   PRECISION   array,    dimension
113       (MAX(1,LWORK))
114               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
115
116       LWORK   (input) INTEGER
117               The  length of the array WORK.  LWORK >= 1, when N <= 1; other‐
118               wise 8*N.  For optimal efficiency, LWORK >= (NB+3)*N, where  NB
119               is  the  max of the blocksize for DSYTRD and DORMTR returned by
120               ILAENV.  If LWORK = -1, then a workspace query is assumed;  the
121               routine  only  calculates  the  optimal size of the WORK array,
122               returns this value as the first entry of the WORK array, and no
123               error message related to LWORK is issued by XERBLA.
124
125       IWORK   (workspace) INTEGER array, dimension (5*N)
126
127       IFAIL   (output) INTEGER array, dimension (N)
128               If  JOBZ = 'V', then if INFO = 0, the first M elements of IFAIL
129               are zero.  If INFO > 0, then IFAIL contains the indices of  the
130               eigenvectors  that  failed  to  converge.   If JOBZ = 'N', then
131               IFAIL is not referenced.
132
133       INFO    (output) INTEGER
134               = 0:  successful exit
135               < 0:  if INFO = -i, the i-th argument had an illegal value
136               > 0:  if INFO = i, then  i  eigenvectors  failed  to  converge.
137               Their indices are stored in array IFAIL.
138
139
140
141 LAPACK driver routine (version 3.N2o)vember 2008                       DSYEVX(1)
Impressum