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

NAME

6       DSPEVX  -  selected eigenvalues and, optionally, eigenvectors of a real
7       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
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       AP      (input/output) DOUBLE PRECISION array, dimension (N*(N+1)/2)
49               On entry, the upper or lower triangle of the  symmetric  matrix
50               A,  packed  columnwise in a linear array.  The j-th column of A
51               is stored in the array AP as follows: if UPLO  =  'U',  AP(i  +
52               (j-1)*j/2)  =  A(i,j)  for  1<=i<=j;  if  UPLO  =  'L',  AP(i +
53               (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
54
55               On exit, AP is  overwritten  by  values  generated  during  the
56               reduction to tridiagonal form.  If UPLO = 'U', the diagonal and
57               first superdiagonal of the tridiagonal matrix T  overwrite  the
58               corresponding  elements  of  A, and if UPLO = 'L', the diagonal
59               and first subdiagonal of T overwrite the corresponding elements
60               of A.
61
62       VL      (input) DOUBLE PRECISION
63               VU       (input)  DOUBLE  PRECISION If RANGE='V', the lower and
64               upper bounds of the interval to be searched for eigenvalues. VL
65               < VU.  Not referenced if RANGE = 'A' or 'I'.
66
67       IL      (input) INTEGER
68               IU      (input) INTEGER If RANGE='I', the indices (in ascending
69               order) of the smallest and largest eigenvalues to be  returned.
70               1  <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.  Not
71               referenced if RANGE = 'A' or 'V'.
72
73       ABSTOL  (input) DOUBLE PRECISION
74               The absolute error tolerance for the eigenvalues.  An  approxi‐
75               mate  eigenvalue is accepted as converged when it is determined
76               to lie in an interval [a,b] of width less than or equal to
77
78               ABSTOL + EPS *   max( |a|,|b| ) ,
79
80               where EPS is the machine precision.  If ABSTOL is less than  or
81               equal  to zero, then  EPS*|T|  will be used in its place, where
82               |T| is the 1-norm of the tridiagonal matrix obtained by  reduc‐
83               ing AP to tridiagonal form.
84
85               Eigenvalues will be computed most accurately when ABSTOL is set
86               to twice the underflow threshold 2*DLAMCH('S'), not  zero.   If
87               this  routine  returns with INFO>0, indicating that some eigen‐
88               vectors did not converge, try setting ABSTOL to 2*DLAMCH('S').
89
90               See "Computing Small Singular  Values  of  Bidiagonal  Matrices
91               with  Guaranteed  High Relative Accuracy," by Demmel and Kahan,
92               LAPACK Working Note #3.
93
94       M       (output) INTEGER
95               The total number of eigenvalues found.  0 <= M <= N.  If  RANGE
96               = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
97
98       W       (output) DOUBLE PRECISION array, dimension (N)
99               If INFO = 0, the selected eigenvalues in ascending order.
100
101       Z       (output) DOUBLE PRECISION 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) DOUBLE PRECISION array, dimension (8*N)
118
119       IWORK   (workspace) INTEGER array, dimension (5*N)
120
121       IFAIL   (output) INTEGER array, dimension (N)
122               If  JOBZ = 'V', then if INFO = 0, the first M elements of IFAIL
123               are zero.  If INFO > 0, then IFAIL contains the indices of  the
124               eigenvectors  that  failed  to  converge.   If JOBZ = 'N', then
125               IFAIL is not referenced.
126
127       INFO    (output) INTEGER
128               = 0:  successful exit
129               < 0:  if INFO = -i, the i-th argument had an illegal value
130               > 0:  if INFO = i, then  i  eigenvectors  failed  to  converge.
131               Their indices are stored in array IFAIL.
132
133
134
135 LAPACK driver routine (version 3.N1o)vember 2006                       DSPEVX(1)
Impressum