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

NAME

6       DSPEVD  - computes all the eigenvalues and, optionally, eigenvectors of
7       a real 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       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

ARGUMENTS

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