spgst#

Functions

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

SSPGST reduces a real symmetric-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**T)*A*inv(U) or inv(L)*A*inv(L**T)

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**T or L**T*A*L.

B must have been previously factorized as U**T*U or L*L**T by SPPTRF.

Parameters

in
itype

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

in
uplo

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

in
n

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

inout
AP

Double precision array, dimension (n*(n+1)/2). On entry, the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. On exit, if info = 0, the transformed matrix.

in
BP

Double precision array, dimension (n*(n+1)/2). The triangular factor from the Cholesky factorization of B, stored in the same format as A.

out
info

  • = 0: successful exit

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

Functions

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

DSPGST reduces a real symmetric-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**T)*A*inv(U) or inv(L)*A*inv(L**T)

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**T or L**T*A*L.

B must have been previously factorized as U**T*U or L*L**T by DPPTRF.

Parameters

in
itype

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

in
uplo

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

in
n

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

inout
AP

Double precision array, dimension (n*(n+1)/2). On entry, the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. On exit, if info = 0, the transformed matrix.

in
BP

Double precision array, dimension (n*(n+1)/2). The triangular factor from the Cholesky factorization of B, stored in the same format as A.

out
info

  • = 0: successful exit

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