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

NAME

6       SSBEVD  - computes all the eigenvalues and, optionally, eigenvectors of
7       a real 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       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       KD      (input) INTEGER
45               The number of superdiagonals of the matrix A if UPLO = 'U',  or
46               the number of subdiagonals if UPLO = 'L'.  KD >= 0.
47
48       AB      (input/output) REAL array, dimension (LDAB, N)
49               On  entry,  the  upper  or lower triangle of the symmetric band
50               matrix A, stored in the first KD+1 rows of the array.  The j-th
51               column  of  A  is  stored in the j-th column of the array AB as
52               follows: if UPLO = 'U', AB(kd+1+i-j,j) =  A(i,j)  for  max(1,j-
53               kd)<=i<=j;   if   UPLO  =  'L',  AB(1+i-j,j)     =  A(i,j)  for
54               j<=i<=min(n,j+kd).  On exit, AB is overwritten by values gener‐
55               ated  during the reduction to tridiagonal form.  If UPLO = 'U',
56               the first superdiagonal and the  diagonal  of  the  tridiagonal
57               matrix  T are returned in rows KD and KD+1 of AB, and if UPLO =
58               'L', the diagonal and first subdiagonal of T  are  returned  in
59               the first two rows of AB.
60
61       LDAB    (input) INTEGER
62               The leading dimension of the array AB.  LDAB >= KD + 1.
63
64       W       (output) REAL array, dimension (N)
65               If INFO = 0, the eigenvalues in ascending order.
66
67       Z       (output) REAL array, dimension (LDZ, N)
68               If  JOBZ  =  'V',  then if INFO = 0, Z contains the orthonormal
69               eigenvectors of the matrix A, with the i-th column of Z holding
70               the eigenvector associated with W(i).  If JOBZ = 'N', then Z is
71               not referenced.
72
73       LDZ     (input) INTEGER
74               The leading dimension of the array Z.  LDZ >= 1, and if JOBZ  =
75               'V', LDZ >= max(1,N).
76
77       WORK    (workspace/output) REAL array,
78               dimension  (LWORK)  On  exit,  if INFO = 0, WORK(1) returns the
79               optimal LWORK.
80
81       LWORK   (input) INTEGER
82               The   dimension   of   the   array   WORK.    IF   N   <=    1,
83               LWORK must be at least 1.  If JOBZ  = 'N' and N > 2, LWORK must
84               be at least 2*N.  If JOBZ  = 'V' and N > 2, LWORK  must  be  at
85               least  (  1  + 5*N + 2*N**2 ).  If LWORK = -1, then a workspace
86               query is assumed; the routine only calculates the optimal sizes
87               of the WORK and IWORK arrays, returns these values as the first
88               entries of the WORK and IWORK  arrays,  and  no  error  message
89               related to LWORK or LIWORK is issued by XERBLA.
90
91       IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
92               On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
93
94       LIWORK  (input) INTEGER
95               The  dimension  of the array LIWORK.  If JOBZ  = 'N' or N <= 1,
96               LIWORK must be at least 1.  If JOBZ  = 'V' and N  >  2,  LIWORK
97               must  be  at  least  3 + 5*N.  If LIWORK = -1, then a workspace
98               query is assumed; the routine only calculates the optimal sizes
99               of the WORK and IWORK arrays, returns these values as the first
100               entries of the WORK and IWORK  arrays,  and  no  error  message
101               related to LWORK or 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.N2o)vember 2008                       SSBEVD(1)
Impressum