sygs2#

Functions

void ssygs2(
    const INT            itype,
    const char*          uplo,
    const INT            n,
          f32*  restrict A,
    const INT            lda,
    const f32*  restrict B,
    const INT            ldb,
          INT*           info
);
void ssygs2(const INT itype, const char *uplo, const INT n, f32 *restrict A, const INT lda, const f32 *restrict B, const INT ldb, INT *info)#

SSYGS2 reduces a real symmetric-definite generalized eigenproblem to standard form.

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 SPOTRF.

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 triangular; = ‘L’: Lower triangular

in
n

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

inout
A

On entry, the symmetric matrix A. On exit, the transformed matrix.

in
lda

The leading dimension of A. lda >= max(1, n).

in
B

The triangular factor from Cholesky factorization of B.

in
ldb

The leading dimension of B. ldb >= max(1, n).

out
info

  • = 0: successful exit; < 0: if -i, the i-th argument was illegal.

Functions

void dsygs2(
    const INT            itype,
    const char*          uplo,
    const INT            n,
          f64*  restrict A,
    const INT            lda,
    const f64*  restrict B,
    const INT            ldb,
          INT*           info
);
void dsygs2(const INT itype, const char *uplo, const INT n, f64 *restrict A, const INT lda, const f64 *restrict B, const INT ldb, INT *info)#

DSYGS2 reduces a real symmetric-definite generalized eigenproblem to standard form.

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 DPOTRF.

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 triangular; = ‘L’: Lower triangular

in
n

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

inout
A

On entry, the symmetric matrix A. On exit, the transformed matrix.

in
lda

The leading dimension of A. lda >= max(1, n).

in
B

The triangular factor from Cholesky factorization of B.

in
ldb

The leading dimension of B. ldb >= max(1, n).

out
info

  • = 0: successful exit; < 0: if -i, the i-th argument was illegal.