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

NAME

6       CHBEVD - all the eigenvalues and, optionally, eigenvectors of a complex
7       Hermitian band matrix A
8

SYNOPSIS

10       SUBROUTINE CHBEVD( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, LWORK,
11                          RWORK, LRWORK, IWORK, LIWORK, INFO )
12
13           CHARACTER      JOBZ, UPLO
14
15           INTEGER        INFO, KD, LDAB, LDZ, LIWORK, LRWORK, LWORK, N
16
17           INTEGER        IWORK( * )
18
19           REAL           RWORK( * ), W( * )
20
21           COMPLEX        AB( LDAB, * ), WORK( * ), Z( LDZ, * )
22

PURPOSE

24       CHBEVD  computes all the eigenvalues and, optionally, eigenvectors of a
25       complex Hermitian band matrix A.  If eigenvectors are desired, it  uses
26       a divide and conquer algorithm.
27
28       The  divide  and  conquer  algorithm  makes very mild assumptions about
29       floating point arithmetic. It will work on machines with a guard  digit
30       in add/subtract, or on those binary machines without guard digits which
31       subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It  could
32       conceivably  fail on hexadecimal or decimal machines without guard dig‐
33       its, but we know of none.
34
35

ARGUMENTS

37       JOBZ    (input) CHARACTER*1
38               = 'N':  Compute eigenvalues only;
39               = 'V':  Compute eigenvalues and eigenvectors.
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       KD      (input) INTEGER
49               The number of superdiagonals of the matrix A if UPLO = 'U',  or
50               the number of subdiagonals if UPLO = 'L'.  KD >= 0.
51
52       AB      (input/output) COMPLEX array, dimension (LDAB, N)
53               On  entry,  the  upper  or lower triangle of the Hermitian band
54               matrix A, stored in the first KD+1 rows of the array.  The j-th
55               column  of  A  is  stored in the j-th column of the array AB as
56               follows: if UPLO = 'U', AB(kd+1+i-j,j) =  A(i,j)  for  max(1,j-
57               kd)<=i<=j;   if   UPLO  =  'L',  AB(1+i-j,j)     =  A(i,j)  for
58               j<=i<=min(n,j+kd).
59
60               On exit, AB is  overwritten  by  values  generated  during  the
61               reduction to tridiagonal form.  If UPLO = 'U', the first super‐
62               diagonal and the diagonal  of  the  tridiagonal  matrix  T  are
63               returned  in  rows  KD  and  KD+1 of AB, and if UPLO = 'L', the
64               diagonal and first subdiagonal of T are returned in  the  first
65               two rows of AB.
66
67       LDAB    (input) INTEGER
68               The leading dimension of the array AB.  LDAB >= KD + 1.
69
70       W       (output) REAL array, dimension (N)
71               If INFO = 0, the eigenvalues in ascending order.
72
73       Z       (output) COMPLEX array, dimension (LDZ, N)
74               If  JOBZ  =  'V',  then if INFO = 0, Z contains the orthonormal
75               eigenvectors of the matrix A, with the i-th column of Z holding
76               the eigenvector associated with W(i).  If JOBZ = 'N', then Z is
77               not referenced.
78
79       LDZ     (input) INTEGER
80               The leading dimension of the array Z.  LDZ >= 1, and if JOBZ  =
81               'V', LDZ >= max(1,N).
82
83       WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
84               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
85
86       LWORK   (input) INTEGER
87               The    dimension   of   the   array   WORK.    If   N   <=   1,
88               LWORK must be at least 1.  If JOBZ = 'N' and N > 1, LWORK  must
89               be at least N.  If JOBZ = 'V' and N > 1, LWORK must be at least
90               2*N**2.
91
92               If LWORK = -1, then a workspace query is assumed;  the  routine
93               only  calculates the optimal sizes of the WORK, RWORK and IWORK
94               arrays, returns these values as the first entries of the  WORK,
95               RWORK  and  IWORK arrays, and no error message related to LWORK
96               or LRWORK or LIWORK is issued by XERBLA.
97
98       RWORK   (workspace/output) REAL array,
99               dimension (LRWORK) On exit, if INFO = 0, RWORK(1)  returns  the
100               optimal LRWORK.
101
102       LRWORK  (input) INTEGER
103               The  dimension of array RWORK.  If N <= 1,               LRWORK
104               must be at least 1.  If JOBZ = 'N' and N > 1, LRWORK must be at
105               least  N.  If JOBZ = 'V' and N > 1, LRWORK must be at least 1 +
106               5*N + 2*N**2.
107
108               If LRWORK = -1, then a workspace query is assumed; the  routine
109               only  calculates the optimal sizes of the WORK, RWORK and IWORK
110               arrays, returns these values as the first entries of the  WORK,
111               RWORK  and  IWORK arrays, and no error message related to LWORK
112               or LRWORK or LIWORK is issued by XERBLA.
113
114       IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
115               On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
116
117       LIWORK  (input) INTEGER
118               The dimension of array IWORK.  If JOBZ = 'N' or N <= 1,  LIWORK
119               must be at least 1.  If JOBZ = 'V' and N > 1, LIWORK must be at
120               least 3 + 5*N .
121
122               If LIWORK = -1, then a workspace query is assumed; the  routine
123               only  calculates the optimal sizes of the WORK, RWORK and IWORK
124               arrays, returns these values as the first entries of the  WORK,
125               RWORK  and  IWORK arrays, and no error message related to LWORK
126               or LRWORK or LIWORK is issued by XERBLA.
127
128       INFO    (output) INTEGER
129               = 0:  successful exit.
130               < 0:  if INFO = -i, the i-th argument had an illegal value.
131               > 0:  if INFO = i, the algorithm failed  to  converge;  i  off-
132               diagonal  elements  of an intermediate tridiagonal form did not
133               converge to zero.
134
135
136
137 LAPACK driver routine (version 3.N1o)vember 2006                       CHBEVD(1)
Impressum