?hegst
?hegst
Reduces a complex Hermitian positive-definite generalized eigenvalue problem to the standard form.
Syntax
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
);
Include Files
- mkl.h
Description
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( or U H )*A *inv(U )inv( L )*A *inv(L H ) |
2 | A *B *x = λ *x | A overwritten by U *A *U H L H *A *L |
3 | B *A *x = λ *x | |
Before calling this routine, you must call or .
?potrf
to compute the Cholesky factorization: B
= U
H
*U
B
= L*L
H
Input Parameters
- itype
- Must be 1 or 2 or 3.If, the generalized eigenproblem isitype= 1A*z=lambda*B*zfor:uplo='U';C= (U)H*-1A*U-1for:uplo='L'.C=L*-1A*(L)H-1If, the generalized eigenproblem isitype= 2A*B*z=lambda*zfor:uplo='U';C=U*A*UHfor:uplo='L'.C=L*HA*LIf, the generalized eigenproblem isitype= 3B*A*z=lambda*zfor:uplo='U';C=U*A*UHfor:uplo='L'.C=L*HA*L
- uplo
- Must be'U'or'L'.If, the arrayuplo='U'astores the upper triangle ofA; you must supplyBin the factored form.B=UH*UIf, the arrayuplo='L'astores the lower triangle ofA; you must supplyBin the factored form.B=L*LH
- n
- The order of the matricesAandB().n≥0
- a,b
- Arrays:a(size max(1,contains the upper or lower triangle oflda*n))A.b(size max(1,contains the Cholesky-factored matrixldb*n))B:orB=UH*U(as returned byB=L*LH?potrf).
- lda
- The leading dimension ofa; at least max(1,n).
- ldb
- The leading dimension ofb; at least max(1,n).
Output Parameters
- a
- The upper or lower triangle ofAis overwritten by the upper or lower triangle ofC, as specified by the argumentsitypeanduplo.
Return Values
This function returns a value
info
.If , the execution is successful.
info
=0If , the
info
= -i
i
-th parameter had an illegal value.Application Notes
Forming the reduced matrix (if ) or 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
C
is a stable procedure. However, it involves implicit multiplication by B
-1
itype
= 1B
(if itype
= 2B
is ill-conditioned with respect to inversion.The approximate number of floating-point operations is
n
3
.