SLAMSH(l)
π SLAMSH π
ok so bestie, welcome to SLAMSH(l) β a LAPACK auxiliary routine, version 1.5, and she is niche but she is serving. buckle up π
β¨ NAME β¨
SLAMSH β send multiple shifts through a small (single node) matrix to see how consecutive small subdiagonal elements are modified by subsequent shifts in an effort to maximize the number of bulges that can be sent through π
β¨ SYNOPSIS β¨
SUBROUTINE SLAMSH ( S, LDS, NBULGE, JBLK, H, LDH, N, ULP )
INTEGER LDS, NBULGE, JBLK, LDH, N
REAL ULP
REAL S(LDS,*), H(LDH,*)
β¨ PURPOSE β¨
ok so here's the vibe: SLAMSH sends multiple shifts through a small (single node) matrix to see how consecutive small subdiagonal elements are modified by subsequent shifts, all in an effort to maximize the number of bulges that can be sent through. it's giving bulge logistics π₯
and SLAMSH should only be called when there are multiple shifts/bulges (NBULGE > 1) and the first shift is starting in the middle of an unreduced Hessenberg matrix because of two or more consecutive small subdiagonal elements. like, that's her whole lane, don't call her for anything else π«Ά
β¨ ARGUMENTS β¨
Sβ (local input/output)REAL array, (LDS,*). On entry, the matrix of shifts. Only the 2x2 diagonal ofSis referenced. It is assumed thatShasJBLKdouble shifts (size 2). On exit, the data is rearranged in the best order for applying. glow-up era β¨LDSβ (local input)INTEGER. On entry, the leading dimension ofS. Unchanged on exit.1 < NBULGE <= JBLK <= LDS/2NBULGEβ (local input/output)INTEGER. On entry, the number of bulges to send throughH(>1).NBULGEshould be less than the maximum determined (JBLK).1 < NBULGE <= JBLK <= LDS/2On exit, the maximum number of bulges that can be sent through. she comes in a request and leaves with the receipts πJBLKβ (local input)INTEGER. On entry, the number of shifts determined forS. Unchanged on exit.Hβ (local input/output)REAL array (LDH,N). On entry, the local matrix to apply the shifts on.Hshould be aligned so that the starting row is 2. On exit, the data is destroyed. no cap, she ate that matrix, it's gone πLDSβ (local input)INTEGER. On entry, the leading dimension ofS. Unchanged on exit.
yes bestie, LDS really does show up twice in this list. that's just how the original page is built. we don't question her, we support her π
Nβ (local input)INTEGER. On entry, the size ofH. If all the bulges are expected to go through,Nshould be at least4*NBULGE+2. Otherwise,NBULGEmay be reduced by this routine.ULPβ (local input)REAL. On entry, machine precision. Unchanged on exit.
oh and if you're squinting at the synopsis wondering whereLDH's little description went β the original page declaresLDHin the synopsis but doesn't spell it out down here inARGUMENTS. i'm just reporting what she said, not adding anything π
Implemented by: G. Henry, May 1, 1997 π
ok that's the whole page, you're officially fluent in SLAMSH behavior, go be the main character of your own Hessenberg matrix ππ¦
LAPACK version 1.5 β 12 May 1997 β SLAMSH(l) βπ
π¦ where this page comes from
- ubuntu jammy: scalapack-doc 1.5-11
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms