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

NAME

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

SYNOPSIS

10       SUBROUTINE ZHEEVD( JOBZ, UPLO,  N,  A,  LDA,  W,  WORK,  LWORK,  RWORK,
11                          LRWORK, IWORK, LIWORK, INFO )
12
13           CHARACTER      JOBZ, UPLO
14
15           INTEGER        INFO, LDA, LIWORK, LRWORK, LWORK, N
16
17           INTEGER        IWORK( * )
18
19           DOUBLE         PRECISION RWORK( * ), W( * )
20
21           COMPLEX*16     A( LDA, * ), WORK( * )
22

PURPOSE

24       ZHEEVD computes all eigenvalues and, optionally, eigenvectors of a com‐
25       plex Hermitian matrix A.  If eigenvectors are desired, it uses a divide
26       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       A       (input/output) COMPLEX*16 array, dimension (LDA, N)
49               On entry, the Hermitian matrix A.  If UPLO = 'U',  the  leading
50               N-by-N upper triangular part of A contains the upper triangular
51               part of the matrix A.  If UPLO = 'L', the leading N-by-N  lower
52               triangular  part of A contains the lower triangular part of the
53               matrix A.  On exit, if JOBZ = 'V', then if INFO = 0, A contains
54               the  orthonormal  eigenvectors of the matrix A.  If JOBZ = 'N',
55               then on exit the lower triangle (if UPLO='L') or the upper tri‐
56               angle (if UPLO='U') of A, including the diagonal, is destroyed.
57
58       LDA     (input) INTEGER
59               The leading dimension of the array A.  LDA >= max(1,N).
60
61       W       (output) DOUBLE PRECISION array, dimension (N)
62               If INFO = 0, the eigenvalues in ascending order.
63
64       WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
65               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
66
67       LWORK   (input) INTEGER
68               The  length of the array WORK.  If N <= 1,                LWORK
69               must be at least 1.  If JOBZ  = 'N' and N > 1, LWORK must be at
70               least  N + 1.  If JOBZ  = 'V' and N > 1, LWORK must be at least
71               2*N + N**2.
72
73               If LWORK = -1, then a workspace query is assumed;  the  routine
74               only  calculates the optimal sizes of the WORK, RWORK and IWORK
75               arrays, returns these values as the first entries of the  WORK,
76               RWORK  and  IWORK arrays, and no error message related to LWORK
77               or LRWORK or LIWORK is issued by XERBLA.
78
79       RWORK   (workspace/output) DOUBLE PRECISION array,
80               dimension (LRWORK) On exit, if INFO = 0, RWORK(1)  returns  the
81               optimal LRWORK.
82
83       LRWORK  (input) INTEGER
84               The   dimension   of   the   array   RWORK.    If   N   <=   1,
85               LRWORK must be at least 1.  If JOBZ  = 'N' and N  >  1,  LRWORK
86               must  be  at least N.  If JOBZ  = 'V' and N > 1, LRWORK must be
87               at least 1 + 5*N + 2*N**2.
88
89               If LRWORK = -1, then a workspace query is assumed; the  routine
90               only  calculates the optimal sizes of the WORK, RWORK and IWORK
91               arrays, returns these values as the first entries of the  WORK,
92               RWORK  and  IWORK arrays, and no error message related to LWORK
93               or LRWORK or LIWORK is issued by XERBLA.
94
95       IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
96               On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
97
98       LIWORK  (input) INTEGER
99               The   dimension   of   the   array   IWORK.    If   N   <=   1,
100               LIWORK  must  be  at least 1.  If JOBZ  = 'N' and N > 1, LIWORK
101               must be at least 1.  If JOBZ  = 'V' and N > 1, LIWORK  must  be
102               at least 3 + 5*N.
103
104               If  LIWORK = -1, then a workspace query is assumed; the routine
105               only calculates the optimal sizes of the WORK, RWORK and  IWORK
106               arrays,  returns these values as the first entries of the WORK,
107               RWORK and IWORK arrays, and no error message related  to  LWORK
108               or LRWORK or LIWORK is issued by XERBLA.
109
110       INFO    (output) INTEGER
111               = 0:  successful exit
112               < 0:  if INFO = -i, the i-th argument had an illegal value
113               >  0:  if INFO = i and JOBZ = 'N', then the algorithm failed to
114               converge; i off-diagonal elements of an intermediate  tridiago‐
115               nal  form did not converge to zero; if INFO = i and JOBZ = 'V',
116               then the algorithm failed to compute an eigenvalue while  work‐
117               ing  on  the  submatrix  lying  in  rows and columns INFO/(N+1)
118               through mod(INFO,N+1).
119

FURTHER DETAILS

121       Based on contributions by
122          Jeff Rutter, Computer Science Division, University of California
123          at Berkeley, USA
124
125       Modified description of INFO. Sven, 16 Feb 05.
126
127
128
129 LAPACK driver routine (version 3.N1o)vember 2006                       ZHEEVD(1)
Impressum