Developer Reference for Intel® oneAPI Math Kernel Library for C
?sygst
Reduces a real symmetric-definite generalized eigenvalue problem to the standard form.
Syntax
lapack_intLAPACKE_ssygst ( intmatrix_layout , lapack_intitype , charuplo , lapack_intn , float*a , lapack_intlda , constfloat*b , lapack_intldb );
lapack_intLAPACKE_dsygst ( intmatrix_layout , lapack_intitype , charuplo , lapack_intn , double*a , lapack_intlda , constdouble*b , lapack_intldb );
Include Files
mkl.h
Description
ssygst dsygst sygst
The routine reduces real symmetric-definite generalized eigenproblems
A*z = λ*B*z, A*B*z = λ*z, or B*A*z = λ*z
to the standard form C*y = λ*y . Here A is a real symmetric matrix, and B is a real symmetric positive-definite matrix. Before calling this routine, call ?potrf 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' , the array a stores the upper triangle of A ; you must supply B in the factored form B = U^{T}*U . If uplo = 'L' , the array a stores the 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 ).
- a , b
-
REAL for ssygst DOUBLE PRECISION for dsygst . Arrays:
a (size max(1, lda * n )) contains the upper or lower triangle of A .
The second dimension of a must be at least max(1, n ).
b (size max(1, ldb * n )) contains the Cholesky-factored matrix B :
B = U^{T}*U or B = L*L^{T} (as returned by ?potrf ). The second dimension of b must be at least max(1, n ).
lda
The leading dimension of a ; at least max(1, n ).
ldb
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 .
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 .