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

NAME

6       ZHBEVX  -  selected eigenvalues and, optionally, eigenvectors of a com‐
7       plex Hermitian band matrix A
8

SYNOPSIS

10       SUBROUTINE ZHBEVX( JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, VL,  VU,
11                          IL,  IU,  ABSTOL,  M, W, Z, LDZ, WORK, RWORK, IWORK,
12                          IFAIL, INFO )
13
14           CHARACTER      JOBZ, RANGE, UPLO
15
16           INTEGER        IL, INFO, IU, KD, LDAB, LDQ, LDZ, M, N
17
18           DOUBLE         PRECISION ABSTOL, VL, VU
19
20           INTEGER        IFAIL( * ), IWORK( * )
21
22           DOUBLE         PRECISION RWORK( * ), W( * )
23
24           COMPLEX*16     AB( LDAB, * ), Q( LDQ, * ), WORK( * ), Z( LDZ, * )
25

PURPOSE

27       ZHBEVX computes selected eigenvalues and, optionally, eigenvectors of a
28       complex  Hermitian  band matrix A.  Eigenvalues and eigenvectors can be
29       selected by specifying either a range of values or a range  of  indices
30       for the desired eigenvalues.
31
32

ARGUMENTS

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