SLAEIN(3)
π slaein.f(3) β a LAPACK library functions manual moment
okay so this is a LAPACK manpage, bestie, from the Library Functions Manual corner of the universe, and it's about /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/slaein.f β yes that's the whole entire path, it's giving "I was generated by a build system and I'm proud of it" π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/slaein.f β literally the file, that's the name, no cap, the whole path is the name π«Ά
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine SLAEIN (rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info)
so SLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. iconic behaviour tbh π
π¦ Function/Subroutine Documentation π¦
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. main character energy, honestly β¨
π 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.
!>
like, that's the whole vibe: inverse iteration, eigenvalue (WR,WI), real upper Hessenberg matrix H. periodt π
π Parameters π
RIGHTV
!> RIGHTV is LOGICAL
!> = .TRUE. : compute right eigenvector;
!> = .FALSE.: compute left eigenvector.
!>
so <mint>.TRUE.</mint> = right eigenvector, <mint>.FALSE.</mint> = left eigenvector. pick your fighter π«Ά
NOINIT
!> NOINIT is LOGICAL
!> = .TRUE. : no initial vector supplied in (VR,VI).
!> = .FALSE.: initial vector supplied in (VR,VI).
!>
<mint>.TRUE.</mint> means you're not supplying a starting vector in (VR,VI), <mint>.FALSE.</mint> means you are. k byeee π
N
!> N is INTEGER
!> The order of the matrix H. N >= 0.
!>
order of H, and it's gotta satisfy N >= 0. zero is allowed, we love an inclusive queen π
H
!> H is REAL array, dimension (LDH,N)
!> The upper Hessenberg matrix H.
!>
the actual upper Hessenberg matrix, REAL array, dimension (LDH,N) β she's the moment π₯
LDH
!> LDH is INTEGER
!> The leading dimension of the array H. LDH >= max(1,N).
!>
leading dimension of H, must be LDH >= max(1,N) β
WR
!> WR is REAL
!>
just a REAL. that's it. that's the whole entry. she said minimalism π
WI
!> WI is REAL
!> The real and imaginary parts of the eigenvalue of H whose
!> corresponding right or left eigenvector is to be computed.
!>
so WR + WI together are the real and imaginary parts of the eigenvalue of H whose right-or-left eigenvector we're computing. the way that works is so cute π
VR
!> VR is REAL array, dimension (N)
!>
REAL array, dimension (N). and also β¬οΈ
VI
!> 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.
!>
okay this one is a whole saga, let me break it down π
on entry:
- if
NOINIT = .FALSE.andWI = 0.0, thenVRmust contain a real starting vector for inverse iteration using the real eigenvalueWR - if
NOINIT = .FALSE.andWI.ne.0.0, thenVRandVImust contain the real and imaginary parts of a complex starting vector for inverse iteration using the complex eigenvalue(WR,WI) - otherwise
VRandVIneed not be set
on exit:
- if
WI = 0.0(real eigenvalue),VRcontains the computed real eigenvector - if
WI.ne.0.0(complex eigenvalue),VRandVIcontain 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|β yes, that's the definition, don't come for her π«Ά
and <yellow>VI is not referenced if WI = 0.0</yellow> β noted, bestie, she simply doesn't get invited to that party π
B
!> B is REAL array, dimension (LDB,N)
!>
REAL array, dimension (LDB,N). short and sweet πΈ
LDB
!> LDB is INTEGER
!> The leading dimension of the array B. LDB >= N+1.
!>
leading dimension of B, and the rule is LDB >= N+1 β note the +1, it's not a typo, don't @ me π
WORK
!> WORK is REAL array, dimension (N)
!>
REAL array, dimension (N). she works, hence the name π
EPS3
!> EPS3 is REAL
!> A small machine-dependent value which is used to perturb
!> close eigenvalues, and to replace zero pivots.
!>
small machine-dependent value, used to perturb close eigenvalues and to replace zero pivots β¨
SMLNUM
!> SMLNUM is REAL
!> A machine-dependent value close to the underflow threshold.
!>
machine-dependent value close to the underflow threshold. underflow threshold, got it π
BIGNUM
!> BIGNUM is REAL
!> A machine-dependent value close to the overflow threshold.
!>
same but big: machine-dependent value close to the overflow threshold π₯
INFO
!> 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.
!>
the vibe check at the end:
= 0: successful exit π= 1: inverse iteration did not converge βVRis set to the last iterate, and so isVIifWI.ne.0.0π
ngl, INFO = 1 is the "we tried, bestie" exit code. the results you get are the last iterate, not a converged answer. don't pretend otherwise π
π§ Author π§
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
β Definition at line 170 of file slaein.f. β
like, line 170, in slaein.f, exactly as stated π
π Author π
Generated automatically by Doxygen for LAPACK from the source code. so nobody hand-wrote this, a robot did, and honestly? she ate π€β¨
and that's the whole page, bestie β LAPACK, Version 3.12.0, and the footer says /home/abui...RC/slaein.f(3), so there's your source/version and your date-shaped sign-off. mwah ππ«Άπ
π¦ 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