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

NAME

6       SSPGVD - computes all the eigenvalues, and optionally, the eigenvectors
7       of a real generalized  symmetric-definite  eigenproblem,  of  the  form
8       A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x
9

SYNOPSIS

11       SUBROUTINE SSPGVD( ITYPE,  JOBZ,  UPLO,  N,  AP,  BP,  W, Z, LDZ, WORK,
12                          LWORK, IWORK, LIWORK, INFO )
13
14           CHARACTER      JOBZ, UPLO
15
16           INTEGER        INFO, ITYPE, LDZ, LIWORK, LWORK, N
17
18           INTEGER        IWORK( * )
19
20           REAL           AP( * ), BP( * ), W( * ), WORK( * ), Z( LDZ, * )
21

PURPOSE

23       SSPGVD computes all the eigenvalues, and optionally,  the  eigenvectors
24       of  a  real  generalized  symmetric-definite  eigenproblem, of the form
25       A*x=(lambda)*B*x,  A*Bx=(lambda)*x,  or B*A*x=(lambda)*x.  Here A and B
26       are  assumed  to  be  symmetric, stored in packed format, and B is also
27       positive definite.
28       If eigenvectors are desired, it uses a divide  and  conquer  algorithm.
29       The  divide  and  conquer  algorithm  makes very mild assumptions about
30       floating point arithmetic. It will work on machines with a guard  digit
31       in add/subtract, or on those binary machines without guard digits which
32       subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It  could
33       conceivably  fail on hexadecimal or decimal machines without guard dig‐
34       its, but we know of none.
35

ARGUMENTS

37       ITYPE   (input) INTEGER
38               Specifies the problem type to be solved:
39               = 1:  A*x = (lambda)*B*x
40               = 2:  A*B*x = (lambda)*x
41               = 3:  B*A*x = (lambda)*x
42
43       JOBZ    (input) CHARACTER*1
44               = 'N':  Compute eigenvalues only;
45               = 'V':  Compute eigenvalues and eigenvectors.
46
47       UPLO    (input) CHARACTER*1
48               = 'U':  Upper triangles of A and B are stored;
49               = 'L':  Lower triangles of A and B are stored.
50
51       N       (input) INTEGER
52               The order of the matrices A and B.  N >= 0.
53
54       AP      (input/output) REAL array, dimension (N*(N+1)/2)
55               On entry, the upper or lower triangle of the  symmetric  matrix
56               A,  packed  columnwise in a linear array.  The j-th column of A
57               is stored in the array AP as follows: if UPLO  =  'U',  AP(i  +
58               (j-1)*j/2)  =  A(i,j)  for  1<=i<=j;  if  UPLO  =  'L',  AP(i +
59               (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.  On exit,  the  contents
60               of AP are destroyed.
61
62       BP      (input/output) REAL array, dimension (N*(N+1)/2)
63               On  entry,  the upper or lower triangle of the symmetric matrix
64               B, packed columnwise in a linear array.  The j-th column  of  B
65               is  stored  in  the  array BP as follows: if UPLO = 'U', BP(i +
66               (j-1)*j/2) =  B(i,j)  for  1<=i<=j;  if  UPLO  =  'L',  BP(i  +
67               (j-1)*(2*n-j)/2) = B(i,j) for j<=i<=n.  On exit, the triangular
68               factor U or L from the Cholesky factorization B = U**T*U or B =
69               L*L**T, in the same storage format as B.
70
71       W       (output) REAL array, dimension (N)
72               If INFO = 0, the eigenvalues in ascending order.
73
74       Z       (output) REAL array, dimension (LDZ, N)
75               If  JOBZ  =  'V',  then if INFO = 0, Z contains the matrix Z of
76               eigenvectors.  The eigenvectors are normalized as  follows:  if
77               ITYPE  = 1 or 2, Z**T*B*Z = I; if ITYPE = 3, Z**T*inv(B)*Z = I.
78               If JOBZ = 'N', then Z is not referenced.
79
80       LDZ     (input) INTEGER
81               The leading dimension of the array Z.  LDZ >= 1, and if JOBZ  =
82               'V', LDZ >= max(1,N).
83
84       WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
85               On exit, if INFO = 0, WORK(1) returns the required LWORK.
86
87       LWORK   (input) INTEGER
88               The    dimension   of   the   array   WORK.    If   N   <=   1,
89               LWORK >= 1.  If JOBZ = 'N' and N > 1, LWORK >= 2*N.  If JOBZ  =
90               'V'  and N > 1, LWORK >= 1 + 6*N + 2*N**2.  If LWORK = -1, then
91               a workspace query is assumed; the routine only  calculates  the
92               required sizes of the WORK and IWORK arrays, returns these val‐
93               ues as the first entries of the WORK and IWORK arrays,  and  no
94               error message related to LWORK or LIWORK is issued by XERBLA.
95
96       IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
97               On exit, if INFO = 0, IWORK(1) returns the required LIWORK.
98
99       LIWORK  (input) INTEGER
100               The  dimension  of  the array IWORK.  If JOBZ  = 'N' or N <= 1,
101               LIWORK >= 1.  If JOBZ  = 'V' and N > 1, LIWORK >= 3 + 5*N.   If
102               LIWORK  =  -1,  then  a workspace query is assumed; the routine
103               only calculates the  required  sizes  of  the  WORK  and  IWORK
104               arrays,  returns  these values as the first entries of the WORK
105               and IWORK arrays, and no error  message  related  to  LWORK  or
106               LIWORK is issued by XERBLA.
107
108       INFO    (output) INTEGER
109               = 0:  successful exit
110               < 0:  if INFO = -i, the i-th argument had an illegal value
111               > 0:  SPPTRF or SSPEVD returned an error code:
112               <=  N:   if INFO = i, SSPEVD failed to converge; i off-diagonal
113               elements of an intermediate tridiagonal form did  not  converge
114               to  zero;  >  N:    if  INFO = N + i, for 1 <= i <= N, then the
115               leading minor of order i of B is not  positive  definite.   The
116               factorization of B could not be completed and no eigenvalues or
117               eigenvectors were computed.
118

FURTHER DETAILS

120       Based on contributions by
121          Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
122
123
124
125 LAPACK driver routine (version 3.N2o)vember 2008                       SSPGVD(1)
Impressum