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

NAME

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

SYNOPSIS

10       SUBROUTINE SSPEVD( 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           REAL           AP( * ), W( * ), WORK( * ), Z( LDZ, * )
20

PURPOSE

22       SSPEVD  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) REAL 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) REAL array, dimension (N)
57               If INFO = 0, the eigenvalues in ascending order.
58
59       Z       (output) REAL 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) REAL array, dimension (MAX(1,LWORK))
70               On exit, if INFO = 0, WORK(1) returns the required LWORK.
71
72       LWORK   (input) INTEGER
73               The    dimension   of   the   array   WORK.    If   N   <=   1,
74               LWORK must be at least 1.  If JOBZ = 'N' and N > 1, LWORK  must
75               be  at  least  2*N.   If JOBZ = 'V' and N > 1, LWORK must be at
76               least 1 + 6*N + N**2.  If LWORK = -1, then a workspace query is
77               assumed;  the routine only calculates the required sizes of the
78               WORK and IWORK  arrays,  returns  these  values  as  the  first
79               entries  of  the  WORK  and  IWORK arrays, and no error message
80               related to LWORK or LIWORK is issued by XERBLA.
81
82       IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
83               On exit, if INFO = 0, IWORK(1) returns the required LIWORK.
84
85       LIWORK  (input) INTEGER
86               The dimension of the array IWORK.  If JOBZ  = 'N' or  N  <=  1,
87               LIWORK  must  be  at least 1.  If JOBZ  = 'V' and N > 1, LIWORK
88               must be at least 3 + 5*N.  If LIWORK =  -1,  then  a  workspace
89               query  is  assumed;  the  routine  only calculates the required
90               sizes of the WORK and IWORK arrays, returns these values as the
91               first  entries  of the WORK and IWORK arrays, and no error mes‐
92               sage related to LWORK or LIWORK is issued by XERBLA.
93
94       INFO    (output) INTEGER
95               = 0:  successful exit
96               < 0:  if INFO = -i, the i-th argument had an illegal value.
97               > 0:  if INFO = i, the algorithm failed  to  converge;  i  off-
98               diagonal  elements  of an intermediate tridiagonal form did not
99               converge to zero.
100
101
102
103 LAPACK driver routine (version 3.N2o)vember 2008                       SSPEVD(1)
Impressum