SRC/sggev3.f(3)
β¨ NAME β¨
SRC/sggev3.f β okay so bestie, this is the Library Functions Manual page for our main-character LAPACK subroutine. No cap, itβs the sggev3 page, and weβre gonna cover every single detail. π
π SYNOPSIS π
π§ Functions/Subroutines π§
subroutine sggev3 (jobvl, jobvr, n, a, lda, b, ldb, alphar, alphai,
beta, vl, ldvl, vr, ldvr, work, lwork, info)
SGGEV3 computes the eigenvalues and, optionally, the left and/or
right eigenvectors for GE matrices (blocked algorithm)
π¦ Function/Subroutine Documentation π¦
subroutine sggev3 (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)
SGGEV3 computes the eigenvalues and, optionally, the left and/or right
eigenvectors for GE matrices (blocked algorithm)
π Purpose π
Okay so the whole point: SGGEV3 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. Periodt. π
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 way thatβs literally the setup, fr fr β¨
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βJOBVLisCHARACTER*1.= 'N': do not compute the left generalized eigenvectors;= 'V': compute the left generalized eigenvectors. iykyk β¨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βAisREAL array, dimension (LDA, N). On entry, the matrixAin the pair(A,B). On exit,Ahas been overwritten. (yes, it gets clobbered, no cap) πLDAβLDAisINTEGER. The leading dimension ofA.LDA >= max(1,N). πBβBisREAL array, dimension (LDB, N). On entry, the matrixBin the pair(A,B). On exit,Bhas been overwritten. π«ΆLDBβLDBisINTEGER. The leading dimension ofB.LDB >= max(1,N). πALPHARβALPHARisREAL array, dimension (N). βALPHAIβALPHAIisREAL array, dimension (N). πBETAβBETAisREAL array, 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)-steigenvalues 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). π (do not just divide, bestie)
- Note: the quotients
VLβVLisREAL array, dimension (LDVL,N). IfJOBVL = '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), the j-th column ofVL. If the j-th and(j+1)-theigenvalues 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 hasabs(real part)+abs(imag. part)=1. Not referenced ifJOBVL = 'N'. πLDVLβLDVLisINTEGER. The leading dimension of the matrixVL.LDVL >= 1, and ifJOBVL = 'V',LDVL >= N. πVRβVRisREAL array, dimension (LDVR,N). IfJOBVR = '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), the j-th column ofVR. If the j-th and(j+1)-theigenvalues 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 hasabs(real part)+abs(imag. part)=1. Not referenced ifJOBVR = 'N'. π¦LDVRβLDVRisINTEGER. The leading dimension of the matrixVR.LDVR >= 1, and ifJOBVR = 'V',LDVR >= N. β¨WORKβWORKisREAL array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK. π₯LWORKβLWORKisINTEGER. The dimension of the arrayWORK.LWORK >= MAX(1,8*N). For good performance,LWORKshould generally be larger. IfLWORK = -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. workspace query arc π«Ά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 inSLAQZ0.=N+2: error return fromSTGEVC. π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 225 of file sggev3.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay thatβs the whole page, bestie! Youβre looking at LAPACK Version 3.12.0, and this is the SRC/sggev3.f(3) page. slay, bye π
β¨
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms