sbgst#

Functions

void ssbgst(
    const char*          vect,
    const char*          uplo,
    const INT            n,
    const INT            ka,
    const INT            kb,
          f32*  restrict AB,
    const INT            ldab,
    const f32*  restrict BB,
    const INT            ldbb,
          f32*  restrict X,
    const INT            ldx,
          f32*  restrict work,
          INT*           info
);
void ssbgst(const char *vect, const char *uplo, const INT n, const INT ka, const INT kb, f32 *restrict AB, const INT ldab, const f32 *restrict BB, const INT ldbb, f32 *restrict X, const INT ldx, f32 *restrict work, INT *info)#

SSBGST reduces a real symmetric-definite banded generalized eigenproblem A*x = lambda*B*x to standard form C*y = lambda*y, such that C has the same bandwidth as A.

B must have been previously factorized as S**T*S by SPBSTF, using a split Cholesky factorization. A is overwritten by C = X**T*A*X, where X = S**(-1)*Q and Q is an orthogonal matrix chosen to preserve the bandwidth of A.

Parameters

in
vect

= ‘N’: do not form the transformation matrix X = ‘V’: form X

in
uplo

= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is 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. ka >= kb >= 0.

inout
AB

The banded matrix A. Array of dimension (ldab, n). On exit, the transformed matrix C.

in
ldab

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

in
BB

The banded factor S from the split Cholesky factorization of B. Array of dimension (ldbb, n).

in
ldbb

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

out
X

If vect=’V’, the n-by-n transformation matrix X. Array of dimension (ldx, n).

in
ldx

The leading dimension of X. ldx >= max(1,n) if vect=’V’; ldx >= 1 otherwise.

out
work

Workspace array of dimension (2*n).

out
info

  • = 0: successful exit

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

Functions

void dsbgst(
    const char*          vect,
    const char*          uplo,
    const INT            n,
    const INT            ka,
    const INT            kb,
          f64*  restrict AB,
    const INT            ldab,
    const f64*  restrict BB,
    const INT            ldbb,
          f64*  restrict X,
    const INT            ldx,
          f64*  restrict work,
          INT*           info
);
void dsbgst(const char *vect, const char *uplo, const INT n, const INT ka, const INT kb, f64 *restrict AB, const INT ldab, const f64 *restrict BB, const INT ldbb, f64 *restrict X, const INT ldx, f64 *restrict work, INT *info)#

DSBGST reduces a real symmetric-definite banded generalized eigenproblem A*x = lambda*B*x to standard form C*y = lambda*y, such that C has the same bandwidth as A.

B must have been previously factorized as S**T*S by DPBSTF, using a split Cholesky factorization. A is overwritten by C = X**T*A*X, where X = S**(-1)*Q and Q is an orthogonal matrix chosen to preserve the bandwidth of A.

Parameters

in
vect

= ‘N’: do not form the transformation matrix X = ‘V’: form X

in
uplo

= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is 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. ka >= kb >= 0.

inout
AB

The banded matrix A. Array of dimension (ldab, n). On exit, the transformed matrix C.

in
ldab

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

in
BB

The banded factor S from the split Cholesky factorization of B. Array of dimension (ldbb, n).

in
ldbb

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

out
X

If vect=’V’, the n-by-n transformation matrix X. Array of dimension (ldx, n).

in
ldx

The leading dimension of X. ldx >= max(1,n) if vect=’V’; ldx >= 1 otherwise.

out
work

Workspace array of dimension (2*n).

out
info

  • = 0: successful exit

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