ggev(3)
π NAME π
This is ggev(3) from the Library Functions Manual, bestie β and it's giving generalized eigenvalue core. Part 1, let's go. π
ggev β ggev: eig, unblocked
π SYNOPSIS π
β¨ Functions β¨
cggev
subroutine cggev (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)
CGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices.
dggev
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.
sggev
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.
zggev
subroutine zggev (jobvl, jobvr, n, a, lda, b, ldb, alpha, beta, vl,
ldvl, vr, ldvr, work, lwork, rwork, info)
ZGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices.
π« Detailed Description π«
This section is lowkey just a landing pad β the real function tea is right below. π«Ά
π₯ Function Documentation π₯
π§ subroutine cggev
subroutine cggev (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)
CGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices.
πΈ Purpose:
Okay so CGGEV 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. 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).
π 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 matrices
A,B,VL, andVR.N >= 0.
- The order of the matrices
AβA is COMPLEX array, dimension (LDA, N)- On entry, the matrix
Ain the pair(A,B). - On exit,
Ahas been overwritten. So don't expect your originalAto survive, bestie. π
- On entry, the matrix
LDAβLDA is INTEGER- The leading dimension of
A.LDA >= max(1,N).
- The leading dimension of
BβB is COMPLEX array, dimension (LDB, N)- On entry, the matrix
Bin the pair(A,B). - On exit,
Bhas been overwritten.
- On entry, the matrix
LDBβLDB is INTEGER- The leading dimension of
B.LDB >= max(1,N).
- The leading dimension of
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.
- On exit,
Note, bestie: 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β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 matrix
VL.LDVL >= 1, and ifJOBVL = 'V',LDVL >= N.
- The leading dimension of the matrix
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 matrix
VR.LDVR >= 1, and ifJOBVR = 'V',LDVR >= N.
- The leading dimension of the matrix
WORKβWORK is COMPLEX array, dimension (MAX(1,LWORK))- On exit, if
INFO = 0,WORK(1)returns the optimalLWORK.
- On exit, if
LWORKβLWORK is INTEGER- The dimension of the array
WORK.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.
- The dimension of the array
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 cggev.f.
π¦ subroutine dggev
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.
πΈ Purpose:
DGGEV 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. β¨
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β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 matrices
A,B,VL, andVR.N >= 0.
- The order of the matrices
AβA is 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βLDA is INTEGER- The leading dimension of
A.LDA >= max(1,N).
- The leading dimension of
BβB is 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βLDB is INTEGER- The leading dimension of
B.LDB >= max(1,N).
- The leading dimension of
ALPHARβALPHAR is DOUBLE PRECISION array, dimension (N)ALPHAIβALPHAI is DOUBLE PRECISION array, dimension (N)BETA- 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 note note: the quotients
ALPHAR(j)/BETA(j)andALPHAI(j)/BETA(j)may easily over- or underflow, andBETA(j)may even be zero. So do not go naively computing the ratioalpha/beta, bestie β that's a trap and it will not slay. However,ALPHARandALPHAIwill be always less than and usually comparable withnorm(A)in magnitude, andBETAalways less than and usually comparable withnorm(B). so like, they're well-behaved, it's fine π
- β οΈ note note note: the quotients
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, then
u(j) = VL(:,j)β literally just the j-th column ofVL, iconic. - If the j-th and (j+1)-th eigenvalues form a complex conjugate pair, then
u(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'β she's off duty, don't bother her.
- 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, then
v(j) = VR(:,j), the j-th column ofVR. - If the j-th and (j+1)-th eigenvalues form a complex conjugate pair, then
v(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. she's telling you what she wants, listen to her π«Ά
- On exit, if
LWORKβ INTEGER- The dimension of the array
WORK.LWORK >= max(1,8*N). - For good performance,
LWORKmust generally be larger. (bigger workspace = better vibes, fr fr) - 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, 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 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. β
subroutine sggev β the REAL one π¦
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 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. that's her whole job and she ate π
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. yes really, both zero is allowed, no cap.
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β REAL array, dimension(LDA, N)- On entry, the matrix
Ain the pair(A,B). - On exit,
Ahas been overwritten. π she's gone, mourned, moving on.
- On entry, the matrix
LDAβ INTEGER- The leading dimension of
A.LDA >= max(1,N).
- The leading dimension of
Bβ REAL array, dimension(LDB, N)- On entry, the matrix
Bin the pair(A,B). - On exit,
Bhas been overwritten. also gone. it's giving sacrifice for the greater good π«Ά
- On entry, the matrix
LDBβ INTEGER- The leading dimension of
B.LDB >= max(1,N).
- The leading dimension of
ALPHARβ REAL array, dimension(N)ALPHAIβ REAL array, dimension(N)BETAβ REAL 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)-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β REAL 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), 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β INTEGER- The leading dimension of the matrix
VL.LDVL >= 1, and ifJOBVL = 'V',LDVL >= N.
- The leading dimension of the matrix
VRβ REAL 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), 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β INTEGER- The leading dimension of the matrix
VR.LDVR >= 1, and ifJOBVR = 'V',LDVR >= N.
- The leading dimension of the matrix
WORKβ REAL 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, 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. π
Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 224 of file sggev.f.
subroutine zggev (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)
ZGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices π
β¨ Purpose β¨
Okay so, here's the tea: ZGGEV 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. no cap, that pair is doing main character work π
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). conjugate-transpose is literally the moment, iykyk β¨
π 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 matrices A, B, VL, and VR. N >= 0.
A
A is COMPLEX*16 array, dimension (LDA, N) β on entry, the matrix A in the pair (A,B). On exit, A has been overwritten. rip original A, but it served looks π«Ά
LDA
LDA is INTEGER β the leading dimension of A. LDA >= max(1,N).
B
B is COMPLEX*16 array, dimension (LDB, N) β on entry, the matrix B in the pair (A,B). On exit, B has been overwritten. also getting the overwrite treatment, periodt π
LDB
LDB is INTEGER β the leading dimension of B. LDB >= max(1,N).
ALPHA
ALPHA is COMPLEX*16 array, dimension (N) πΈ
BETA
BETA is COMPLEX*16 array, 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). bestie do NOT just divide all willy-nilly, that is the warning π
VL
VL is COMPLEX*16 array, dimension (LDVL,N)
If JOBVL = 'V', the left generalized eigenvectors u(j) are stored one after another in the columns of VL, 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'.
LDVL
LDVL is INTEGER β the leading dimension of the matrix VL. LDVL >= 1, and if JOBVL = 'V', LDVL >= N.
VR
VR is COMPLEX*16 array, dimension (LDVR,N)
If JOBVR = 'V', the right generalized eigenvectors v(j) are stored one after another in the columns of VR, 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'.
LDVR
LDVR is INTEGER β the leading dimension of the matrix VR. LDVR >= 1, and if JOBVR = 'V', LDVR >= N.
WORK
WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK. slay, workspace said βI got youβ β¨
LWORK
LWORK is INTEGER β the dimension of the array WORK. LWORK >= max(1,2*N).
For good performance, LWORK must generally be larger.
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. query mode is lowkey iconic π
RWORK
RWORK is DOUBLE PRECISION 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 inZHGEQZ,=N+2: error return fromZTGEVC. when this happens, it is giving βthe math said noβ energy, fr fr π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 215 of file zggev.f.
π§ Author π§
Generated automatically by Doxygen for LAPACK from the source code.
And that's the whole vibe, bestie β signing off from the LAPACK Version 3.12.0 ggev(3) corner with sparkle and respect for the QZ iteration π«Άβ¨π
π¦ 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