hbgst#

Functions

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

CHBGST reduces a complex Hermitian-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**H*S by CPBSTF, using a split Cholesky factorization. A is overwritten by C = X**H*A*X, where X = S**(-1)*Q and Q is a unitary 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

Single complex array, dimension (ldab, n). On entry, the upper or lower triangle of the Hermitian 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 transformed matrix X**H*A*X, stored in the same format as A.

in
ldab

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

in
BB

Single complex array, dimension (ldbb, n). The banded factor S from the split Cholesky factorization of B, as returned by CPBSTF, stored in the first kb+1 rows of the array.

in
ldbb

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

out
X

Single complex array, dimension (ldx, n). If vect = ‘V’, the n-by-n matrix X. If vect = ‘N’, the array X is not referenced.

in
ldx

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

out
work

Single complex workspace array, dimension (n).

out
rwork

Single precision workspace array, dimension (n).

out
info

  • = 0: successful exit

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

Functions

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

ZHBGST reduces a complex Hermitian-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**H*S by ZPBSTF, using a split Cholesky factorization. A is overwritten by C = X**H*A*X, where X = S**(-1)*Q and Q is a unitary 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

Double complex array, dimension (ldab, n). On entry, the upper or lower triangle of the Hermitian 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 transformed matrix X**H*A*X, stored in the same format as A.

in
ldab

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

in
BB

Double complex array, dimension (ldbb, n). The banded factor S from the split Cholesky factorization of B, as returned by ZPBSTF, stored in the first kb+1 rows of the array.

in
ldbb

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

out
X

Double complex array, dimension (ldx, n). If vect = ‘V’, the n-by-n matrix X. If vect = ‘N’, the array X is not referenced.

in
ldx

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

out
work

Double complex workspace array, dimension (n).

out
rwork

Double precision workspace array, dimension (n).

out
info

  • = 0: successful exit

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