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

NAME

6       SSBEVD  -  all  the eigenvalues and, optionally, eigenvectors of a real
7       symmetric band matrix A
8

SYNOPSIS

10       SUBROUTINE SSBEVD( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, LWORK,
11                          IWORK, LIWORK, INFO )
12
13           CHARACTER      JOBZ, UPLO
14
15           INTEGER        INFO, KD, LDAB, LDZ, LIWORK, LWORK, N
16
17           INTEGER        IWORK( * )
18
19           REAL           AB( LDAB, * ), W( * ), WORK( * ), Z( LDZ, * )
20

PURPOSE

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