Provided by: liblapack-doc-man_3.6.0-2ubuntu2_all bug

NAME

       dsbgvx.f -

SYNOPSIS

   Functions/Subroutines
       subroutine dsbgvx (JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, Q, LDQ, VL, VU, IL,
           IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, INFO)
           DSBGVX

Function/Subroutine Documentation

   subroutine dsbgvx (character JOBZ, character RANGE, character UPLO, integer N, integer KA,
       integer KB, double precision, dimension( ldab, * ) AB, integer LDAB, double precision,
       dimension( ldbb, * ) BB, integer LDBB, double precision, dimension( ldq, * ) Q, integer
       LDQ, double precision VL, double precision VU, integer IL, integer IU, double precision
       ABSTOL, integer M, double precision, dimension( * ) W, double precision, dimension( ldz, *
       ) Z, integer LDZ, double precision, dimension( * ) WORK, integer, dimension( * ) IWORK,
       integer, dimension( * ) IFAIL, integer INFO)
       DSBGVX

       Purpose:

            DSBGVX computes selected eigenvalues, and optionally, eigenvectors
            of a real generalized symmetric-definite banded eigenproblem, of
            the form A*x=(lambda)*B*x.  Here A and B are assumed to be symmetric
            and banded, and B is also positive definite.  Eigenvalues and
            eigenvectors can be selected by specifying either all eigenvalues,
            a range of values or a range of indices for the desired eigenvalues.

       Parameters:
           JOBZ

                     JOBZ is CHARACTER*1
                     = 'N':  Compute eigenvalues only;
                     = 'V':  Compute eigenvalues and eigenvectors.

           RANGE

                     RANGE is CHARACTER*1
                     = 'A': all eigenvalues will be found.
                     = 'V': all eigenvalues in the half-open interval (VL,VU]
                            will be found.
                     = 'I': the IL-th through IU-th eigenvalues will be found.

           UPLO

                     UPLO is CHARACTER*1
                     = 'U':  Upper triangles of A and B are stored;
                     = 'L':  Lower triangles of A and B are stored.

           N

                     N is INTEGER
                     The order of the matrices A and B.  N >= 0.

           KA

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

           KB

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

           AB

                     AB is DOUBLE PRECISION array, dimension (LDAB, N)
                     On entry, the upper or lower triangle of the symmetric 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

                     LDAB is INTEGER
                     The leading dimension of the array AB.  LDAB >= KA+1.

           BB

                     BB is DOUBLE PRECISION array, dimension (LDBB, N)
                     On entry, the upper or lower triangle of the symmetric 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(ka+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 factorization
                     B = S**T*S, as returned by DPBSTF.

           LDBB

                     LDBB is INTEGER
                     The leading dimension of the array BB.  LDBB >= KB+1.

           Q

                     Q is DOUBLE PRECISION array, dimension (LDQ, N)
                     If JOBZ = 'V', the n-by-n matrix used in the reduction of
                     A*x = (lambda)*B*x to standard form, i.e. C*x = (lambda)*x,
                     and consequently C to tridiagonal form.
                     If JOBZ = 'N', the array Q is not referenced.

           LDQ

                     LDQ is INTEGER
                     The leading dimension of the array Q.  If JOBZ = 'N',
                     LDQ >= 1. If JOBZ = 'V', LDQ >= max(1,N).

           VL

                     VL is DOUBLE PRECISION

           VU

                     VU is DOUBLE PRECISION

                     If RANGE='V', the lower and upper bounds of the interval to
                     be searched for eigenvalues. VL < VU.
                     Not referenced if RANGE = 'A' or 'I'.

           IL

                     IL is INTEGER

           IU

                     IU is INTEGER

                     If RANGE='I', the indices (in ascending order) of the
                     smallest and largest eigenvalues to be returned.
                     1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.
                     Not referenced if RANGE = 'A' or 'V'.

           ABSTOL

                     ABSTOL is DOUBLE PRECISION
                     The absolute error tolerance for the eigenvalues.
                     An approximate eigenvalue is accepted as converged
                     when it is determined to lie in an interval [a,b]
                     of width less than or equal to

                             ABSTOL + EPS *   max( |a|,|b| ) ,

                     where EPS is the machine precision.  If ABSTOL is less than
                     or equal to zero, then  EPS*|T|  will be used in its place,
                     where |T| is the 1-norm of the tridiagonal matrix obtained
                     by reducing A to tridiagonal form.

                     Eigenvalues will be computed most accurately when ABSTOL is
                     set to twice the underflow threshold 2*DLAMCH('S'), not zero.
                     If this routine returns with INFO>0, indicating that some
                     eigenvectors did not converge, try setting ABSTOL to
                     2*DLAMCH('S').

           M

                     M is INTEGER
                     The total number of eigenvalues found.  0 <= M <= N.
                     If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.

           W

                     W is DOUBLE PRECISION array, dimension (N)
                     If INFO = 0, the eigenvalues in ascending order.

           Z

                     Z is DOUBLE PRECISION array, dimension (LDZ, N)
                     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 Z**T*B*Z = I.
                     If JOBZ = 'N', then Z is not referenced.

           LDZ

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

           WORK

                     WORK is DOUBLE PRECISION array, dimension (7*N)

           IWORK

                     IWORK is INTEGER array, dimension (5*N)

           IFAIL

                     IFAIL is INTEGER array, dimension (M)
                     If JOBZ = 'V', then if INFO = 0, the first M elements of
                     IFAIL are zero.  If INFO > 0, then IFAIL contains the
                     indices of the eigenvalues that failed to converge.
                     If JOBZ = 'N', then IFAIL is not referenced.

           INFO

                     INFO is INTEGER
                     = 0 : successful exit
                     < 0 : if INFO = -i, the i-th argument had an illegal value
                     <= N: if INFO = i, then i eigenvectors failed to converge.
                             Their indices are stored in IFAIL.
                     > N : DPBSTF returned an error code; i.e.,
                           if INFO = N + i, for 1 <= i <= N, then the leading
                           minor of order i of B is not positive definite.
                           The factorization of B could not be completed and
                           no eigenvalues or eigenvectors were computed.

       Author:
           Univ. of Tennessee

           Univ. of California Berkeley

           Univ. of Colorado Denver

           NAG Ltd.

       Date:
           November 2015

       Contributors:
           Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA

Author

       Generated automatically by Doxygen for LAPACK from the source code.