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

NAME

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

SYNOPSIS

10       SUBROUTINE DSBEVD( 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           DOUBLE         PRECISION  AB( LDAB, * ), W( * ), WORK( * ), Z( LDZ,
20                          * )
21

PURPOSE

23       DSBEVD computes all the eigenvalues and, optionally, eigenvectors of  a
24       real  symmetric  band  matrix A. If eigenvectors are desired, it uses a
25       divide and conquer algorithm.
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

ARGUMENTS

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