DLARRK(3)
π dlarrk.f(3) β Library Functions Manual π
ok so bestie, the file we're talking about lives at /home/abui...RC/dlarrk.f(3) and honestly the whole thing is just vibes about one humble Fortran file. no cap.
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlarrk.f
that's it. that's the name. it's giving "my parents named me after my zip code" but we move π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine DLARRK (n, iw, gl, gu, d, e2, pivmin, reltol, w, werr, info)
DLARRK computes one eigenvalue of a symmetric tridiagonal matrix T to suitable accuracy. literally just one. one single eigenvalue. she's focused, she's minimal, she's an icon β¨
πΈ Function/Subroutine Documentation πΈ
subroutine DLARRK (integer n, integer iw, double precision gl, double precision gu, double precision, dimension( * ) d, double precision, dimension( * ) e2, double precision pivmin, double precision reltol, double precision w, double precision werr, integer info)
DLARRK computes one eigenvalue of a symmetric tridiagonal matrix T to suitable accuracy.
π Purpose:
!>
!> DLARRK computes one eigenvalue of a symmetric tridiagonal
!> matrix T to suitable accuracy. This is an auxiliary code to be
!> called from DSTEMR.
!>
!> To avoid overflow, the matrix must be scaled so that its
!> largest element is no greater than overflow**(1/2) * underflow**(1/4) in absolute value, and for greatest
!> accuracy, it should not be much smaller than that.
!>
!> See W. Kahan , Report CS41, Computer Science Dept., Stanford
!> University, July 21, 1966.
!>
ok so real talk: she's an auxiliary code β the sidekick, the hype girl, the one who gets called from DSTEMR and does the actual eigenvalue-finding work behind the scenes. main character energy honestly π«Ά
and the overflow warning is NOT a joke, bestie β you gotta scale your matrix so its largest element is no greater than overflow**(1/2) * underflow**(1/4) in absolute value. and for greatest accuracy, it should not be much smaller than that. so like... not too big, not too small. the goldilocks zone. if you ignore this, things get π.
and if you want the lore, go read W. Kahan, Report CS41, Computer Science Dept., Stanford University, July 21, 1966. the founding father of vibes fr fr.
π Parameters
NβN is INTEGER. The order of the tridiagonal matrix T. constraint era:N >= 0. no negative N, we don't do that here πIWβIW is INTEGER. The index of the eigenvalues to be returned. yes, eigenvalues plural in the description even though she returns one. that's just how the doc is written, don't come for me πGLβGL is DOUBLE PRECISION. that's it. that's the whole description. she's mysterious. she's a lower bound. figure it out πGUβGU is DOUBLE PRECISION. An upper and a lower bound on the eigenvalue. (GUis the upper one, and together withGLthey're your bracketing besties π)DβD is DOUBLE PRECISION array, dimension (N). Thendiagonal elements of the tridiagonal matrix T. the main diagonal. the moment. the star of the show βE2βE2 is DOUBLE PRECISION array, dimension (N-1). The(n-1)squared off-diagonal elements of the tridiagonal matrix T. squared, ok? already squared. don't square them again. i'm watching you πPIVMINβPIVMIN is DOUBLE PRECISION. The minimum pivot allowed in the Sturm sequence for T. the floor. the "absolutely not smaller than this" of pivots π₯RELTOLβRELTOL is DOUBLE PRECISION. The minimum relative width of an interval. When an interval is narrower thanRELTOLtimes the larger (in magnitude) endpoint, then it is considered to be sufficiently small, i.e., converged.
Note (straight from the source, bestie): this should always be at least radix*machine epsilon. yes, always. don't test her. π¨
WβW is DOUBLE PRECISION. also the entire description. she's the eigenvalue approximation and that's all we're getting. iconic behaviour honestly β¨WERRβWERR is DOUBLE PRECISION. The error bound on the corresponding eigenvalue approximation inW. so like,WΒ± the uncertainty. slay π«ΆINFOβINFO is INTEGER. the status reporter, and she only has two moods:= 0: Eigenvalue converged π= -1: Eigenvalue did NOT converge π
lowkey important: -1 means it did NOT converge. it's not "converged slightly differently", it's a no. take the L and check your scaling fr fr.
π§ Internal Parameters:
FUDGEβDOUBLE PRECISION, default= 2. A to widen the Gershgorin intervals. (yes the sentence in the source reads "A to widen the Gershgorin intervals." β we don't know what kind of A, we just know it widens. leaving it exactly as the ancestors wrote it π)
β Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
four institutions, one little subroutine. the collab of the century honestly π
Definition at line 143 of file dlarrk.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code. not a human, a robot, and yet she ate π
and that's the whole page bestie, tysm for coming to my ted talk π¦
sign-off time: this one's from LAPACK, Version 3.12.0, dated /home/abui...RC/dlarrk.f(3) β go forth and compute exactly one eigenvalue, accurately, and for the love of everything scale your matrix first πβ¨πΈ
π¦ 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