ZGGEV3(3)
β¨ NAME β¨
Welcome to ZGGEV3(3) from the Library Functions Manual, bestie! π This page is literally about /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zggev3.f β yes, that whole path, no cap. It's the ZGGEV3 routine, and she's iconic.
πΈ SYNOPSIS πΈ
π¦ Functions/Subroutines π¦
subroutine ZGGEV3 (jobvl, jobvr, n, a, lda, b, ldb, alpha, beta, vl,
ldvl, vr, ldvr, work, lwork, rwork, info)
ZGGEV3 computes the eigenvalues and, optionally, the left and/or
right eigenvectors for GE matrices (blocked algorithm)
Okay so ZGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices, and it does it with the blocked algorithm. Slay. π
π Function/Subroutine Documentation π
π subroutine ZGGEV3 π
Here's the full signature, verbatim, because we do not play with specs:
subroutine ZGGEV3 (character jobvl, character jobvr, integer n, complex*16,
dimension( lda, * ) a, integer lda, complex*16, dimension( ldb, * ) b,
integer ldb, complex*16, dimension( * ) alpha, complex*16, dimension( *
) beta, complex*16, dimension( ldvl, * ) vl, integer ldvl, complex*16,
dimension( ldvr, * ) vr, integer ldvr, complex*16, dimension( * ) work,
integer lwork, double precision, dimension( * ) rwork, integer info)
And what does she do? ZGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices (blocked algorithm). Main character energy, fr fr. π
π Purpose π
Okay so picture a pair of N-by-N complex nonsymmetric matrices (A,B). ZGGEV3 computes the generalized eigenvalues for that pair, 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 is usually represented as the pair (alpha,beta), because there is a reasonable interpretation for beta=0, and even for both being zero. No cap.
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). Periodt. π
π 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 matricesA,B,VL, andVR.N >= 0. β¨AβCOMPLEX*16array, dimension(LDA, N). On entry, the matrixAin the pair(A,B). On exit,Ahas been overwritten. (So don't expect your originalAback, bestie. π)LDAβINTEGER. The leading dimension ofA.LDA >= max(1,N). πΈBβCOMPLEX*16array, dimension(LDB, N). On entry, the matrixBin the pair(A,B). On exit,Bhas been overwritten. πLDBβINTEGER. The leading dimension ofB.LDB >= max(1,N). πΈALPHAβCOMPLEX*16array, dimension(N). πBETAβCOMPLEX*16array, dimension(N). On exit,ALPHA(j)/BETA(j),j=1,...,N, will be the generalized eigenvalues. β οΈ Note: the quotientsALPHA(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).VLβCOMPLEX*16array, dimension(LDVL,N). IfJOBVL = '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 hasabs(real part) + abs(imag. part) = 1. Not referenced ifJOBVL = 'N'. π¦LDVLβINTEGER. The leading dimension of the matrixVL.LDVL >= 1, and ifJOBVL = 'V',LDVL >= N. β¨VRβCOMPLEX*16array, dimension(LDVR,N). IfJOBVR = '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 hasabs(real part) + abs(imag. part) = 1. Not referenced ifJOBVR = 'N'. π¦LDVRβINTEGER. The leading dimension of the matrixVR.LDVR >= 1, and ifJOBVR = 'V',LDVR >= N. β¨WORKβCOMPLEX*16array, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK. π₯LWORKβINTEGER. The dimension of the arrayWORK. 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. πRWORKβDOUBLE PRECISIONarray, dimension(8*N). πINFOβINTEGER.= 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, butALPHA(j)andBETA(j)should be correct forj=INFO+1,...,N.> N:=N+1: other then QZ iteration failed inZHGEQZ,=N+2: error return fromZTGEVC. π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 214 of file zggev3.f. π
π Author π
Generated automatically by Doxygen for LAPACK from the source code. π€
Big kiss from LAPACK, Version 3.12.0 β this page lives at /home/abui...RC/zggev3.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