SRC/cla_syamv.f(3)

πŸ’… SRC/cla_syamv.f β€” like, the whole manual, bestie

okay so this is a page from the LAPACK Library Functions Manual, and it's about one little subroutine that is genuinely so iconic. no cap. πŸŽ€


✨ NAME ✨

SRC/cla_syamv.f β€” that's the file, that's the vibe. It's the home of cla_syamv, and she does exactly what the next section says she does. πŸ¦‹


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine cla_syamv (uplo, n, alpha, a, lda, x, incx, beta, y, incy)
CLA_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bounds. πŸ’…

🫢 Function/Subroutine Documentation 🫢

subroutine cla_syamv

subroutine cla_syamv (integer uplo, integer n, real alpha, complex,
    dimension( lda, * ) a, integer lda, complex, dimension( * ) x, integer
    incx, real beta, real, dimension( * ) y, integer incy)

okay so CLA_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bounds. literally her whole job. πŸ’–

πŸ”₯ Purpose:

!>
!> CLA_SYAMV  performs the matrix-vector operation
!>
!>         y := alpha*abs(A)*abs(x) + beta*abs(y),
!>
!> where alpha and beta are scalars, x and y are vectors and A is an
!> n by n symmetric 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 yes β€” she's out here computing y := alpha*abs(A)*abs(x) + beta*abs(y), where alpha and beta are scalars, x and y are vectors, and A is an n by n symmetric matrix. main character energy fr fr. πŸ‘‘

and the deets: this function is primarily used in calculating error bounds. 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 matters β€” 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. periodt. πŸ’€


πŸŽ€ Parameters πŸŽ€

  • UPLO β€” UPLO is INTEGER. on entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced, as follows:
    • UPLO = BLAS_UPPER β€” only the upper triangular part of A is to be referenced.
    • UPLO = BLAS_LOWER β€” only the lower triangular part of A is to be referenced.

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. 🌸
  • ALPHA β€” ALPHA is REAL. on entry, ALPHA specifies the scalar alpha. Unchanged on exit. πŸ’–
  • A β€” A is COMPLEX array, dimension ( LDA, n ). before entry, the leading m by n part of the array A must contain the matrix of coefficients. Unchanged on exit. πŸ¦‹
  • LDA β€” LDA is INTEGER. on entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least max( 1, n ). Unchanged on exit. πŸ’…
  • X β€” X is COMPLEX array, dimension ( 1 + ( n - 1 )*abs( INCX ) ). 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. ⚠️
  • 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 + ( n - 1 )*abs( INCY ) ). 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. πŸ”₯
  • INCY β€” INCY is INTEGER. on entry, INCY specifies the increment for the elements of Y. INCY must not be zero. Unchanged on exit. ⚠️
bestie pls do not pass a zero increment. like, just don't. πŸ™ˆ

πŸ‘‘ Author

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

absolute legends, all of them. 🫢


πŸ’œ Further Details:

!>
!>  Level 2 Blas routine.
!>
!>  -- Written on 22-October-1986.
!>     Jack Dongarra, Argonne National Lab.
!>     Jeremy Du Croz, Nag Central Office.
!>     Sven Hammarling, Nag Central Office.
!>     Richard Hanson, Sandia National Labs.
!>  -- Modified for the absolute-value product, April 2006
!>     Jason Riedy, UC Berkeley
!>

so yeah β€” Level 2 BLAS routine, written way back on 22-October-1986 by Jack Dongarra (Argonne National Lab), Jeremy Du Croz (Nag Central Office), Sven Hammarling (Nag Central Office), and Richard Hanson (Sandia National Labs). then modified for the absolute-value product in April 2006 by Jason Riedy, UC Berkeley. the way this routine has history πŸ˜­πŸ’…


πŸ“ Definition at line 177 of file cla_syamv.f.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code. (yes, a robot wrote this page, and she ate. πŸ€–βœ¨)


and that's the whole thing, bestie β€” no skips, no cuts, we read the entire page together πŸ§šπŸ’–

LAPACK β€” Version 3.12.0 β€” SRC/cla_syamv.f(3) πŸ’œπŸŽ€

πŸ“¦ where this page comes from