Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?hegst
Reduces a complex Hermitian positive-definite generalized eigenvalue problem to the standard form.
Syntax
call chegst ( itype , uplo , n , a , lda , b , ldb , info )
call zhegst ( itype , uplo , n , a , lda , b , ldb , info )
call hegst ( a , b [ , itype ] [ , uplo ] [ , info ] )
Include Files
mkl.fi , mkl_lapack.f90
Description
chegst zhegst hegst
The routine reduces a complex Hermitian positive-definite generalized eigenvalue problem to standard form.
itype |
Problem |
Result |
|---|---|---|
1 |
\(Ax = \lambda Bx\) |
\(A\) overwritten by \((U^H)^{-1} A U^{-1}\) or \(L^{-1} A (L^H)^{-1}\) |
2 |
\(ABx = \lambda x\) |
\(A\) overwritten by \(U A U^H\) or \(L^H A L\) |
3 |
\(BAx = \lambda x\) |
\(A\) overwritten by \(U A U^H\) or \(L^H A L\) |
Before calling this routine, you must call ?potrf to compute the Cholesky factorization: \(B = U^H U\) or \(B = L L^H\) .
Input Parameters
itype
INTEGER . Must be 1 or 2 or 3.
If itype = 1 , the generalized eigenproblem is \(Az = \lambda Bz\) for uplo = 'U' : \(C = (U^H)^{-1} A U^{-1}\) ; for uplo = 'L' : \(C = L^{-1} A (L^H)^{-1}\) . If itype = 2 , the generalized eigenproblem is \(ABz = \lambda z\) for uplo = 'U' : \(C = U A U^H\) ; for uplo = 'L' : \(C = L^H A L\) . If itype = 3 , the generalized eigenproblem is \(BAz = \lambda z\) for uplo = 'U' : \(C = U A U^H\) ; for uplo = 'L' : \(C = L^H A L\) .
uplo
CHARACTER*1 . 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 = U^H U\) . If uplo = 'L' , the array a stores the lower triangle of \(A\) ; you must supply \(B\) in the factored form \(B = L L^H\) .
n
INTEGER . The order of the matrices \(A\) and \(B\) ( n≥ 0 ).
- a , b
-
COMPLEX for chegst DOUBLE COMPLEX for zhegst . Arrays:
a ( lda ,*) contains the upper or lower triangle of \(A\) .
The second dimension of a must be at least max(1, n ).
b ( ldb ,*) contains the Cholesky-factored matrix \(B\) :
\(B = U^H U\) or \(B = L L^H\) (as returned by ?potrf ). The second dimension of b must be at least max(1, n ).
lda
INTEGER . The leading dimension of a ; at least max(1, n ).
ldb
INTEGER . The leading dimension of b ; at least max(1, n ).
Output Parameters
- 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 .
info
INTEGER .
If info = 0 , the execution is successful.
If info = -i , the i -th parameter had an illegal value.
Return Values
No return value, info is an Output Parameter.
LAPACK 95 Interface Notes
Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or restorable arguments, see LAPACK 95 Interface Conventions .
Specific details for the routine hegst interface are the following:
a
Holds the matrix \(A\) of size ( n,n ).
b
Holds the matrix \(B\) of size ( n,n ).
itype
Must be 1, 2, or 3. The default value is 1.
uplo
Must be ‘U’ or ‘L’ . The default value is ‘U’ .
Application Notes
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 \(n^3\) .