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

NAME

6       SSYEVD  -  all eigenvalues and, optionally, eigenvectors of a real sym‐
7       metric matrix A
8

SYNOPSIS

10       SUBROUTINE SSYEVD( 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           REAL           A( LDA, * ), W( * ), WORK( * )
20

PURPOSE

22       SSYEVD 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
26       The  divide  and  conquer  algorithm  makes very mild assumptions about
27       floating point arithmetic. It will work on machines with a guard  digit
28       in add/subtract, or on those binary machines without guard digits which
29       subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It  could
30       conceivably  fail on hexadecimal or decimal machines without guard dig‐
31       its, but we know of none.
32
33       Because of large use of  BLAS  of  level  3,  SSYEVD  needs  N**2  more
34       workspace than SSYEVX.
35
36

ARGUMENTS

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

FURTHER DETAILS

107       Based on contributions by
108          Jeff Rutter, Computer Science Division, University of California
109          at Berkeley, USA
110       Modified by Francoise Tisseur, University of Tennessee.
111
112       Modified description of INFO. Sven, 16 Feb 05.
113
114
115
116 LAPACK driver routine (version 3.N1o)vember 2006                       SSYEVD(1)
Impressum