SRC/cggev3.f(3)
β¨ NAME β¨
okay so bestie, this is the Library Functions Manual page for SRC/cggev3.f β yes, the cggev3 docs. Itβs giving βblocked-algorithm generalized eigenvaluesβ energy, and weβre gonna go through every single detail. π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine cggev3 (...)βCGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices (blocked algorithm)
subroutine cggev3 (jobvl, jobvr, n, a, lda, b, ldb, alpha, beta, vl,
ldvl, vr, ldvr, work, lwork, rwork, info)
π Function/Subroutine Documentation π
subroutine cggev3
subroutine cggev3 (character jobvl, character jobvr, integer n, complex,
dimension( lda, * ) a, integer lda, complex, dimension( ldb, * ) b,
integer ldb, complex, dimension( * ) alpha, complex, dimension( * )
beta, complex, dimension( ldvl, * ) vl, integer ldvl, complex,
dimension( ldvr, * ) vr, integer ldvr, complex, dimension( * ) work,
integer lwork, real, dimension( * ) rwork, integer info)
CGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices (blocked algorithm)
πΈ Purpose πΈ
CGGEV3 computes, for a pair of N-by-N complex nonsymmetric matrices (A,B), the generalized eigenvalues, and optionally, the left and/or right generalized eigenvectors.
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 generalized eigenvector v(j) corresponding to the generalized eigenvalue lambda(j) of (A,B) satisfies
A * v(j) = lambda(j) * B * v(j).
The left generalized eigenvector u(j) corresponding to the generalized eigenvalues 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βJOBVL is CHARACTER*1= 'N':do not compute the left generalized eigenvectors;= 'V':compute the left generalized eigenvectors.
JOBVRβJOBVR is CHARACTER*1= 'N':do not compute the right generalized eigenvectors;= 'V':compute the right generalized eigenvectors.
NβN is INTEGER; the order of the matricesA,B,VL, andVR.N >= 0.AβA is COMPLEX array, dimension (LDA, N); on entry, the matrixAin the pair(A,B). On exit,Ahas been overwritten.LDAβLDA is INTEGER; the leading dimension ofA.LDA >= max(1,N).BβB is COMPLEX array, dimension (LDB, N); on entry, the matrixBin the pair(A,B). On exit,Bhas been overwritten.LDBβLDB is INTEGER; the leading dimension ofB.LDB >= max(1,N).ALPHAβALPHA is COMPLEX array, dimension (N).BETAβBETA is COMPLEX array, dimension (N); on exit,ALPHA(j)/BETA(j),j=1,...,N, will be the generalized eigenvalues.- Note: the quotients
ALPHA(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,
ALPHAwill be always less than and usually comparable withnorm(A)in magnitude, andBETAalways less than and usually comparable withnorm(B).
- Note: the quotients
VLβVL is COMPLEX array, dimension (LDVL,N).- If
JOBVL = 'V', the left generalized eigenvectorsu(j)are stored one after another in the columns ofVL, in the same order as their eigenvalues. - Each eigenvector is scaled so the largest component has
abs(real part) + abs(imag. part) = 1. - Not referenced if
JOBVL = 'N'.
- If
LDVLβLDVL is INTEGER; the leading dimension of the matrixVL.LDVL >= 1, and ifJOBVL = 'V',LDVL >= N.VRβVR is COMPLEX array, dimension (LDVR,N).- If
JOBVR = 'V', the right generalized eigenvectorsv(j)are stored one after another in the columns ofVR, in the same order as their eigenvalues. - Each eigenvector is scaled so the largest component has
abs(real part) + abs(imag. part) = 1. - Not referenced if
JOBVR = 'N'.
- If
LDVRβLDVR is INTEGER; the leading dimension of the matrixVR.LDVR >= 1, and ifJOBVR = 'V',LDVR >= N.WORKβWORK is COMPLEX array, dimension (MAX(1,LWORK)); on exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORK is INTEGER; the dimension of the arrayWORK.LWORK >= MAX(1,2*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,
RWORKβRWORK is REAL array, dimension (8*N).INFOβINFO is 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, butALPHA(j)andBETA(j)should be correct forj=INFO+1,...,N.> N:=N+1:other then QZ iteration failed inCHGEQZ,=N+2:error return fromCTGEVC.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 215 of file cggev3.f.
π« Author π«
Generated automatically by Doxygen for LAPACK from the source code.
π«Ά Final sign-off, bestie: this page is fromLAPACK,Version 3.12.0, and the page isSRC/cggev3.f(3). Periodt. π
π¦ 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