/home/abui...RC/dggev.f(3)
π NAME π
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dggev.f
From the LAPACK Library Functions Manual, this is the dggev.f(3) page, bestie. We're talking about DGGEV, and it's lowkey iconic.
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines πΈ
subroutine DGGEV (jobvl, jobvr, n, a, lda, b, ldb, alphar, alphai, beta,
vl, ldvl, vr, ldvr, work, lwork, info)
DGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices. periodt.
π§ Function/Subroutine Documentation π§
subroutine DGGEV (character jobvl, character jobvr, integer n, double
precision, dimension( lda, * ) a, integer lda, double precision,
dimension( ldb, * ) b, integer ldb, double precision, dimension( * )
alphar, double precision, dimension( * ) alphai, double precision,
dimension( * ) beta, double precision, dimension( ldvl, * ) vl, integer
ldvl, double precision, dimension( ldvr, * ) vr, integer ldvr, double
precision, dimension( * ) work, integer lwork, integer info)
DGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices. iykyk.
π― Purpose π―
So, for a pair of N-by-N real nonsymmetric matrices (A,B), DGGEV computes the generalized eigenvalues, and optionally the left and/or right generalized eigenvectors. Slay.
A generalized eigenvalue for a pair of matrices (A,B) is a scalar lambda or a ratio alpha/beta = lambda, such that A - lambda*B is singular. It is usually represented as the pair (alpha,beta), as there is a reasonable interpretation for beta=0, and even for both being zero.
The right eigenvector v(j) corresponding to the eigenvalue lambda(j) of (A,B) satisfies:
A * v(j) = lambda(j) * B * v(j).
The left eigenvector u(j) corresponding to the eigenvalue lambda(j) of (A,B) satisfies:
u(j)**H * A = lambda(j) * u(j)**H * B .
where u(j)**H is the conjugate-transpose of u(j).
π Parameters π
JOBVLβCHARACTER*1= 'N': do not compute the left generalized eigenvectors;= 'V': compute the left generalized eigenvectors.
JOBVRβCHARACTER*1= 'N': do not compute the right generalized eigenvectors;= 'V': compute the right generalized eigenvectors.
NβINTEGER- The order of the matrices
A,B,VL, andVR.N >= 0.
- The order of the matrices
AβDOUBLE PRECISION array, dimension (LDA, N)- On entry, the matrix
Ain the pair(A,B). - On exit,
Ahas been overwritten.
- On entry, the matrix
LDAβINTEGER- The leading dimension of
A.LDA >= max(1,N).
- The leading dimension of
BβDOUBLE PRECISION array, dimension (LDB, N)- On entry, the matrix
Bin the pair(A,B). - On exit,
Bhas been overwritten.
- On entry, the matrix
LDBβINTEGER- The leading dimension of
B.LDB >= max(1,N).
- The leading dimension of
ALPHARβDOUBLE PRECISION array, dimension (N)- That's the whole description, bestie. No extra lore here.
ALPHAIβDOUBLE PRECISION array, dimension (N)- Same energy as
ALPHAR: just the array and its dimension.
- Same energy as
BETAβDOUBLE PRECISION array, dimension (N)- On exit,
(ALPHAR(j) + ALPHAI(j)*i)/BETA(j),j=1,...,N, will be the generalized eigenvalues. - If
ALPHAI(j)is zero, then thej-th eigenvalue is real; if positive, then thej-th and(j+1)-st eigenvalues are a complex conjugate pair, withALPHAI(j+1)negative. - Careful, bestie: the quotients
ALPHAR(j)/BETA(j)andALPHAI(j)/BETA(j)may easily over- or underflow, andBETA(j)may even be zero. Thus, the user should avoid naively computing the ratioalpha/beta. However,ALPHARandALPHAIwill be always less than and usually comparable withnorm(A)in magnitude, andBETAalways less than and usually comparable withnorm(B).
- On exit,
VLβDOUBLE PRECISION array, dimension (LDVL,N)- If
JOBVL = 'V', the left eigenvectorsu(j)are stored one after another in the columns ofVL, in the same order as their eigenvalues. - If the
j-th eigenvalue is real, thenu(j) = VL(:,j), thej-th column ofVL. - If the
j-th and(j+1)-th eigenvalues form a complex conjugate pair, thenu(j) = VL(:,j)+i*VL(:,j+1)andu(j+1) = VL(:,j)-i*VL(:,j+1). - Each eigenvector is scaled so the largest component has
abs(real part)+abs(imag. part)=1. - Not referenced if
JOBVL = 'N'.
- If
LDVLβINTEGER- The leading dimension of the matrix
VL.LDVL >= 1, and ifJOBVL = 'V',LDVL >= N.
- The leading dimension of the matrix
VRβDOUBLE PRECISION array, dimension (LDVR,N)- If
JOBVR = 'V', the right eigenvectorsv(j)are stored one after another in the columns ofVR, in the same order as their eigenvalues. - If the
j-th eigenvalue is real, thenv(j) = VR(:,j), thej-th column ofVR. - If the
j-th and(j+1)-th eigenvalues form a complex conjugate pair, thenv(j) = VR(:,j)+i*VR(:,j+1)andv(j+1) = VR(:,j)-i*VR(:,j+1). - Each eigenvector is scaled so the largest component has
abs(real part)+abs(imag. part)=1. - Not referenced if
JOBVR = 'N'.
- If
LDVRβINTEGER- The leading dimension of the matrix
VR.LDVR >= 1, and ifJOBVR = 'V',LDVR >= N.
- The leading dimension of the matrix
WORKβDOUBLE PRECISION array, dimension (MAX(1,LWORK))- On exit, if
INFO = 0,WORK(1)returns the optimalLWORK.
- On exit, if
LWORKβINTEGER- The dimension of the array
WORK.LWORK >= max(1,8*N). - For good performance,
LWORKmust generally be larger. - If
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA.
- The dimension of the array
INFOβINTEGER= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value.= 1,...,N: The QZ iteration failed. No eigenvectors have been calculated, butALPHAR(j),ALPHAI(j), andBETA(j)should be correct forj=INFO+1,...,N.> N:=N+1: other than QZ iteration failed inDHGEQZ.=N+2: error return fromDTGEVC.
πΈ Author πΈ
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 224 of file dggev.f.
π§Ύ Author π§Ύ
Generated automatically by Doxygen for LAPACK from the source code.
Okay bestie, that's the whole page β no cap, no skipped details. Cute sign-off from LAPACK Version 3.12.0, source file /home/abui...RC/dggev.f(3). πβ¨ππ¦π
π¦ 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