SRC/zla_heamv.f(3)

✨ SRC/zla_heamv.f ✨

okay bestie, welcome to the LAPACK corner of the Library Functions Manual β€” this one's from zla_heamv.f and it's lowkey iconic πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine zla_heamv (uplo, n, alpha, a, lda, x, incx, beta, y, incy)

zla_heamv computes a matrix-vector product using a Hermitian indefinite matrix to calculate error bounds πŸŽ€


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine zla_heamv (integer uplo, integer n, double precision alpha,
    complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( *
    ) x, integer incx, double precision beta, double precision, dimension( *
    ) y, integer incy)

zla_heamv computes a matrix-vector product using a Hermitian indefinite matrix to calculate error bounds. no cap, that's the whole job ✨

πŸ’œ Purpose:

!>
!> ZLA_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 basically the whole thing is y := alpha*abs(A)*abs(x) + beta*abs(y) β€” note the abs everywhere, it's giving absolute-value product realness 🌈

it says ZLA_SYAMV up in that comment and honestly? that's what the source says, we're not touching it πŸ™ˆ it does the matrix-vector operation with alpha and beta as scalars, x and y as vectors, and A an n by n symmetric matrix.

it's primarily used for calculating error bounds πŸ”₯ and to protect against underflow during evaluation, components in the resulting vector get 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. check the vibe πŸ’…


πŸ‘‘ Parameters

  • UPLO β€” UPLO is INTEGER. on entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced, like so:
    • 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 DOUBLE PRECISION. on entry, ALPHA specifies the scalar alpha. Unchanged on exit.
  • A β€” A is COMPLEX*16 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*16 array, dimension at least ( 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 DOUBLE PRECISION. 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 DOUBLE PRECISION 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.

🫢 Author

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

⭐ 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
!>

it's a Level 2 BLAS routine, written 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) β€” and then modified for the absolute-value product in April 2006 by Jason Riedy, UC Berkeley πŸŽ€ history icon behaviour, honestly ✨

🌟 Definition

Definition at line 176 of file zla_heamv.f.


πŸ’– Author

Generated automatically by Doxygen for LAPACK from the source code.


okay that's the whole page bestie, you ate that πŸ“ LAPACK, Version 3.12.0, from the source of SRC/zla_heamv.f(3) β€” mwah, go forth and compute your error bounds πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from