hpgst#

Functions

void chpgst(
    const INT            itype,
    const char*          uplo,
    const INT            n,
          c64*  restrict AP,
    const c64*  restrict BP,
          INT*           info
);
void chpgst(const INT itype, const char *uplo, const INT n, c64 *restrict AP, const c64 *restrict BP, INT *info)#

CHPGST reduces a complex Hermitian-definite generalized eigenproblem to standard form, using packed storage.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L.

B must have been previously factorized as U**H*U or L*L**H by CPPTRF.

Parameters

in
itype

= 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H); = 2 or 3: compute U*A*U**H or L**H*A*L.

in
uplo

= ‘U’: Upper triangle of A is stored and B is factored as U**H*U; = ‘L’: Lower triangle of A is stored and B is factored as L*L**H.

in
n

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

inout
AP

Complex*16 array, dimension (n*(n+1)/2). On entry, the upper or lower triangle of the Hermitian matrix A, packed columnwise in a linear array. On exit, if info = 0, the transformed matrix, stored in the same format as A.

in
BP

Complex*16 array, dimension (n*(n+1)/2). The triangular factor from the Cholesky factorization of B, stored in the same format as A, as returned by CPPTRF.

out
info

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

Functions

void zhpgst(
    const INT            itype,
    const char*          uplo,
    const INT            n,
          c128* restrict AP,
    const c128* restrict BP,
          INT*           info
);
void zhpgst(const INT itype, const char *uplo, const INT n, c128 *restrict AP, const c128 *restrict BP, INT *info)#

ZHPGST reduces a complex Hermitian-definite generalized eigenproblem to standard form, using packed storage.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L.

B must have been previously factorized as U**H*U or L*L**H by ZPPTRF.

Parameters

in
itype

= 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H); = 2 or 3: compute U*A*U**H or L**H*A*L.

in
uplo

= ‘U’: Upper triangle of A is stored and B is factored as U**H*U; = ‘L’: Lower triangle of A is stored and B is factored as L*L**H.

in
n

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

inout
AP

Complex*16 array, dimension (n*(n+1)/2). On entry, the upper or lower triangle of the Hermitian matrix A, packed columnwise in a linear array. On exit, if info = 0, the transformed matrix, stored in the same format as A.

in
BP

Complex*16 array, dimension (n*(n+1)/2). The triangular factor from the Cholesky factorization of B, stored in the same format as A, as returned by ZPPTRF.

out
info

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