Developer Reference for Intel® oneAPI Math Kernel Library for C
?hpgst
Reduces a generalized eigenvalue problem with a Hermitian matrix to a standard eigenvalue problem using packed storage.
Syntax
lapack_intLAPACKE_chpgst ( intmatrix_layout , lapack_intitype , charuplo , lapack_intn , lapack_complex_float*ap , constlapack_complex_float*bp );
lapack_intLAPACKE_zhpgst ( intmatrix_layout , lapack_intitype , charuplo , lapack_intn , lapack_complex_double*ap , constlapack_complex_double*bp );
Include Files
mkl.h
Description
chpgst zhpgst hpgst
The routine reduces generalized eigenproblems with Hermitian matrices
A*z = λ*B*z , A*B*z = λ*z , or B*A*z = λ*z .
to standard eigenproblems C*y = λ*y , using packed matrix storage. Here A is a complex Hermitian matrix, and B is a complex Hermitian positive-definite matrix. Before calling this routine, you must call ?pptrf to compute the Cholesky factorization: B = U^{H}*U or B = L*L^{H} .
Input Parameters
- matrix_layout
-
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
itype
Must be 1 or 2 or 3.
If itype = 1 , the generalized eigenproblem is A*z = lambda*B*z for uplo = 'U' : C = inv(U^{H})*A*inv(U) , z = inv(U)*y ; for uplo = 'L' : C = inv(L)*A*inv(L^{H}) , z = inv(L^{H})*y . If itype = 2 , the generalized eigenproblem is A*B*z = lambda*z for uplo = 'U' : C = U*A*U^{H} , z = inv(U)*y ; for uplo = 'L' : C = L^{H}*A*L , z = inv(L^{H})*y . If itype = 3 , the generalized eigenproblem is B*A*z = lambda*z for uplo = 'U' : C = U*A*U^{H} , z = U^{H}*y ; for uplo = 'L' : C = L^{H}*A*L , z = L*y .
uplo
Must be ‘U’ or ‘L’ .
If uplo = 'U' , ap stores the packed upper triangle of A ; you must supply B in the factored form B = U^{H}*U . If uplo = 'L' , ap stores the packed lower triangle of A ; you must supply B in the factored form B = L*L^{H} .
n
The order of the matrices A and B ( n≥ 0 ).
- ap , bp
-
COMPLEX for chpgst DOUBLE COMPLEX for zhpgst . Arrays: ap(*) contains the packed upper or lower triangle of A . The dimension of a must be at least max(1, n *( n +1)/2). bp(*) contains the packed Cholesky factor of B (as returned by ?pptrf with the same uplo value). The dimension of b must be at least max(1, n *( n +1)/2).
Output Parameters
- ap
-
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 .
Return Values
This function returns a value info .
If info=0 , the execution is successful.
If info = -i , the i -th parameter had an illegal value.
LAPACK 95 Interface Notes
There exist FORTRAN 77 and FORTRAN 95 interfaces for this routine. See the Intel® oneMKL Fortran Developer Reference for details.
Application Notes
Forming the reduced matrix \(C\) is a stable procedure. However, it involves implicit multiplication by inv( \(B\) ) (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 .