Visible to Intel only — GUID: GUID-FF604945-F79E-44A6-8894-F6D166E49E07
Visible to Intel only — GUID: GUID-FF604945-F79E-44A6-8894-F6D166E49E07
?hegst
Reduces a complex Hermitian positive-definite generalized eigenvalue problem to the standard form.
lapack_int LAPACKE_chegst (int matrix_layout, lapack_int itype, char uplo, lapack_int n, lapack_complex_float* a, lapack_int lda, const lapack_complex_float* b, lapack_int ldb);
lapack_int LAPACKE_zhegst (int matrix_layout, lapack_int itype, char uplo, lapack_int n, lapack_complex_double* a, lapack_int lda, const lapack_complex_double* b, lapack_int ldb);
- mkl.h
The routine reduces a complex Hermitian positive-definite generalized eigenvalue problem to standard form.
itype |
Problem |
Result |
---|---|---|
1 |
A*x = λ*B*x | A overwritten by inv(UH)*A*inv(U) or inv(L)*A*inv(LH) |
2 |
A*B*x = λ*x | A overwritten by U*A*UH or LH*A*L |
3 |
B*A*x = λ*x | |
Before calling this routine, you must call ?potrf to compute the Cholesky factorization: B = UH*U or B = L*LH.
- itype
-
Must be 1 or 2 or 3.
If itype = 1, the generalized eigenproblem is A*z = lambda*B*z
for uplo = 'U': C = (UH)-1*A*U-1;
for uplo = 'L': C = L-1*A*(LH)-1.
If itype = 2, the generalized eigenproblem is A*B*z = lambda*z
for uplo = 'U': C = U*A*UH;
for uplo = 'L': C = LH*A*L.
If itype = 3, the generalized eigenproblem is B*A*z = lambda*z
for uplo = 'U': C = U*A*UH;
for uplo = 'L': C = LH*A*L.
- uplo
-
Must be 'U' or 'L'.
If uplo = 'U', the array a stores the upper triangle of A; you must supply B in the factored form B = UH*U.
If uplo = 'L', the array a stores the lower triangle of A; you must supply B in the factored form B = L*LH.
- n
-
The order of the matrices A and B (n≥ 0).
- a, b
-
Arrays:
a (size max(1, lda*n)) contains the upper or lower triangle of A.
b (size max(1, ldb*n)) contains the Cholesky-factored matrix B:
B = UH*U or B = L*LH (as returned by ?potrf).
- lda
-
The leading dimension of a; at least max(1, n).
- ldb
-
The leading dimension of b; at least max(1, n).
- a
-
The upper or lower triangle of A is overwritten by the upper or lower triangle of C, as specified by the arguments itype and uplo.
This function returns a value info.
If info=0, the execution is successful.
If info = -i, the i-th parameter had an illegal value.
Forming the reduced matrix C is a stable procedure. However, it involves implicit multiplication by B-1 (if itype = 1) or B (if itype = 2 or 3). When the routine is used as a step in the computation of eigenvalues and eigenvectors of the original problem, there may be a significant loss of accuracy if B is ill-conditioned with respect to inversion.
The approximate number of floating-point operations is n3.