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

NAME

6       CHBGVX  -  all  the  eigenvalues, and optionally, the eigenvectors of a
7       complex generalized Hermitian-definite banded eigenproblem, of the form
8       A*x=(lambda)*B*x
9

SYNOPSIS

11       SUBROUTINE CHBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, Q,
12                          LDQ, VL, VU, IL, IU, ABSTOL, M,  W,  Z,  LDZ,  WORK,
13                          RWORK, IWORK, IFAIL, INFO )
14
15           CHARACTER      JOBZ, RANGE, UPLO
16
17           INTEGER        IL, INFO, IU, KA, KB, LDAB, LDBB, LDQ, LDZ, M, N
18
19           REAL           ABSTOL, VL, VU
20
21           INTEGER        IFAIL( * ), IWORK( * )
22
23           REAL           RWORK( * ), W( * )
24
25           COMPLEX        AB(  LDAB,  * ), BB( LDBB, * ), Q( LDQ, * ), WORK( *
26                          ), Z( LDZ, * )
27

PURPOSE

29       CHBGVX computes all the eigenvalues, and optionally,  the  eigenvectors
30       of a complex generalized Hermitian-definite banded eigenproblem, of the
31       form A*x=(lambda)*B*x. Here A and B are assumed  to  be  Hermitian  and
32       banded,  and B is also positive definite.  Eigenvalues and eigenvectors
33       can be selected by specifying either all eigenvalues, a range of values
34       or a range of indices for the desired eigenvalues.
35
36

ARGUMENTS

