SSYGVD(3)
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/ssygvd.f
Okay bestie, this page is from the Library Functions Manual and itβs all about the SSYGVD subroutine. π«Ά
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine SSYGVD (itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork, iwork, liwork, info)
SSYGVD
π Function/Subroutine Documentation π
subroutine SSYGVD (integer itype, character jobz, character uplo, integer n,
real, dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b,
integer ldb, real, dimension( * ) w, real, dimension( * ) work, integer
lwork, integer, dimension( * ) iwork, integer liwork, integer info)
SSYGVD
π Purpose
SSYGVD computes all the eigenvalues, and optionally the eigenvectors, of a real generalized symmetric-definite eigenproblem, of the form:
A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x.
Here A and B are assumed to be symmetric, and B is also positive definite. If eigenvectors are desired, it uses a divide and conquer algorithm. Iconic behavior, honestly. β¨
π₯ Parameters
ITYPEβITYPEisINTEGER. Specifies the problem type to be solved:= 1:A*x = (lambda)*B*x= 2:A*B*x = (lambda)*x= 3:B*A*x = (lambda)*x
JOBZβJOBZisCHARACTER*1.= 'N': Compute eigenvalues only;= 'V': Compute eigenvalues and eigenvectors.
UPLOβUPLOisCHARACTER*1.= 'U': Upper triangles ofAandBare stored;= 'L': Lower triangles ofAandBare stored.
NβNisINTEGER. The order of the matricesAandB.N >= 0.AβAis aREALarray, dimension(LDA, N). On entry, itβs the symmetric matrixA. IfUPLO = 'U', the leadingN-by-Nupper triangular part ofAcontains the upper triangular part of the matrixA. IfUPLO = 'L', the leadingN-by-Nlower triangular part ofAcontains the lower triangular part of the matrixA.
On exit, if JOBZ = 'V', then if INFO = 0, A contains the matrix Z of eigenvectors. The eigenvectors are normalized as follows:
- if
ITYPE = 1or2,Z**T*B*Z = I; - if
ITYPE = 3,Z**T*inv(B)*Z = I.
If JOBZ = 'N', then on exit the upper triangle (if UPLO='U') or the lower triangle (if UPLO='L') of A, including the diagonal, is destroyed. π
LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).BβBis aREALarray, dimension(LDB, N). On entry, itβs the symmetric matrixB. IfUPLO = 'U', the leadingN-by-Nupper triangular part ofBcontains the upper triangular part of the matrixB. IfUPLO = 'L', the leadingN-by-Nlower triangular part ofBcontains the lower triangular part of the matrixB.
On exit, if INFO <= N, the part of B containing the matrix is overwritten by the triangular factor U or L from the Cholesky factorization B = U**T*U or B = L*L**T.
LDBβLDBisINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).WβWis aREALarray, dimension(N). IfINFO = 0, the eigenvalues in ascending order.WORKβWORKis aREALarray, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORKisINTEGER. The dimension of the arrayWORK.- If
N <= 1,LWORK >= 1. - If
JOBZ = 'N'andN > 1,LWORK >= 2*N+1. - If
JOBZ = 'V'andN > 1,LWORK >= 1 + 6*N + 2*N**2.
- If
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA.
IWORKβIWORKis anINTEGERarray, dimension(MAX(1,LIWORK)). On exit, ifINFO = 0,IWORK(1)returns the optimalLIWORK.LIWORKβLIWORKisINTEGER. The dimension of the arrayIWORK.- If
N <= 1,LIWORK >= 1. - If
JOBZ = 'N'andN > 1,LIWORK >= 1. - If
JOBZ = 'V'andN > 1,LIWORK >= 3 + 5*N.
- If
If LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA.
INFOβINFOisINTEGER.= 0: successful exit< 0: ifINFO = -i, the i-th argument had an illegal value> 0:SPOTRForSSYEVDreturned an error code:<= N: ifINFO = iandJOBZ = 'N', then the algorithm failed to converge;ioff-diagonal elements of an intermediate tridiagonal form did not converge to zero; ifINFO = iandJOBZ = 'V', then the algorithm failed to compute an eigenvalue while working on the submatrix lying in rows and columnsINFO/(N+1)throughmod(INFO,N+1);> N: ifINFO = N + i, for1 <= i <= N, then the leading principal minor of orderiofBis not positive. The factorization ofBcould not be completed and no eigenvalues or eigenvectors were computed.
π«Ά Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Further Details
Modified so that no backsubstitution is performed if SSYEVD fails to converge (NEIG in old code could be greater than N causing out of bounds reference to A - reported by Ralf Meyer). Also corrected the description of INFO and the test on ITYPE. Sven, 16 Feb 05.
π§ Contributors
Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
Definition at line 219 of file ssygvd.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
Okay bestie, thatβs the whole page π β from LAPACK, Version 3.12.0, and the page path is /home/abui...RC/ssygvd.f(3). Periodt. π
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms