/home/abui...RC/zgeev.f(3)
π /home/abui...RC/zgeev.f(3) β Library Functions Manual (we're in the LAPACK corner of the man pages, bestie)
okay so first things first: this page lives in the Library Functions Manual section, and it's the glow-up doc for zgeev.f. Yes the "file" is literally a Fortran source file, and yes we're reading its man page like it's a celebrity's wiki. iconic. π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgeev.f
like. that's the whole name. it's giving "my government name is a build path". no cap, that's genuinely how it's listed, and we respect it. π
π¦ SYNOPSIS π¦
Functions/Subroutines
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 β that's the whole vibe of this function, and honestly? it ate. π₯
π Function/Subroutine Documentation π
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. main character energy fr fr. β
πΈ Purpose πΈ
subtle flex: the original docs literally wrap all of this in !> Doxygen comment markers, so here's the tea exactly as written, just with better lighting:
!>ZGEEV computes for an N-by-N complex nonsymmetric matrix A, the eigenvalues and, optionally, the left and/or right eigenvectors.!>The right eigenvectorv(j)of A satisfies!>A * v(j) = lambda(j) * v(j)!>wherelambda(j)is its eigenvalue.!>The left eigenvectoru(j)of A satisfies!>u(j)**H * A = lambda(j) * u(j)**H!>whereu(j)**Hdenotes the conjugate transpose ofu(j).!>The computed eigenvectors are normalized to have Euclidean norm equal to 1 and largest component real.
so basically: eigenvalues, eigenvectors if you ask nicely, and everyone gets normalized to Euclidean norm 1 with the biggest component real. slay. π
π§ Parameters π§
JOBVL
!> JOBVL is CHARACTER*1
!>='N': left eigenvectors of A are not computed;!>='V': left eigenvectors of are computed.
(yes, "of are computed" β that's the original's wording, not me being silly. we keep the facts, we just add sparkle. π)
JOBVR
!> JOBVR is CHARACTER*1
!>='N': right eigenvectors of A are not computed;!>='V': right eigenvectors of A are computed.
N
!> N is INTEGER !> The order of the matrix A. N >= 0.
A
!> A is COMPLEX*16 array, dimension (LDA,N) !> On entry, the N-by-N matrix A. !> On exit, A has been overwritten.
β οΈ heads up bestie: your beautiful input matrix does not survive this. it gets overwritten. that's not a bug, that's the contract. π
LDA
!> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N).
W
!> W is COMPLEX*16 array, dimension (N) !> W contains the computed eigenvalues.
the moment you've all been waiting for. π
VL
!> VL is COMPLEX*16 array, dimension (LDVL,N) !> If JOBVL = 'V', the left eigenvectors u(j) are stored one after another in the columns of VL, in the same order as their eigenvalues. !> If JOBVL = 'N', VL is not referenced. !> u(j) = VL(:,j), the j-th column of VL.
LDVL
!> LDVL is INTEGER !> The leading dimension of the array VL. LDVL >= 1; if JOBVL = 'V', LDVL >= N.
VR
!> VR is COMPLEX*16 array, dimension (LDVR,N) !> If JOBVR = 'V', the right eigenvectors v(j) are stored one after another in the columns of VR, in the same order as their eigenvalues. !> If JOBVR = 'N', VR is not referenced. !> v(j) = VR(:,j), the j-th column of VR.
LDVR
!> LDVR is INTEGER !> The leading dimension of the array VR. LDVR >= 1; 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.
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.
π the-1workspace query is a whole mood: you're not doing the work, you're just asking "how much room do I need?" andXERBLAstays completely silent about it. not a single complaint. queen behavior.
RWORK
!> RWORK is DOUBLE PRECISION array, dimension (2*N)
INFO
!> INFO is 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.
π a positiveINFOmeans the QR algorithm gave up partway β no eigenvectors at all, and onlyi+1:NofWare actually trustworthy. read yourINFO, bestie. it's literally telling you which parts of the answer are real.
π«Ά Author π«Ά
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 178 of file zgeev.f.
π Author (the other one) π
Generated automatically by Doxygen for LAPACK from the source code. π€β¨ (the robots made this page, we just gave it lashes)
and that's the whole page, bestie β no notes, no skips, every single flag and caveat accounted for π
signing off with the official stamp: LAPACK, Version 3.12.0, live from /home/abui...RC/zgeev.f(3). go compute some eigenvalues, you absolute icon. π¦ππ
π¦ 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