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

NAME

6       ZHPEVX - computes selected eigenvalues and, optionally, eigenvectors of
7       a complex Hermitian matrix A in packed storage
8

SYNOPSIS

10       SUBROUTINE ZHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ABSTOL, M,
11                          W, Z, LDZ, WORK, RWORK, 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 RWORK( * ), W( * )
22
23           COMPLEX*16     AP( * ), WORK( * ), Z( LDZ, * )
24

PURPOSE

26       ZHPEVX computes selected eigenvalues and, optionally, eigenvectors of a
27       complex Hermitian matrix A in packed storage.  Eigenvalues/vectors  can
28       be  selected  by  specifying  either  a  range  of values or a range of
29       indices for the 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       AP      (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
50               On entry, the upper or lower triangle of the  Hermitian  matrix
51               A,  packed  columnwise in a linear array.  The j-th column of A
52               is stored in the array AP as follows: if UPLO  =  'U',  AP(i  +
53               (j-1)*j/2)  =  A(i,j)  for  1<=i<=j;  if  UPLO  =  'L',  AP(i +
54               (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.  On exit,  AP  is  over‐
55               written by values generated during the reduction to tridiagonal
56               form.  If UPLO = 'U', the diagonal and first  superdiagonal  of
57               the  tridiagonal  matrix T overwrite the corresponding elements
58               of A, and if UPLO = 'L', the diagonal and first subdiagonal  of
59               T overwrite the corresponding elements of A.
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 AP 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               If INFO = 0, the selected eigenvalues in ascending order.
94
95       Z       (output) COMPLEX*16 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) COMPLEX*16 array, dimension (2*N)
112
113       RWORK   (workspace) DOUBLE PRECISION array, dimension (7*N)
114
115       IWORK   (workspace) INTEGER array, dimension (5*N)
116
117       IFAIL   (output) INTEGER array, dimension (N)
118               If JOBZ = 'V', then if INFO = 0, the first M elements of  IFAIL
119               are  zero.  If INFO > 0, then IFAIL contains the indices of the
120               eigenvectors that failed to converge.   If  JOBZ  =  'N',  then
121               IFAIL is not referenced.
122
123       INFO    (output) INTEGER
124               = 0:  successful exit
125               < 0:  if INFO = -i, the i-th argument had an illegal value
126               >  0:   if  INFO  =  i, then i eigenvectors failed to converge.
127               Their indices are stored in array IFAIL.
128
129
130
131 LAPACK driver routine (version 3.N2o)vember 2008                       ZHPEVX(1)
Impressum