1DSYEVD(1)             LAPACK driver routine (version 3.2)            DSYEVD(1)
2
3
4

NAME

6       DSYEVD  -  computes  all eigenvalues and, optionally, eigenvectors of a
7       real symmetric matrix A
8

SYNOPSIS

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

PURPOSE

22       DSYEVD computes all eigenvalues and, optionally, eigenvectors of a real
23       symmetric matrix A. If eigenvectors are desired, it uses a  divide  and
24       conquer algorithm.
25       The  divide  and  conquer  algorithm  makes very mild assumptions about
26       floating point arithmetic. It will work on machines with a guard  digit
27       in add/subtract, or on those binary machines without guard digits which
28       subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It  could
29       conceivably  fail on hexadecimal or decimal machines without guard dig‐
30       its, but we know of none.
31       Because of large use of  BLAS  of  level  3,  DSYEVD  needs  N**2  more
32       workspace than DSYEVX.
33

ARGUMENTS

35       JOBZ    (input) CHARACTER*1
36               = 'N':  Compute eigenvalues only;
37               = 'V':  Compute eigenvalues and eigenvectors.
38
39       UPLO    (input) CHARACTER*1
40               = 'U':  Upper triangle of A is stored;
41               = 'L':  Lower triangle of A is stored.
42
43       N       (input) INTEGER
44               The order of the matrix A.  N >= 0.
45
46       A       (input/output) DOUBLE PRECISION array, dimension (LDA, N)
47               On  entry,  the symmetric matrix A.  If UPLO = 'U', the leading
48               N-by-N upper triangular part of A contains the upper triangular
49               part  of the matrix A.  If UPLO = 'L', the leading N-by-N lower
50               triangular part of A contains the lower triangular part of  the
51               matrix A.  On exit, if JOBZ = 'V', then if INFO = 0, A contains
52               the orthonormal eigenvectors of the matrix A.  If JOBZ  =  'N',
53               then on exit the lower triangle (if UPLO='L') or the upper tri‐
54               angle (if UPLO='U') of A, including the diagonal, is destroyed.
55
56       LDA     (input) INTEGER
57               The leading dimension of the array A.  LDA >= max(1,N).
58
59       W       (output) DOUBLE PRECISION array, dimension (N)
60               If INFO = 0, the eigenvalues in ascending order.
61
62       WORK    (workspace/output) DOUBLE PRECISION array,
63               dimension (LWORK) On exit, if INFO =  0,  WORK(1)  returns  the
64               optimal LWORK.
65
66       LWORK   (input) INTEGER
67               The    dimension   of   the   array   WORK.    If   N   <=   1,
68               LWORK must be at least 1.  If JOBZ = 'N' and N > 1, LWORK  must
69               be  at  least 2*N+1.  If JOBZ = 'V' and N > 1, LWORK must be at
70               least 1 + 6*N + 2*N**2.  If LWORK = -1, then a workspace  query
71               is  assumed;  the  routine only calculates the optimal sizes of
72               the WORK and IWORK arrays, returns these values  as  the  first
73               entries  of  the  WORK  and  IWORK arrays, and no error message
74               related to LWORK or LIWORK is issued by XERBLA.
75
76       IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
77               On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
78
79       LIWORK  (input) INTEGER
80               The   dimension   of   the   array   IWORK.    If   N   <=   1,
81               LIWORK  must  be  at least 1.  If JOBZ  = 'N' and N > 1, LIWORK
82               must be at least 1.  If JOBZ  = 'V' and N > 1, LIWORK  must  be
83               at  least  3  + 5*N.  If LIWORK = -1, then a workspace query is
84               assumed; the routine only calculates the optimal sizes  of  the
85               WORK  and  IWORK  arrays,  returns  these  values  as the first
86               entries of the WORK and IWORK  arrays,  and  no  error  message
87               related to LWORK or LIWORK is issued by XERBLA.
88
89       INFO    (output) INTEGER
90               = 0:  successful exit
91               < 0:  if INFO = -i, the i-th argument had an illegal value
92               >  0:  if INFO = i and JOBZ = 'N', then the algorithm failed to
93               converge; i off-diagonal elements of an intermediate  tridiago‐
94               nal  form did not converge to zero; if INFO = i and JOBZ = 'V',
95               then the algorithm failed to compute an eigenvalue while  work‐
96               ing  on  the  submatrix  lying  in  rows and columns INFO/(N+1)
97               through mod(INFO,N+1).
98

FURTHER DETAILS

100       Based on contributions by
101          Jeff Rutter, Computer Science Division, University of California
102          at Berkeley, USA
103       Modified by Francoise Tisseur, University of Tennessee.
104       Modified description of INFO. Sven, 16 Feb 05.
105
106
107
108 LAPACK driver routine (version 3.N2o)vember 2008                       DSYEVD(1)
Impressum