Developer Reference for Intel® oneAPI Math Kernel Library for C
?spgst
Reduces a real symmetric-definite generalized eigenvalue problem to the standard form using packed storage.
Syntax
lapack_intLAPACKE_sspgst ( intmatrix_layout , lapack_intitype , charuplo , lapack_intn , float*ap , constfloat*bp );
lapack_intLAPACKE_dspgst ( intmatrix_layout , lapack_intitype , charuplo , lapack_intn , double*ap , constdouble*bp );
Include Files
mkl.h
Description
sspgst dspgst spgst
The routine reduces real symmetric-definite generalized eigenproblems
A*x = λ*B*x , A*B*x = λ*x , or B*A*x = λ*x
to the standard form C*y = λ*y , using packed matrix storage. Here A is a real symmetric matrix, and B is a real symmetric positive-definite matrix. Before calling this routine, call ?pptrf to compute the Cholesky factorization: B = U^{T}*U or B = L*L^{T} .
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^{T})*A*inv(U) , z = inv(U)*y ; for uplo = 'L' : C = inv(L)*A*inv(L^{T}) , z = inv(L^{T})*y . If itype = 2 , the generalized eigenproblem is A*B*z = lambda*z for uplo = 'U' : C = U*A*U^{T} , z = inv(U)*y ; for uplo = 'L' : C = L^{T}*A*L , z = inv(L^{T})*y . If itype = 3 , the generalized eigenproblem is B*A*z = lambda*z for uplo = 'U' : C = U*A*U^{T} , z = U^{T}*y ; for uplo = 'L' : C = L^{T}*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^{T}*U . If uplo = 'L' , ap stores the packed lower triangle of A ; you must supply B in the factored form B = L*L^{T} .
n
The order of the matrices A and B ( n≥ 0 ).
- ap , bp
-
REAL for sspgst DOUBLE PRECISION for dspgst . Arrays: ap(*) contains the packed upper or lower triangle of A . The dimension of ap 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 bp 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 .