HEGS2 - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void hegs2(integer *itype, char *uplo, integer *n, T *a, integer *lda, T *b, integer *ldb, integer *info)#

Reduction of a Hermitian-definite generalized eigenproblem to standard form (unblocked algorithm)

Purpose:

    Reduction of a Hermitian definite generalized eigenproblem to standard form, using the
    factorization results obtained from cpotrf (unblocked algorithm).
    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 CPOTRF.
Parameters:
  • itype[in]

    itype is integer*

    = 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.
  • uplo[in]

    uplo is char*

    Specifies whether the upper or lower triangular part of the Hermitian matrix a is stored, and how b has been factorized.

    = ‘U’: Upper triangular

    = ‘L’: Lower triangular

  • n[in]

    n is integer*

    The order of the matrices a and b. n >= 0.

  • a[inout]

    a is COMPLEX/COMPLEX*16 array, dimension (lda,n)

    On entry, the symmetric matrix a. If uplo = ‘U’, the leading n by n upper triangular part of a contains the upper triangular part of the matrix a, and the strictly lower triangular part of a is not referenced. If uplo = ‘L’, the leading n by n lower triangular part of a contains the lower triangular part of the matrix a, and the strictly upper triangular part of a is not referenced.

    On exit, if info = 0, the transformed matrix, stored in the same format as a.
  • lda[in]

    lda is integer*

    The leading dimension of the array a. lda >= fla_max(1,n).

  • b[in]

    b is COMPLEX/COMPLEX*16 array, dimension (ldb,n)

    The triangular factor from the Cholesky factorization of b, as returned by CPOTRF.

  • ldb[in]

    ldb is integer*

    The leading dimension of the array b. ldb >= fla_max(1,n).

  • INFO[out]

    INFO is INTEGER

    = 0: successful exit.

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