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

NAME

6       DSBEVD  -  all  the eigenvalues and, optionally, eigenvectors of a real
7       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
27       The divide and conquer algorithm  makes  very  mild  assumptions  about
28       floating  point arithmetic. It will work on machines with a guard digit
29       in add/subtract, or on those binary machines without guard digits which
30       subtract  like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It could
31       conceivably fail on hexadecimal or decimal machines without guard  dig‐
32       its, but we know of none.
33
34

ARGUMENTS

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