/home/abui...RC/sggev.f(3)
Okay so welcome to the Library Functions Manual page for /home/abui...RC/sggev.f(3) β this is the SGGEV entry, and yes bestie, we are keeping every single detail exactly where it belongs. π
β¨
π NAME π
The NAME section is literally this source path:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sggev.f
β¨ SYNOPSIS β¨
π«Ά Functions/Subroutines π«Ά
subroutine SGGEV (jobvl, jobvr, n, a, lda, b, ldb, alphar, alphai, beta, vl, ldvl, vr, ldvr, work, lwork, info)
SGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices β iconic behavior, no cap. π
π¦ Function/Subroutine Documentation π¦
πΈ subroutine SGGEV πΈ
subroutine SGGEV (character jobvl, character jobvr, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b, integer ldb, real, dimension( * ) alphar, real, dimension( * ) alphai, real, dimension( * ) beta, real, dimension( ldvl, * ) vl, integer ldvl, real, dimension( ldvr, * ) vr, integer ldvr, real, dimension( * ) work, integer lwork, integer info)
SGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices π«
π Purpose π
Okay so hereβs the vibe: SGGEV computes, for a pair of N-by-N real nonsymmetric matrices (A,B), the generalized eigenvalues, and optionally the left and/or right generalized eigenvectors. Obsessed. π¦
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βs usually represented as the pair (alpha,beta), because thereβs 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). Math but make it fashion. π
π§ Parameters π§
JOBVLβJOBVLisCHARACTER*1.= 'N':do not compute the left generalized eigenvectors;= 'V':compute the left generalized eigenvectors.
JOBVRβJOBVRisCHARACTER*1.= 'N':do not compute the right generalized eigenvectors;= 'V':compute the right generalized eigenvectors.
NβNisINTEGER. The order of the matricesA,B,VL, andVR.N >= 0.AβAisREALarray, dimension(LDA, N).- On entry, the matrix
Ain the pair(A,B). - On exit,
Ahas been overwritten.
- On entry, the matrix
LDAβLDAisINTEGER. The leading dimension ofA.LDA >= max(1,N).BβBisREALarray, dimension(LDB, N).- On entry, the matrix
Bin the pair(A,B). - On exit,
Bhas been overwritten.
- On entry, the matrix
LDBβLDBisINTEGER. The leading dimension ofB.LDB >= max(1,N).ALPHARβALPHARisREALarray, dimension(N).ALPHAIβALPHAIisREALarray, dimension(N).BETAβBETAisREALarray, dimension(N).- On exit,
(ALPHAR(j) + ALPHAI(j)*i)/BETA(j),j=1,...,N, will be the generalized eigenvalues. IfALPHAI(j)is zero, then the j-th eigenvalue is real; if positive, then the j-th and(j+1)-st eigenvalues are a complex conjugate pair, withALPHAI(j+1)negative. - Note: 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βVLisREALarray, 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, then
u(j) = VL(:,j), the j-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βLDVLisINTEGER. The leading dimension of the matrixVL.LDVL >= 1, and ifJOBVL = 'V',LDVL >= N.VRβVRisREALarray, 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, then
v(j) = VR(:,j), the j-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βLDVRisINTEGER. The leading dimension of the matrixVR.LDVR >= 1, and ifJOBVR = 'V',LDVR >= N.WORKβWORKisREALarray, dimension(MAX(1,LWORK)).- On exit, if
INFO = 0,WORK(1)returns the optimalLWORK.
- On exit, if
LWORKβLWORKisINTEGER. The dimension of the arrayWORK.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.
- For good performance,
INFOβINFOisINTEGER.= 0:successful exit.< 0:ifINFO = -i, the i-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 inSHGEQZ.=N+2:error return fromSTGEVC.
Bestie, keep those INFO values close β they are not decorative. π¨
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 224 of file sggev.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code. Auto-generated but still slaying. π
Catch you in the group chat β this was LAPACK Version 3.12.0, source: auto-generated by Doxygen for LAPACK from the source code, on the /home/abui...RC/sggev.f(3) page. Stay iconic, bestie πβ¨π
π¦ 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