Contents


NAME

     zhbgv - compute all the  eigenvalues,  and  optionally,  the
     eigenvectors  of  a  complex  generalized Hermitian-definite
     banded eigenproblem, of the form A*x=(lambda)*B*x

SYNOPSIS

     SUBROUTINE ZHBGV(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z,
           LDZ, WORK, RWORK, INFO)

     CHARACTER * 1 JOBZ, UPLO
     DOUBLE COMPLEX AB(LDAB,*), BB(LDBB,*), Z(LDZ,*), WORK(*)
     INTEGER N, KA, KB, LDAB, LDBB, LDZ, INFO
     DOUBLE PRECISION W(*), RWORK(*)

     SUBROUTINE ZHBGV_64(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z,
           LDZ, WORK, RWORK, INFO)

     CHARACTER * 1 JOBZ, UPLO
     DOUBLE COMPLEX AB(LDAB,*), BB(LDBB,*), Z(LDZ,*), WORK(*)
     INTEGER*8 N, KA, KB, LDAB, LDBB, LDZ, INFO
     DOUBLE PRECISION W(*), RWORK(*)

  F95 INTERFACE
     SUBROUTINE HBGV(JOBZ, UPLO, [N], KA, KB, AB, [LDAB], BB, [LDBB], W,
            Z, [LDZ], [WORK], [RWORK], [INFO])

     CHARACTER(LEN=1) :: JOBZ, UPLO
     COMPLEX(8), DIMENSION(:) :: WORK
     COMPLEX(8), DIMENSION(:,:) :: AB, BB, Z
     INTEGER :: N, KA, KB, LDAB, LDBB, LDZ, INFO
     REAL(8), DIMENSION(:) :: W, RWORK

     SUBROUTINE HBGV_64(JOBZ, UPLO, [N], KA, KB, AB, [LDAB], BB, [LDBB],
            W, Z, [LDZ], [WORK], [RWORK], [INFO])

     CHARACTER(LEN=1) :: JOBZ, UPLO
     COMPLEX(8), DIMENSION(:) :: WORK
     COMPLEX(8), DIMENSION(:,:) :: AB, BB, Z
     INTEGER(8) :: N, KA, KB, LDAB, LDBB, LDZ, INFO
     REAL(8), DIMENSION(:) :: W, RWORK

  C INTERFACE
     #include <sunperf.h>

     void zhbgv(char jobz, char uplo, int  n,  int  ka,  int  kb,
               doublecomplex  *ab,  int  ldab, doublecomplex *bb,
               int ldbb, double *w, doublecomplex  *z,  int  ldz,
               int *info);

     void zhbgv_64(char jobz, char uplo, long n,  long  ka,  long
               kb,  doublecomplex  *ab,  long ldab, doublecomplex
               *bb, long ldbb, double *w, doublecomplex *z,  long
               ldz, long *info);

PURPOSE

     zhbgv computes all  the  eigenvalues,  and  optionally,  the
     eigenvectors  of  a  complex  generalized Hermitian-definite
     banded eigenproblem, of the form  A*x=(lambda)*B*x.  Here  A
     and  B are assumed to be Hermitian and banded, and B is also
     positive definite.

ARGUMENTS

     JOBZ (input)
               = 'N':  Compute eigenvalues only;
               = 'V':  Compute eigenvalues and eigenvectors.

     UPLO (input)
               = 'U':  Upper triangles of A and B are stored;
               = 'L':  Lower triangles of A and B are stored.

     N (input) The order of the matrices A and B.  N >= 0.

     KA (input)
               The number of superdiagonals of the  matrix  A  if
               UPLO  = 'U', or the number of subdiagonals if UPLO
               = 'L'. KA >= 0.

     KB (input)
               The number of superdiagonals of the  matrix  B  if
               UPLO  = 'U', or the number of subdiagonals if UPLO
               = 'L'. KB >= 0.

     AB (input/output)
               On entry, the upper or lower triangle of the  Her-
               mitian  band  matrix  A,  stored in the first ka+1
               rows of the array.  The j-th column of A is stored
               in the j-th column of the array AB as follows:  if
               UPLO = 'U', AB(ka+1+i-j,j) = A(i,j)  for  max(1,j-
               ka)<=i<=j;  if UPLO = 'L', AB(1+i-j,j)    = A(i,j)
               for j<=i<=min(n,j+ka).
               On exit, the contents of AB are destroyed.

     LDAB (input)
               The leading dimension of the array  AB.   LDAB  >=
               KA+1.

     BB (input/output)
               On entry, the upper or lower triangle of the  Her-
               mitian  band  matrix  B,  stored in the first kb+1
               rows of the array.  The j-th column of B is stored
               in the j-th column of the array BB as follows:  if
               UPLO = 'U', BB(kb+1+i-j,j) = B(i,j)  for  max(1,j-
               kb)<=i<=j;  if UPLO = 'L', BB(1+i-j,j)    = B(i,j)
               for j<=i<=min(n,j+kb).

               On exit, the factor S from the split Cholesky fac-
               torization B = S**H*S, as returned by CPBSTF.

     LDBB (input)
               The leading dimension of the array  BB.   LDBB  >=
               KB+1.

     W (output)
               If INFO = 0, the eigenvalues in ascending order.

     Z (input) If JOBZ = 'V', then if INFO = 0,  Z  contains  the
               matrix  Z of eigenvectors, with the i-th column of
               Z holding the eigenvector  associated  with  W(i).
               The eigenvectors are normalized so that Z**H*B*Z =
               I.  If JOBZ = 'N', then Z is not referenced.

     LDZ (input)
               The leading dimension of the array Z.  LDZ  >=  1,
               and if JOBZ = 'V', LDZ >= N.

     WORK (workspace)
               dimension(N)

     RWORK (workspace)
               dimension(3*N)

     INFO (output)
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille-
               gal value
               > 0:  if INFO = i, and i is:
               <= N:  the algorithm failed to converge:   i  off-
               diagonal  elements  of an intermediate tridiagonal
               form did not converge to zero; > N:   if INFO =  N
               + i, for 1 <= i <= N, then CPBSTF
               returned INFO = i: B  is  not  positive  definite.
               The  factorization of B could not be completed and
               no eigenvalues or eigenvectors were computed.