geev(3)
β¨ geev β from the Library Functions Manual, like, geev(3) β¨
okay bestie, sit down, hydrate, because this one is a whole journey π this is the geev(3) page and it's giving "eigen-everything" energy β no cap.
πΈ NAME πΈ
geev - geev: eig
(yes that's literally it, she's mysterious, she's iconic, she's eig π
)
π¦ SYNOPSIS π¦
β¨ Functions β¨
subroutine cgeev (jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info)
subroutine cgeev (jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work,
lwork, rwork, info)
CGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices π
subroutine dgeev (jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info)
subroutine dgeev (jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr,
work, lwork, info)
DGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices β¨
subroutine sgeev (jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info)
subroutine sgeev (jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr,
work, lwork, info)
SGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices π
subroutine zgeev (jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info)
subroutine zgeev (jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work,
lwork, rwork, info)
ZGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices π
π Detailed Description π
this section is lowkey just a heading in the original β nothing underneath it, and we respect the mystery π«Ά so there's literally nothing else here. moving on, main character energy only.
π Function Documentation π
π subroutine cgeev (character jobvl, character jobvr, integer n, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) w, complex, dimension( ldvl, * ) vl, integer ldvl, complex, dimension( ldvr, * ) vr, integer ldvr, complex, dimension( * ) work, integer lwork, real, dimension( * ) rwork, integer info)
subroutine cgeev (character jobvl, character jobvr, integer n, complex,
dimension( lda, * ) a, integer lda, complex, dimension( * ) w, complex,
dimension( ldvl, * ) vl, integer ldvl, complex, dimension( ldvr, * ) vr,
integer ldvr, complex, dimension( * ) work, integer lwork, real,
dimension( * ) rwork, integer info)
CGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices π₯
πΈ Purpose πΈ
okay so here's the tea, straight from the source:
CGEEV computes for an N-by-N complex nonsymmetric matrix A, the eigenvalues and, optionally, the left and/or right eigenvectors.
the right eigenvector v(j) of A satisfies:
A * v(j) = lambda(j) * v(j)
where lambda(j) is its eigenvalue π
the left eigenvector u(j) of A satisfies:
u(j)**H * A = lambda(j) * u(j)**H
where u(j)**H denotes the conjugate transpose of u(j) β¨
the computed eigenvectors are normalized to have Euclidean norm equal to 1 and largest component real β that's the glow-up, periodt π
π Parameters π
JOBVLβ isCHARACTER*1= 'N': left eigenvectors ofAare not computed;= 'V': left eigenvectors of are computed.
JOBVRβ isCHARACTER*1= 'N': right eigenvectors ofAare not computed;= 'V': right eigenvectors ofAare computed.
Nβ isINTEGER. The order of the matrixA.N >= 0. π¦Aβ isCOMPLEXarray, dimension(LDA,N). On entry, theN-by-NmatrixA. On exit,Ahas been overwritten. (she gets a whole new look, ngl π)LDAβ isINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).Wβ isCOMPLEXarray, dimension(N).Wcontains the computed eigenvalues βVLβ isCOMPLEXarray, 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
JOBVL = 'N',VLis not referenced. u(j) = VL(:,j), thej-th column ofVL. π
- If
LDVLβ isINTEGER. The leading dimension of the arrayVL.LDVL >= 1; ifJOBVL = 'V',LDVL >= N.VRβ isCOMPLEXarray, 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
JOBVR = 'N',VRis not referenced. v(j) = VR(:,j), thej-th column ofVR. πΈ
- If
LDVRβ isINTEGER. The leading dimension of the arrayVR.LDVR >= 1; ifJOBVR = 'V',LDVR >= N.WORKβ isCOMPLEXarray, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβ isINTEGER. The dimension of the arrayWORK.LWORK >= max(1,2*N). For good performance,LWORKmust generally be larger.
real talk: 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β isREALarray, dimension(2*N).INFOβ isINTEGER= 0: successful exit π< 0: ifINFO = -i, thei-th argument had an illegal value.> 0: ifINFO = i, the QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed; elementsi+1:NofWcontain eigenvalues which have converged.
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 178 of file cgeev.f. π
π subroutine dgeev (character jobvl, character jobvr, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) wr, double precision, dimension( * ) wi, double precision, dimension( ldvl, * ) vl, integer ldvl, double precision, dimension( ldvr, * ) vr, integer ldvr, double precision, dimension( * ) work, integer lwork, integer info)
subroutine dgeev (character jobvl, character jobvr, integer n, double
precision, dimension( lda, * ) a, integer lda, double precision,
dimension( * ) wr, double precision, dimension( * ) wi, double
precision, dimension( ldvl, * ) vl, integer ldvl, double precision,
dimension( ldvr, * ) vr, integer ldvr, double precision, dimension( * )
work, integer lwork, integer info)
DGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices π₯
πΈ Purpose πΈ
the actual wording, because we don't paraphrase the math bestie:
DGEEV computes for an N-by-N real nonsymmetric matrix A, the eigenvalues and, optionally, the left and/or right eigenvectors.
the right eigenvector v(j) of A satisfies:
A * v(j) = lambda(j) * v(j)
where lambda(j) is its eigenvalue π
the left eigenvector u(j) of A satisfies:
u(j)**H * A = lambda(j) * u(j)**H
where u(j)**H denotes the conjugate-transpose of u(j) β¨
the computed eigenvectors are normalized to have Euclidean norm equal to 1 and largest component real β same glow-up rules as her complex sister π
π Parameters π
JOBVLβ isCHARACTER*1= 'N': left eigenvectors ofAare not computed;= 'V': left eigenvectors ofAare computed.
JOBVRβ isCHARACTER*1= 'N': right eigenvectors ofAare not computed;= 'V': right eigenvectors ofAare computed.
Nβ isINTEGER. The order of the matrixA.N >= 0. π¦Aβ isDOUBLE PRECISIONarray, dimension(LDA,N). On entry, theN-by-NmatrixA. On exit,Ahas been overwritten. (she said "new me, who dis" π)LDAβ isINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).WRβ isDOUBLE PRECISIONarray, dimension(N).WIβ isDOUBLE PRECISIONarray, dimension(N).WRandWIcontain the real and imaginary parts, respectively, of the computed eigenvalues. Complex conjugate pairs of eigenvalues appear consecutively with the eigenvalue having the positive imaginary part first βVLβ isDOUBLE PRECISIONarray, 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
JOBVL = 'N',VLis not referenced. - If the
j-th eigenvalue is real, thenu(j) = VL(:,j), thej-th column ofVL. - If the
j-th and(j+1)-st eigenvalues form a complex conjugate pair, thenu(j) = VL(:,j) + i*VL(:,j+1)andu(j+1) = VL(:,j) - i*VL(:,j+1). π
- If
LDVLβ isINTEGER. The leading dimension of the arrayVL.LDVL >= 1; ifJOBVL = 'V',LDVL >= N.VRβ isDOUBLE PRECISIONarray, 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
JOBVR = 'N',VRis not referenced. - If the
j-th eigenvalue is real, thenv(j) = VR(:,j), thej-th column ofVR. - If the
j-th and(j+1)-st eigenvalues form a complex conjugate pair, thenv(j) = VR(:,j) + i*VR(:,j+1)andv(j+1) = VR(:,j) - i*VR(:,j+1). πΈ
- If
LDVRβ isINTEGER. The leading dimension of the arrayVR.LDVR >= 1; ifJOBVR = 'V',LDVR >= N.WORKβ isDOUBLE PRECISIONarray, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβ isINTEGER. The dimension of the arrayWORK.LWORK >= max(1,3*N), and ifJOBVL = 'V'orJOBVR = 'V',LWORK >= 4*N. For good performance,LWORKmust generally be larger.
okay important, don't skip this: 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π
INFOβ isINTEGER= 0: successful exit π< 0: ifINFO = -i, thei-th argument had an illegal value.> 0: ifINFO = i, the QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed; elementsi+1:NofWRandWIcontain eigenvalues which have converged.
π Author π
Univ. of Tennessee
Univ. of California Berkeley
β¦okay so that's dgeev fully handled, and before we move on, the credits, because we always give credit π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
dgeev is chillin' at Definition at line 190 of file dgeev.f.
π¦ sgeev β the real nonsymmetric one (eigenvalues + optional left/right eigenvectors)
subroutine sgeev (character jobvl, character jobvr, integer n, real,
dimension( lda, * ) a, integer lda, real, dimension( * ) wr, real,
dimension( * ) wi, real, dimension( ldvl, * ) vl, integer ldvl, real,
dimension( ldvr, * ) vr, integer ldvr, real, dimension( * ) work,
integer lwork, integer info)
SGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices β¨
π Purpose
Okay so here's the tea, bestie: SGEEV computes, for an N-by-N real nonsymmetric matrix A, the eigenvalues and (if you ask nicely) the left and/or right eigenvectors.
The right eigenvector v(j) of A satisfies:
A * v(j) = lambda(j) * v(j)
where lambda(j) is its eigenvalue. Iconic.
The left eigenvector u(j) of A satisfies:
u(j)**H * A = lambda(j) * u(j)**H
where u(j)**H denotes the conjugate-transpose of u(j). π«Ά
The computed eigenvectors are normalized to have Euclidean norm equal to 1 and largest component real. Periodt. No cap.
πΈ Parameters
JOBVLβCHARACTER*1= 'N': left eigenvectors ofAare not computed;= 'V': left eigenvectors ofAare computed.
JOBVRβCHARACTER*1= 'N': right eigenvectors ofAare not computed;= 'V': right eigenvectors ofAare computed.
NβINTEGER- The order of the matrix
A.N >= 0.
- The order of the matrix
AβREALarray, dimension(LDA,N)- On entry, the N-by-N matrix
A. - On exit,
Ahas been overwritten. (she's gone, she's not coming back π)
- On entry, the N-by-N matrix
LDAβINTEGER- The leading dimension of the array
A.LDA >= max(1,N).
- The leading dimension of the array
WRβREALarray, dimension(N)WIβREALarray, dimension(N)WRandWIcontain the real and imaginary parts, respectively, of the computed eigenvalues. Complex conjugate pairs of eigenvalues appear consecutively with the eigenvalue having the positive imaginary part first. π
VLβREALarray, 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
JOBVL = 'N',VLis not referenced. - If the j-th eigenvalue is real, then
u(j) = VL(:,j), the j-th column ofVL. - If the j-th and (j+1)-st eigenvalues form a complex conjugate pair, then
u(j) = VL(:,j) + i*VL(:,j+1)andu(j+1) = VL(:,j) - i*VL(:,j+1).
- If
LDVLβINTEGER- The leading dimension of the array
VL.LDVL >= 1; ifJOBVL = 'V',LDVL >= N.
- The leading dimension of the array
VRβREALarray, 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
JOBVR = 'N',VRis not referenced. - If the j-th eigenvalue is real, then
v(j) = VR(:,j), the j-th column ofVR. - If the j-th and (j+1)-st eigenvalues form a complex conjugate pair, then
v(j) = VR(:,j) + i*VR(:,j+1)andv(j+1) = VR(:,j) - i*VR(:,j+1).
- If
LDVRβINTEGER- The leading dimension of the array
VR.LDVR >= 1; ifJOBVR = 'V',LDVR >= N.
- The leading dimension of the array
WORKβREALarray, 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,3*N), and ifJOBVL = 'V'orJOBVR = 'V',LWORK >= 4*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.> 0: ifINFO = i, the QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed; elementsi+1:NofWRandWIcontain eigenvalues which have converged.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
sgeev is posted up at Definition at line 190 of file sgeev.f.
π§ zgeev β the complex*16 sibling, living her best life
subroutine zgeev (character jobvl, character jobvr, integer n, complex*16,
dimension( lda, * ) a, integer lda, complex*16, dimension( * ) w,
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)
ZGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices β¨
π Purpose
ZGEEV computes, for an N-by-N complex nonsymmetric matrix A, the eigenvalues and, optionally, the left and/or right eigenvectors.
The right eigenvector v(j) of A satisfies:
A * v(j) = lambda(j) * v(j)
where lambda(j) is its eigenvalue.
The left eigenvector u(j) of A satisfies:
u(j)**H * A = lambda(j) * u(j)**H
where u(j)**H denotes the conjugate transpose of u(j).
The computed eigenvectors are normalized to have Euclidean norm equal to 1 and largest component real. Same energy as her real sister, honestly. π«Ά
πΈ Parameters
JOBVLβCHARACTER*1= 'N': left eigenvectors ofAare not computed;= 'V': left eigenvectors of are computed.
JOBVRβCHARACTER*1= 'N': right eigenvectors ofAare not computed;= 'V': right eigenvectors ofAare computed.
NβINTEGER- The order of the matrix
A.N >= 0.
- The order of the matrix
AβCOMPLEX*16array, dimension(LDA,N)- On entry, the N-by-N matrix
A. - On exit,
Ahas been overwritten. bye bestie π
- On entry, the N-by-N matrix
LDAβINTEGER- The leading dimension of the array
A.LDA >= max(1,N).
- The leading dimension of the array
WβCOMPLEX*16array, dimension(N)Wcontains the computed eigenvalues. π
VLβCOMPLEX*16array, 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
JOBVL = 'N',VLis not referenced. u(j) = VL(:,j), the j-th column ofVL.
- If
LDVLβINTEGER- The leading dimension of the array
VL.LDVL >= 1; ifJOBVL = 'V',LDVL >= N.
- The leading dimension of the array
VRβCOMPLEX*16array, 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
JOBVR = 'N',VRis not referenced. v(j) = VR(:,j), the j-th column ofVR.
- If
LDVRβINTEGER- The leading dimension of the array
VR.LDVR >= 1; ifJOBVR = 'V',LDVR >= N.
- The leading dimension of the array
WORKβCOMPLEX*16array, 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,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βDOUBLE PRECISIONarray, dimension(2*N)INFOβINTEGER= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value.> 0: ifINFO = i, the QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed; elementsi+1:NofWcontain eigenvalues which have converged.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
zgeev is serving at Definition at line 178 of file zgeev.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code. (not a human, just a very diligent little robot π)
And that's the whole page, bestie β you ate that. π This one's LAPACK, Version 3.12.0, churned out by Doxygen straight from the source code, and it's signed off on the geev(3) page. Go forth and diagonalize responsibly. π¦β¨π
π¦ 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