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

NAME

6       DSPEVD  -  all  the eigenvalues and, optionally, eigenvectors of a real
7       symmetric matrix A in packed storage
8

SYNOPSIS

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

PURPOSE

22       DSPEVD  computes all the eigenvalues and, optionally, eigenvectors of a
23       real symmetric matrix A in packed storage. If eigenvectors are desired,
24       it uses a divide and 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

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       AP      (input/output) DOUBLE PRECISION array, dimension (N*(N+1)/2)
47               On entry, the upper or lower triangle of the  symmetric  matrix
48               A,  packed  columnwise in a linear array.  The j-th column of A
49               is stored in the array AP as follows: if UPLO  =  'U',  AP(i  +
50               (j-1)*j/2)  =  A(i,j)  for  1<=i<=j;  if  UPLO  =  'L',  AP(i +
51               (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
52
53               On exit, AP is  overwritten  by  values  generated  during  the
54               reduction to tridiagonal form.  If UPLO = 'U', the diagonal and
55               first superdiagonal of the tridiagonal matrix T  overwrite  the
56               corresponding  elements  of  A, and if UPLO = 'L', the diagonal
57               and first subdiagonal of T overwrite the corresponding elements
58               of A.
59
60       W       (output) DOUBLE PRECISION array, dimension (N)
61               If INFO = 0, the eigenvalues in ascending order.
62
63       Z       (output) DOUBLE PRECISION array, dimension (LDZ, N)
64               If  JOBZ  =  'V',  then if INFO = 0, Z contains the orthonormal
65               eigenvectors of the matrix A, with the i-th column of Z holding
66               the eigenvector associated with W(i).  If JOBZ = 'N', then Z is
67               not referenced.
68
69       LDZ     (input) INTEGER
70               The leading dimension of the array Z.  LDZ >= 1, and if JOBZ  =
71               'V', LDZ >= max(1,N).
72
73       WORK    (workspace/output) DOUBLE PRECISION array,
74               dimension  (LWORK)  On  exit,  if INFO = 0, WORK(1) returns the
75               required LWORK.
76
77       LWORK   (input) INTEGER
78               The   dimension   of   the   array   WORK.    If   N   <=    1,
79               LWORK  must be at least 1.  If JOBZ = 'N' and N > 1, LWORK must
80               be at least 2*N.  If JOBZ = 'V' and N > 1,  LWORK  must  be  at
81               least 1 + 6*N + N**2.
82
83               If  LWORK  = -1, then a workspace query is assumed; the routine
84               only calculates the  required  sizes  of  the  WORK  and  IWORK
85               arrays,  returns  these values as the first entries of the WORK
86               and IWORK arrays, and no error  message  related  to  LWORK  or
87               LIWORK is issued by XERBLA.
88
89       IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
90               On exit, if INFO = 0, IWORK(1) returns the required LIWORK.
91
92       LIWORK  (input) INTEGER
93               The  dimension  of  the array IWORK.  If JOBZ  = 'N' or N <= 1,
94               LIWORK must be at least 1.  If JOBZ  = 'V' and N  >  1,  LIWORK
95               must be at least 3 + 5*N.
96
97               If  LIWORK = -1, then a workspace query is assumed; the routine
98               only calculates the  required  sizes  of  the  WORK  and  IWORK
99               arrays,  returns  these values as the first entries of the WORK
100               and IWORK arrays, and no error  message  related  to  LWORK  or
101               LIWORK is issued by XERBLA.
102
103       INFO    (output) INTEGER
104               = 0:  successful exit
105               < 0:  if INFO = -i, the i-th argument had an illegal value.
106               >  0:   if  INFO  = i, the algorithm failed to converge; i off-
107               diagonal elements of an intermediate tridiagonal form  did  not
108               converge to zero.
109
110
111
112 LAPACK driver routine (version 3.N1o)vember 2006                       DSPEVD(1)
Impressum