sbgv#

Functions

void ssbgv(
    const char*          jobz,
    const char*          uplo,
    const INT            n,
    const INT            ka,
    const INT            kb,
          f32*  restrict AB,
    const INT            ldab,
          f32*  restrict BB,
    const INT            ldbb,
          f32*  restrict W,
          f32*  restrict Z,
    const INT            ldz,
          f32*  restrict work,
          INT*           info
);
void ssbgv(const char *jobz, const char *uplo, const INT n, const INT ka, const INT kb, f32 *restrict AB, const INT ldab, f32 *restrict BB, const INT ldbb, f32 *restrict W, f32 *restrict Z, const INT ldz, f32 *restrict work, INT *info)#

SSBGV computes all the eigenvalues, and optionally, the 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.

Parameters

in
jobz

= ‘N’: Compute eigenvalues only = ‘V’: Compute eigenvalues and eigenvectors

in
uplo

= ‘U’: Upper triangles of A and B are stored = ‘L’: Lower triangles of A and B are stored

in
n

The order of the matrices A and B. n >= 0.

in
ka

The number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of A. ka >= 0.

in
kb

The number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of B. kb >= 0.

inout
AB

The banded matrix A. Array of dimension (ldab, n). On exit, contents are destroyed.

in
ldab

The leading dimension of AB. ldab >= ka+1.

inout
BB

The banded matrix B. Array of dimension (ldbb, n). On exit, the split Cholesky factor S from spbstf.

in
ldbb

The leading dimension of BB. ldbb >= kb+1.

out
W

The eigenvalues in ascending order. Array of dimension (n).

out
Z

If jobz=’V’, the eigenvectors. Array of dimension (ldz, n).

in
ldz

The leading dimension of Z. ldz >= 1, and if jobz=’V’, ldz >= n.

out
work

Workspace array of dimension (3*n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

  • > 0: if info = i, for i <= n, the algorithm failed to converge if info = n + i, spbstf returned info = i (B not positive definite)

Functions

void dsbgv(
    const char*          jobz,
    const char*          uplo,
    const INT            n,
    const INT            ka,
    const INT            kb,
          f64*  restrict AB,
    const INT            ldab,
          f64*  restrict BB,
    const INT            ldbb,
          f64*  restrict W,
          f64*  restrict Z,
    const INT            ldz,
          f64*  restrict work,
          INT*           info
);
void dsbgv(const char *jobz, const char *uplo, const INT n, const INT ka, const INT kb, f64 *restrict AB, const INT ldab, f64 *restrict BB, const INT ldbb, f64 *restrict W, f64 *restrict Z, const INT ldz, f64 *restrict work, INT *info)#

DSBGV computes all the eigenvalues, and optionally, the 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.

Parameters

in
jobz

= ‘N’: Compute eigenvalues only = ‘V’: Compute eigenvalues and eigenvectors

in
uplo

= ‘U’: Upper triangles of A and B are stored = ‘L’: Lower triangles of A and B are stored

in
n

The order of the matrices A and B. n >= 0.

in
ka

The number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of A. ka >= 0.

in
kb

The number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of B. kb >= 0.

inout
AB

The banded matrix A. Array of dimension (ldab, n). On exit, contents are destroyed.

in
ldab

The leading dimension of AB. ldab >= ka+1.

inout
BB

The banded matrix B. Array of dimension (ldbb, n). On exit, the split Cholesky factor S from dpbstf.

in
ldbb

The leading dimension of BB. ldbb >= kb+1.

out
W

The eigenvalues in ascending order. Array of dimension (n).

out
Z

If jobz=’V’, the eigenvectors. Array of dimension (ldz, n).

in
ldz

The leading dimension of Z. ldz >= 1, and if jobz=’V’, ldz >= n.

out
work

Workspace array of dimension (3*n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

  • > 0: if info = i, for i <= n, the algorithm failed to converge if info = n + i, dpbstf returned info = i (B not positive definite)