DSYGVD(3)
π DSYGVD π
ok so bestie, this is the manual page for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dsygvd.f β yes that's the whole path, that's literally the NAME section, we don't make the rules π«Ά β and it lives in the LAPACK gang, dsygvd.f(3), Library Functions Manual. Sit down, hydrate, we're doing linear algebra.
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine DSYGVD (itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork, iwork, liwork, info)β that's the girl. that's the whole function.DSYGVD.
πΈ Function/Subroutine Documentation πΈ
subroutine DSYGVD (integer itype, character jobz, character uplo, integer n,
double precision, dimension( lda, * ) a, integer lda, double precision,
dimension( ldb, * ) b, integer ldb, double precision, dimension( * ) w,
double precision, dimension( * ) work, integer lwork, integer,
dimension( * ) iwork, integer liwork, integer info)
DSYGVD β iconic, no notes.
π Purpose π
DSYGVD 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. periodt. π
π 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βAisDOUBLE PRECISIONarray, dimension(LDA, N). On entry, the symmetric matrixA. IfUPLO = 'U', the leading N-by-N upper triangular part ofAcontains the upper triangular part of the matrixA. IfUPLO = 'L', the leading N-by-N lower 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. π she's gone, bestie.
LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).BβBisDOUBLE PRECISIONarray, dimension(LDB, N). On entry, the symmetric matrixB. IfUPLO = 'U', the leading N-by-N upper triangular part ofBcontains the upper triangular part of the matrixB. IfUPLO = 'L', the leading N-by-N lower 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βWisDOUBLE PRECISIONarray, dimension(N). IfINFO = 0, the eigenvalues in ascending order. sorted, slayed, ascending. βWORKβWORKisDOUBLE PRECISIONarray, 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βIWORKisINTEGERarray, 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:DPOTRForDSYEVDreturned an error code:<= N: ifINFO = iandJOBZ = 'N', then the algorithm failed to converge; i off-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 order i ofBis not positive. The factorization ofBcould not be completed and no eigenvalues or eigenvectors were computed. π it's giving "we tried."
π§ Author π§
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Further Details π
Modified so that no backsubstitution is performed if DSYEVD 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.
lowkey a glow-up patch note. π
π¦ Contributors π¦
Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
π Definition π
Definition at line 219 of file dsygvd.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
ok that's the whole page bestie, go forth and diagonalize responsibly β¨π«Ά β this was dsygvd.f(3) from the LAPACK library, Version 3.12.0, living at /home/abui...RC/dsygvd.f. mwah. ππ
π¦ 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