/home/abui...la_gbamv.f(3)

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

πŸ’… SLA_GBAMV β€” /home/abui...la_gbamv.f(3)

okay bestie, welcome to the third section of the manual β€” Library Functions Manual β€” and the star of the show is /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sla_gbamv.f. yes that's the whole entire path, she's long, she's iconic, she's giving filesystem realness πŸŽ€


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sla_gbamv.f β€” literally the file, no notes πŸ’…


✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines

subroutine SLA_GBAMV (trans, m, n, kl, ku, alpha, ab, ldab, x, incx,
    beta, y, incy)

SLA_GBAMV performs a matrix-vector operation to calculate error bounds. that's her job, that's her purpose, she ate πŸ”₯


πŸ’– Function/Subroutine Documentation πŸ’–

subroutine SLA_GBAMV (integer trans, integer m, integer n, integer kl,
    integer ku, real alpha, real, dimension( ldab, * ) ab, integer ldab,
    real, dimension( * ) x, integer incx, real beta, real, dimension( * ) y,
    integer incy)

SLA_GBAMV performs a matrix-vector operation to calculate error bounds. periodt. πŸ‘‘

🌸 Purpose:

!>
!> SLA_GBAMV  performs one of the matrix-vector operations
!>
!>         y := alpha*abs(A)*abs(x) + beta*abs(y),
!>    or   y := alpha*abs(A)**T*abs(x) + beta*abs(y),
!>
!> where alpha and beta are scalars, x and y are vectors and A is an
!> m by n matrix.
!>
!> This function is primarily used in calculating error bounds.
!> To protect against underflow during evaluation, components in
!> the resulting vector are perturbed away from zero by (N+1)
!> times the underflow threshold.  To prevent unnecessarily large
!> errors for block-structure embedded in general matrices,
!>  zero components are not perturbed.  A zero
!> entry is considered  if all multiplications involved
!> in computing that entry have at least one zero multiplicand.
!>

so like, she's mainly out here calculating error bounds (main character energy tbqh). and there's this whole underflow-protection situation: to protect against underflow during evaluation, components in the resulting vector get perturbed away from zero by (N+1) times the underflow threshold. but β€” and this is the important bit β€” to prevent unnecessarily large errors for block-structure embedded in general matrices, zero components are not perturbed. a zero entry counts as zero if all multiplications involved in computing that entry have at least one zero multiplicand. slay, no notes 🫢


πŸŽ€ Parameters πŸŽ€

  • TRANS β€” TRANS is INTEGER. on entry, TRANS specifies the operation to be performed as follows:
BLAS_NO_TRANS      y := alpha*abs(A)*abs(x) + beta*abs(y)
BLAS_TRANS         y := alpha*abs(A**T)*abs(x) + beta*abs(y)
BLAS_CONJ_TRANS    y := alpha*abs(A**T)*abs(x) + beta*abs(y)

unchanged on exit. πŸ’«

  • M β€” M is INTEGER. on entry, M specifies the number of rows of the matrix A. M must be at least zero. unchanged on exit.
  • N β€” N is INTEGER. on entry, N specifies the number of columns of the matrix A. N must be at least zero. unchanged on exit.
  • KL β€” KL is INTEGER. the number of subdiagonals within the band of A. KL >= 0. lowkey the lower band situation πŸ¦‹
  • KU β€” KU is INTEGER. the number of superdiagonals within the band of A. KU >= 0. and this one's the upper band situation ✨
  • ALPHA β€” ALPHA is REAL. on entry, ALPHA specifies the scalar alpha. unchanged on exit.
  • AB β€” AB is REAL array, dimension ( LDAB, n ). before entry, the leading m by n part of the array AB must contain the matrix of coefficients. unchanged on exit.
  • LDAB β€” LDAB is INTEGER. on entry, LDA specifies the first dimension of AB as declared in the calling (sub) program. LDAB must be at least max( 1, m ). unchanged on exit.
ok so bestie, ngl, the original text literally says LDA here, not LDAB β€” that's a whole typo situation in the source, and we are reporting it, not fixing it πŸ’€ keep it exactly as written.
  • X β€” X is REAL array, dimension ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = 'N' or 'n' and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. before entry, the incremented array X must contain the vector x. unchanged on exit.
  • INCX β€” INCX is INTEGER. on entry, INCX specifies the increment for the elements of X. INCX must not be zero. unchanged on exit. (zero is not the vibe πŸ™ˆ)
  • BETA β€” BETA is REAL. on entry, BETA specifies the scalar beta. when BETA is supplied as zero then Y need not be set on input. unchanged on exit.
  • Y β€” Y is REAL array, dimension ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = 'N' or 'n' and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. before entry with BETA non-zero, the incremented array Y must contain the vector y. on exit, Y is overwritten by the updated vector y. if either m or n is zero, then Y not referenced and the function performs a quick return. πŸ’¨
  • INCY β€” INCY is INTEGER. on entry, INCY specifies the increment for the elements of Y. INCY must not be zero. unchanged on exit.
Level 2 Blas routine. πŸ’… (that's the whole note, she's brief and she's confident)

🌈 Author 🌈

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

these four icons co-wrote her, we stan 🫢


⭐ Definition at line 185 of file sla_gbamv.f. ⭐

like, literally line 185, go look πŸ‘€


🧚 Author 🧚

Generated automatically by Doxygen for LAPACK from the source code. (so nobody hand-wrote this baby, she was birthed by Doxygen, and honestly? iconic πŸ€–πŸ’–)


LAPACK β€” Version 3.12.0 πŸŽ€ and the file tag is /home/abui...la_gbamv.f(3). that's the whole page bestie, you're welcome, go forth and compute your error bounds πŸ’œβœ¨

πŸ“¦ where this page comes from