SGLMTS(3)

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

πŸ’… SGLMTS πŸ’…

ok so bestie, welcome to SGLMTS β€” she lives in the Library Functions Manual (that's the section-3 girlies, if you didn't know, now you know πŸ’β€β™€οΈ) and she has one job and she does it impeccably.

Her whole address, for the record, is:

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

like yes that's the whole NAME section, we're not doing a cute one-liner here, we're doing the full path, periodt. πŸŽ€


✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines

  • subroutine SGLMTS (n, m, p, a, af, lda, b, bf, ldb, d, df, x, u, work, lwork, rwork, result) β€” SGLMTS

that's it, that's the call. seventeen arguments. she's that girl. πŸ’…


🌸 Function/Subroutine Documentation 🌸

okay so here's the full signature, verbatim, no cap:

subroutine SGLMTS (integer n, integer m, integer p, real, dimension( lda, * ) a, real, dimension( lda, * ) af, integer lda, real, dimension( ldb, * ) b, real, dimension( ldb, * ) bf, integer ldb, real, dimension( * ) d, real, dimension( * ) df, real, dimension( * ) x, real, dimension( * ) u, real, dimension( lwork ) work, integer lwork, real, dimension( * ) rwork, real result)

and the name again, for the vibes: SGLMTS

πŸ’œ Purpose πŸ’œ

!> !> SGLMTS tests SGGGLM - a subroutine for solving the generalized !> linear model problem. !>

so basically she's the quality-control bestie for SGGGLM β€” SGGGLM solves the generalized linear model problem, and SGLMTS is the one who shows up with a clipboard like "mmhmm, and did we verify that? we did 🫢". icon behaviour honestly.

πŸ“ Parameters πŸ“

grab a snack bestie, there are sixteen of them and every single one is getting her moment:

  • N β€” !> N is INTEGER β€” !> The number of rows of the matrices A and B. N >= 0. β€” !> β€” the row count for both A and B, and she must be >= 0 or we're not doing this.
  • M β€” !> M is INTEGER β€” !> The number of columns of the matrix A. M >= 0. β€” !> β€” how many columns A has. M >= 0, respect it.
  • P β€” !> P is INTEGER β€” !> The number of columns of the matrix B. P >= 0. β€” !> β€” how many columns B has. P >= 0, same energy.
  • A β€” !> A is REAL array, dimension (LDA,M) β€” !> The N-by-M matrix A. β€” !> β€” literally the N-by-M matrix A, main character.
  • AF β€” !> AF is REAL array, dimension (LDA,M) β€” !> β€” a REAL array, dimension (LDA,M). no further notes, she said what she said.
  • LDA β€” !> LDA is INTEGER β€” !> The leading dimension of the arrays A, AF. LDA >= max(M,N). β€” !> β€” leading dimension of A and AF, and it's gotta be LDA >= max(M,N). the max is doing heavy lifting there, don't ignore it.
  • B β€” !> B is REAL array, dimension (LDB,P) β€” !> The N-by-P matrix A. β€” !> β€” ok so the manpage says "The N-by-P matrix A" but we're all gonna pretend that says B because that is what makes sense 😭 keeping the original wording though, iykyk.
  • BF β€” !> BF is REAL array, dimension (LDB,P) β€” !> β€” REAL array, dimension (LDB,P), that's the whole note.
  • LDB β€” !> LDB is INTEGER β€” !> The leading dimension of the arrays B, BF. LDB >= max(P,N). β€” !> β€” leading dimension for B and BF, constraint: LDB >= max(P,N).
  • D β€” !> D is REAL array, dimension( N ) β€” !> On input, the left hand side of the GLM. β€” !> β€” on input this is the left hand side of the GLM. important!
  • DF β€” !> DF is REAL array, dimension( N ) β€” !> β€” array of dimension ( N ), no extra comments, moving on.
  • X β€” !> X is REAL array, dimension ( M ) β€” !> solution vector X in the GLM problem. β€” !> β€” solution vector X in the GLM problem. queen of the answer key.
  • U β€” !> U is REAL array, dimension ( P ) β€” !> solution vector U in the GLM problem. β€” !> β€” solution vector U, also in the GLM problem. the other half of the answer.
  • WORK β€” !> WORK is REAL array, dimension (LWORK) β€” !> β€” workspace, REAL, dimension (LWORK).
  • LWORK β€” !> LWORK is INTEGER β€” !> The dimension of the array WORK. β€” !> β€” literally just the dimension of WORK. that's the note.
  • RWORK β€” !> RWORK is REAL array, dimension (M) β€” !> β€” REAL array, dimension (M).
  • RESULT β€” !> RESULT is REAL β€” !> The test ratio: β€” and then the formula, which we're preserving exactly because it's the whole point:
!>                           norm( d - A*x - B*u )
!>            RESULT = -----------------------------------------
!>                     (norm(A)+norm(B))*(norm(x)+norm(u))*EPS
πŸ’€ bestie that's the whole verdict β€” residual on top, norms and EPS on the bottom. tiny number = slay, big number = something's wrong and we need to talk.

πŸ‘‘ Author πŸ‘‘

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

the whole squad really showed up for this one 🫢

Definition at line 147 of file sglmts.f. β€” yes, line 147, go look, she's right there ✨


🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code. not a human, just a very thorough little robot doing her thing πŸ€–πŸ’–


ok that's the whole page! this absolute icon is brought to you by LAPACK, Version 3.12.0 β€” and yeah, the footer keeps pointing back at /home/abui...IG/sglmts.f(3) because she's nothing if not consistent πŸ’…βœ¨ πŸŽ€

πŸ“¦ where this page comes from