38       JOBZ    (input) CHARACTER*1
39               = 'N':  Compute eigenvalues only;
40               = 'V':  Compute eigenvalues and eigenvectors.
41
42       RANGE   (input) CHARACTER*1
43               = 'A': all eigenvalues will be found;
44               =  'V':  all eigenvalues in the half-open interval (VL,VU] will
45               be found; = 'I': the IL-th through IU-th  eigenvalues  will  be
46               found.
47
48       UPLO    (input) CHARACTER*1
49               = 'U':  Upper triangles of A and B are stored;
50               = 'L':  Lower triangles of A and B are stored.
51
52       N       (input) INTEGER
53               The order of the matrices A and B.  N >= 0.
54
55       KA      (input) INTEGER
56               The  number of superdiagonals of the matrix A if UPLO = 'U', or
57               the number of subdiagonals if UPLO = 'L'. KA >= 0.
58
59       KB      (input) INTEGER
60               The number of superdiagonals of the matrix B if UPLO = 'U',  or
61               the number of subdiagonals if UPLO = 'L'. KB >= 0.
62
63       AB      (input/output) COMPLEX array, dimension (LDAB, N)
64               On  entry,  the  upper  or lower triangle of the Hermitian band
65               matrix A, stored in the first ka+1 rows of the array.  The j-th
66               column  of  A  is  stored in the j-th column of the array AB as
67               follows: if UPLO = 'U', AB(ka+1+i-j,j) =  A(i,j)  for  max(1,j-
68               ka)<=i<=j;   if   UPLO  =  'L',  AB(1+i-j,j)     =  A(i,j)  for
69               j<=i<=min(n,j+ka).
70
71               On exit, the contents of AB are destroyed.
72
73       LDAB    (input) INTEGER
74               The leading dimension of the array AB.  LDAB >= KA+1.
75
76       BB      (input/output) COMPLEX array, dimension (LDBB, N)
77               On entry, the upper or lower triangle  of  the  Hermitian  band
78               matrix B, stored in the first kb+1 rows of the array.  The j-th
79               column of B is stored in the j-th column of  the  array  BB  as
80               follows:  if  UPLO  = 'U', BB(kb+1+i-j,j) = B(i,j) for max(1,j-
81               kb)<=i<=j;  if  UPLO  =  'L',  BB(1+i-j,j)     =   B(i,j)   for
82               j<=i<=min(n,j+kb).
83
84               On exit, the factor S from the split Cholesky factorization B =
85               S**H*S, as returned by CPBSTF.
86
87       LDBB    (input) INTEGER
88               The leading dimension of the array BB.  LDBB >= KB+1.
89
90       Q       (output) COMPLEX array, dimension (LDQ, N)
91               If JOBZ = 'V', the n-by-n matrix used in the reduction of A*x =
92               (lambda)*B*x  to standard form, i.e. C*x = (lambda)*x, and con‐
93               sequently C to tridiagonal form.  If JOBZ = 'N', the array Q is
94               not referenced.
95
96       LDQ     (input) INTEGER
97               The leading dimension of the array Q.  If JOBZ = 'N', LDQ >= 1.
98               If JOBZ = 'V', LDQ >= max(1,N).
99
100       VL      (input) REAL
101               VU      (input) REAL If RANGE='V', the lower and  upper  bounds
102               of  the  interval to be searched for eigenvalues. VL < VU.  Not
103               referenced if RANGE = 'A' or 'I'.
104
105       IL      (input) INTEGER
106               IU      (input) INTEGER If RANGE='I', the indices (in ascending
107               order)  of the smallest and largest eigenvalues to be returned.
108               1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.   Not
109               referenced if RANGE = 'A' or 'V'.
110
111       ABSTOL  (input) REAL
112               The  absolute error tolerance for the eigenvalues.  An approxi‐
113               mate eigenvalue is accepted as converged when it is  determined
114               to lie in an interval [a,b] of width less than or equal to
115
116               ABSTOL + EPS *   max( |a|,|b| ) ,
117
118               where  EPS is the machine precision.  If ABSTOL is less than or
119               equal to zero, then  EPS*|T|  will be used in its place,  where
120               |T|  is the 1-norm of the tridiagonal matrix obtained by reduc‐
121               ing AP to tridiagonal form.
122
123               Eigenvalues will be computed most accurately when ABSTOL is set
124               to  twice  the underflow threshold 2*SLAMCH('S'), not zero.  If
125               this routine returns with INFO>0, indicating that  some  eigen‐
126               vectors did not converge, try setting ABSTOL to 2*SLAMCH('S').
127
128       M       (output) INTEGER
129               The  total number of eigenvalues found.  0 <= M <= N.  If RANGE
130               = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
131
132       W       (output) REAL array, dimension (N)
133               If INFO = 0, the eigenvalues in ascending order.
134
135       Z       (output) COMPLEX array, dimension (LDZ, N)
136               If JOBZ = 'V', then if INFO = 0, Z contains  the  matrix  Z  of
137               eigenvectors, with the i-th column of Z holding the eigenvector
138               associated with W(i). The eigenvectors are normalized  so  that
139               Z**H*B*Z = I.  If JOBZ = 'N', then Z is not referenced.
140
141       LDZ     (input) INTEGER
142               The  leading dimension of the array Z.  LDZ >= 1, and if JOBZ =
143               'V', LDZ >= N.
144
145       WORK    (workspace) COMPLEX array, dimension (N)
146
147       RWORK   (workspace) REAL array, dimension (7*N)
148
149       IWORK   (workspace) INTEGER array, dimension (5*N)
150
151       IFAIL   (output) INTEGER array, dimension (N)
152               If JOBZ = 'V', then if INFO = 0, the first M elements of  IFAIL
153               are  zero.  If INFO > 0, then IFAIL contains the indices of the
154               eigenvectors that failed to converge.   If  JOBZ  =  'N',  then
155               IFAIL is not referenced.
156
157       INFO    (output) INTEGER
158               = 0:  successful exit
159               < 0:  if INFO = -i, the i-th argument had an illegal value
160               > 0:  if INFO = i, and i is:
161               <=  N:   then i eigenvectors failed to converge.  Their indices
162               are stored in array IFAIL.  > N:   if INFO = N + i, for 1 <=  i
163               <= N, then CPBSTF
164               returned  INFO = i: B is not positive definite.  The factoriza‐
165               tion of B could not be completed and no eigenvalues  or  eigen‐
166               vectors were computed.
167

FURTHER DETAILS

169       Based on contributions by
170          Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
171
172
173
174
175 LAPACK driver routine (version 3.N1o)vember 2006                       CHBGVX(1)
Impressum