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)#
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
invect= ‘N’: do not form the transformation matrix X = ‘V’: form X
inuplo= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored
innThe order of the matrices A and B. n >= 0.
inkaThe number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of A. ka >= 0.
inkbThe number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of B. ka >= kb >= 0.
inoutABSingle 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.
inldabThe leading dimension of AB. ldab >= ka+1.
inBBSingle 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.
inldbbThe leading dimension of BB. ldbb >= kb+1.
outXSingle complex array, dimension (ldx, n). If vect = ‘V’, the n-by-n matrix X. If vect = ‘N’, the array X is not referenced.
inldxThe leading dimension of X. ldx >= max(1,n) if vect = ‘V’; ldx >= 1 otherwise.
outworkSingle complex workspace array, dimension (n).
outrworkSingle precision workspace array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
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
);
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)#
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
invect= ‘N’: do not form the transformation matrix X = ‘V’: form X
inuplo= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored
innThe order of the matrices A and B. n >= 0.
inkaThe number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of A. ka >= 0.
inkbThe number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of B. ka >= kb >= 0.
inoutABDouble 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.
inldabThe leading dimension of AB. ldab >= ka+1.
inBBDouble 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.
inldbbThe leading dimension of BB. ldbb >= kb+1.
outXDouble complex array, dimension (ldx, n). If vect = ‘V’, the n-by-n matrix X. If vect = ‘N’, the array X is not referenced.
inldxThe leading dimension of X. ldx >= max(1,n) if vect = ‘V’; ldx >= 1 otherwise.
outworkDouble complex workspace array, dimension (n).
outrworkDouble precision workspace array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
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
);