1CHBEVX(1) LAPACK driver routine (version 3.1) CHBEVX(1)
2
3
4
6 CHBEVX - selected eigenvalues and, optionally, eigenvectors of a com‐
7 plex Hermitian band matrix A
8
10 SUBROUTINE CHBEVX( 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 REAL ABSTOL, VL, VU
19
20 INTEGER IFAIL( * ), IWORK( * )
21
22 REAL RWORK( * ), W( * )
23
24 COMPLEX AB( LDAB, * ), Q( LDQ, * ), WORK( * ), Z( LDZ, * )
25
27 CHBEVX 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
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 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 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) REAL
79 VU (input) REAL If RANGE='V', the lower and upper bounds
80 of the interval to be searched for eigenvalues. VL < VU. Not
81 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) REAL
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*SLAMCH('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*SLAMCH('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) REAL array, dimension (N)
115 The first M elements contain the selected eigenvalues in
116 ascending order.
117
118 Z (output) COMPLEX 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 array, dimension (N)
135
136 RWORK (workspace) REAL 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 CHBEVX(1)