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

NAME

6       DSPEVX - computes selected eigenvalues and, optionally, eigenvectors of
7       a real symmetric matrix A in packed storage
8

SYNOPSIS

10       SUBROUTINE DSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ABSTOL, M,
11                          W, Z, LDZ, WORK, IWORK, IFAIL, INFO )
12
13           CHARACTER      JOBZ, RANGE, UPLO
14
15           INTEGER        IL, INFO, IU, LDZ, M, N
16
17           DOUBLE         PRECISION ABSTOL, VL, VU
18
19           INTEGER        IFAIL( * ), IWORK( * )
20
21           DOUBLE         PRECISION AP( * ), W( * ), WORK( * ), Z( LDZ, * )
22

PURPOSE

24       DSPEVX computes selected eigenvalues and, optionally, eigenvectors of a
25       real symmetric matrix A in packed storage.  Eigenvalues/vectors can  be
26       selected  by  specifying either a range of values or a range of indices
27       for the desired eigenvalues.
28

ARGUMENTS

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