SRC/slaein.f(3)
π NAME
SRC/slaein.f β ok so this is the manual page for slaein, and it's literally the file SRC/slaein.f, bestie. That's the whole name section. Short and iconic. β¨
β¨ SYNOPSIS
Functions/Subroutines
subroutine slaein (rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb,
work, eps3, smlnum, bignum, info)
SLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. That's the whole vibe. π¦
π Function/Subroutine Documentation
subroutine slaein
subroutine slaein (logical rightv, logical noinit, integer n, real,
dimension( ldh, * ) h, integer ldh, real wr, real wi, real, dimension( *
) vr, real, dimension( * ) vi, real, dimension( ldb, * ) b, integer ldb,
real, dimension( * ) work, real eps3, real smlnum, real bignum, integer
info)
SLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. No cap, that's what it does. π
π₯ Purpose
!>
!> SLAEIN uses inverse iteration to find a right or left eigenvector
!> corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg
!> matrix H.
!>
So like β inverse iteration, one eigenvalue, you pick a side (right or left), and it finds you the eigenvector. Slay. π
π§ Parameters
RIGHTVβRIGHTVisLOGICAL. Bestie, pick a side:
!> RIGHTV is LOGICAL
!> = .TRUE. : compute right eigenvector;
!> = .FALSE.: compute left eigenvector.
!>
NOINITβNOINITisLOGICAL. Are you supplying a starting vector or not, that's the question:
!> NOINIT is LOGICAL
!> = .TRUE. : no initial vector supplied in (VR,VI).
!> = .FALSE.: initial vector supplied in (VR,VI).
!>
NβNisINTEGER. The order of the matrixH. And it's gotta beN >= 0, no sneaky negatives. πΈ
!> N is INTEGER
!> The order of the matrix H. N >= 0.
!>
HβHis aREALarray, dimension(LDH,N). It's the upper Hessenberg matrixH. main character energy, honestly. β¨
!> H is REAL array, dimension (LDH,N)
!> The upper Hessenberg matrix H.
!>
LDHβLDHisINTEGER. The leading dimension of the arrayH, and it must beLDH >= max(1,N). Respect the constraint or don't come to the party. π
!> LDH is INTEGER
!> The leading dimension of the array H. LDH >= max(1,N).
!>
WRβWRisREAL. Just vibes here, no extra notes:
!> WR is REAL
!>
WIβWIisREAL. Together withWRit's the real and imaginary part of the eigenvalue ofHwhose corresponding right or left eigenvector you're computing:
!> WI is REAL
!> The real and imaginary parts of the eigenvalue of H whose
!> corresponding right or left eigenvector is to be computed.
!>
VRβVRis aREALarray, dimension(N). Okay this one's a whole essay, so pay attention bestie:
!> VR is REAL array, dimension (N)
!>
and then:
!> VI is REAL array, dimension (N)
!> On entry, if NOINIT = .FALSE. and WI = 0.0, VR must contain
!> a real starting vector for inverse iteration using the real
!> eigenvalue WR; if NOINIT = .FALSE. and WI.ne.0.0, VR and VI
!> must contain the real and imaginary parts of a complex
!> starting vector for inverse iteration using the complex
!> eigenvalue (WR,WI); otherwise VR and VI need not be set.
!> On exit, if WI = 0.0 (real eigenvalue), VR contains the
!> computed real eigenvector; if WI.ne.0.0 (complex eigenvalue),
!> VR and VI contain the real and imaginary parts of the
!> computed complex eigenvector. The eigenvector is normalized
!> so that the component of largest magnitude has magnitude 1;
!> here the magnitude of a complex number (x,y) is taken to be
!> |x| + |y|.
!> VI is not referenced if WI = 0.0.
!>
(yes, that block is filed under VI below too β it's a joint slay, they share the description π«Ά)
VIβVIis aREALarray, dimension(N). See the big block right above π β on entry withNOINIT = .FALSE.andWI = 0.0,VRholds a real starting vector; withNOINIT = .FALSE.andWI.ne.0.0,VRandVIhold the real and imaginary parts of a complex starting vector; otherwiseVRandVIneed not be set. On exit,WI = 0.0βVRhas the computed real eigenvector,WI.ne.0.0βVRandVIhave the real and imaginary parts of the computed complex eigenvector. It's normalized so the component of largest magnitude has magnitude 1, where the magnitude of a complex number (x,y) is|x| + |y|. AndVIis not referenced ifWI = 0.0. Literally all of it. πBβBis aREALarray, dimension(LDB,N). That's it, that's the note:
!> B is REAL array, dimension (LDB,N)
!>
LDBβLDBisINTEGER. The leading dimension of the arrayB, and it's gotta satisfyLDB >= N+1. β
!> LDB is INTEGER
!> The leading dimension of the array B. LDB >= N+1.
!>
WORKβWORKis aREALarray, dimension(N). Doing the work, as the name suggests:
!> WORK is REAL array, dimension (N)
!>
EPS3βEPS3isREAL. A small machine-dependent value used to perturb close eigenvalues and to replace zero pivots. It's giving cleanup crew. π
!> EPS3 is REAL
!> A small machine-dependent value which is used to perturb
!> close eigenvalues, and to replace zero pivots.
!>
SMLNUMβSMLNUMisREAL. A machine-dependent value close to the underflow threshold:
!> SMLNUM is REAL
!> A machine-dependent value close to the underflow threshold.
!>
BIGNUMβBIGNUMisREAL. A machine-dependent value close to the overflow threshold. Big number, big name, big energy π₯
!> BIGNUM is REAL
!> A machine-dependent value close to the overflow threshold.
!>
INFOβINFOisINTEGER. The vibe check at the end:
!> INFO is INTEGER
!> = 0: successful exit
!> = 1: inverse iteration did not converge; VR is set to the
!> last iterate, and so is VI if WI.ne.0.0.
!>
β οΈ Heads up bestie: ifINFO = 1, inverse iteration did not converge βVRgets set to the last iterate, and so doesVIifWI.ne.0.0. So it's not a crash, it's just... not converged. Don't @ me. π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Definition at line 170 of file slaein.f.
πΈ Author
Generated automatically by Doxygen for LAPACK from the source code.
And that's the page, babe β LAPACK, Version 3.12.0, SRC/slaein.f(3), straight from the source. Go compute an eigenvector and text me when it converges πβ¨π«Ά
π¦ 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