DSLECT(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… DSLECT (3) πŸ’…

okay bestie, welcome to the dslect.f(3) page β€” yeah the full tag at the top of the original is literally /home/abui...IG/dslect.f(3) and it lives in the Library Functions Manual, which is a whole vibe. this is a LAPACK test helper, not a main-character routine, but it's lowkey iconic in its own way πŸŽ€


✨ NAME ✨

honestly the "name" here is just the whole ass path, no cap:

/home/abuild/rpmbuild/BUILD/lapack-
static-3.12.0-build/lapack-3.12.0/TESTING/EIG/dslect.f

so like. that's the file. that's the name. slay πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

  • logical function DSLECT (zr, zi) β€” the one and only, and yeah its whole personality is "DSLECT"

🌸 Function/Subroutine Documentation 🌸

logical function DSLECT (double precision zr, double precision zi)

DSLECT. that's it. that's the routine. (the docs literally just repeat "DSLECT" here and honestly? confidence. πŸ‘‘)


πŸŽ€ Purpose πŸŽ€

okay so here's the tea, and it's written in that classic !> comment-block style so i'm keeping it exactly:

!>
!> DSLECT returns .TRUE. if the eigenvalue ZR+sqrt(-1)*ZI is to be
!> selected, and otherwise it returns .FALSE.
!> It is used by DCHK41 to test if DGEES successfully sorts eigenvalues,
!> and by DCHK43 to test if DGEESX successfully sorts eigenvalues.
!>
!> The common block /SSLCT/ controls how eigenvalues are selected.
!> If SELOPT = 0, then DSLECT return .TRUE. when ZR is less than zero,
!> and .FALSE. otherwise.
!> If SELOPT is at least 1, DSLECT returns SELVAL(SELOPT) and adds 1
!> to SELOPT, cycling back to 1 at SELMAX.
!>

so like, to translate into bestie-speak: it's a little bouncer for eigenvalues 😭 it says .TRUE. if the eigenvalue ZR+sqrt(-1)*ZI gets to come in, and .FALSE. if not. it's the hired help for DCHK41 (checking whether DGEES actually sorts eigenvalues correctly) and for DCHK43 (checking whether DGEESX does the sorting). the whole selection policy lives in the common block /SSLCT/, and here's how it vibes:

  • if SELOPT = 0, DSLECT returns .TRUE. when ZR is less than zero, and .FALSE. otherwise
  • if SELOPT is at least 1, DSLECT returns SELVAL(SELOPT) and adds 1 to SELOPT, cycling back to 1 at SELMAX πŸ” (roster rotation, honestly)

ngl that cycling detail is the whole plot. do not forget it. it's giving "the queue resets at SELMAX" ✨


🌈 Parameters 🌈

  • ZR β€” straight from the source: !> ZR is DOUBLE PRECISION !> The real part of a complex eigenvalue ZR + i*ZI. !> so yeah, ZR is a DOUBLE PRECISION and it's the real part of the complex eigenvalue ZR + i*ZI πŸ“
  • ZI β€” and again, verbatim: !> ZI is DOUBLE PRECISION !> The imaginary part of a complex eigenvalue ZR + i*ZI. !> so ZI is a DOUBLE PRECISION too, and it's the imaginary part of that same eigenvalue πŸ’œ

🧚 Author 🧚

the whole squad gets credit, fr fr:

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

⭐ Definition ⭐

Definition at line 61 of file dslect.f. β€” line 61, bestie. write it down. πŸ“


πŸ’– Author πŸ’–

Generated automatically by Doxygen for LAPACK from the source code.

(the docs wrote themselves, i just put a bow on it πŸŽ€)


and that's the whole page, bestie! 🫢 nothing hidden, nothing skipped, every single detail present and accounted for.

sign-off szn: this page came from LAPACK, Version 3.12.0, and the footer on the original is literally /home/abui...IG/dslect.f(3) with that same LAPACK Version 3.12.0 tagging along. mwah. πŸ’‹βœ¨

πŸ“¦ where this page comes from