la_heamv(3)

πŸŽ€ la_heamv(3) πŸŽ€

Okay bestie, welcome to the la_heamv(3) page from the Library Functions Manual. This is the main character doc for the |A| * |x| matrix-vector multiply with a Hermitian/symmetric twist, and it is lowkey all about error bounds. We are keeping every detail, no cap. πŸ’–

✨ NAME ✨

la_heamv β€” la_heamv: matrix-vector multiply |A| * |x|, Hermitian/symmetric. That's the name, periodt. πŸ‘‘

πŸ¦‹ SYNOPSIS πŸ¦‹

πŸŽ€ Functions πŸŽ€

  • subroutine cla_heamv (uplo, n, alpha, a, lda, x, incx, beta, y, incy) β€” CLA_HEAMV computes a matrix-vector product using a Hermitian indefinite matrix to calculate error bounds.
  • 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.
  • subroutine dla_syamv (uplo, n, alpha, a, lda, x, incx, beta, y, incy) β€” DLA_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bounds.
  • subroutine sla_syamv (uplo, n, alpha, a, lda, x, incx, beta, y, incy) β€” SLA_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bounds.
  • 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.
  • subroutine zla_syamv (uplo, n, alpha, a, lda, x, incx, beta, y, incy) β€” ZLA_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bounds.

🌈 Detailed Description 🌈

This is the part where the functions get their own little spotlights. Grab a snack and a beverage, bestie. πŸ“

🧚 Function Documentation 🧚

πŸ’œ subroutine cla_heamv πŸ’œ

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

CLA_HEAMV computes a matrix-vector product using a Hermitian indefinite matrix to calculate error bounds. Slay.

🎯 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.
!>

🌸 Parameters 🌸

  • UPLO β€” UPLO is INTEGER. On entry, UPLO is the little switch that tells the routine which triangle of A to look at: UPLO = BLAS_UPPER means only the upper triangular part of A is referenced, and UPLO = BLAS_LOWER means only the lower triangular part of A is referenced. It stays unchanged on exit. πŸ’…
  • N β€” N is INTEGER. On entry, N is literally the number of columns of matrix A, and it must be at least zero. Unchanged on exit.
  • ALPHA β€” ALPHA is REAL. On entry, it's the scalar alpha, no notes, no drama. Unchanged on exit.
  • A β€” A is COMPLEX array, dimension ( LDA, n ). Before entry, the leading m by n part of A has to hold the matrix of coefficients. Unchanged on exit. Yes, it says m by n β€” keeping it exactly.
  • LDA β€” LDA is INTEGER. On entry, it's the first dimension of A as declared in the calling (sub) program, and it 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 X array has to contain vector x. Unchanged on exit.
  • INCX β€” INCX is INTEGER. On entry, it's the increment for the elements of X, and it must not be zero. Unchanged on exit.
  • BETA β€” BETA is REAL. On entry, it's the scalar beta. Cute detail: when BETA is supplied as zero, 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 Y array has to contain vector y. On exit, Y gets overwritten by the updated vector y. Bye original Y. πŸ‘‹
  • INCY β€” INCY is INTEGER. On entry, it's the increment for the elements of Y, and it 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
!>

Definition at line 176 of file cla_heamv.f.

πŸ’™ 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)

CLA_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bounds. Another icon.

🎯 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.
!>

🌸 Parameters 🌸

  • UPLO β€” UPLO is INTEGER. On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced: UPLO = BLAS_UPPER means only the upper triangular part of A is referenced, and UPLO = BLAS_LOWER means only the lower triangular part of A is 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.

πŸ‘‘ 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
!>

Definition at line 177 of file cla_syamv.f.

πŸ’š subroutine dla_syamv πŸ’š

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

DLA_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bounds. Double precision, double slay.

🎯 Purpose: 🎯

...y := alpha*abs(A)*abs(x) + beta*abs(y) β€” that's the whole vibe, bestie. ✨

So like, where alpha and beta are scalars, x and y are vectors, and A is an n by n symmetric matrix. Write it out all pretty:

y := alpha*abs(A)*abs(x) + beta*abs(y),

And why does this exist? Okay so this function is primarily used in calculating error bounds β€” it's the little safety net behind the scenes. To protect against underflow during evaluation, components in the resulting vector get perturbed away from zero by (N+1) times the underflow threshold. Lowkey dramatic but like, necessary πŸ’….

And 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. That's the rule, no cap. 🫢


πŸŽ€ Parameters (DLA_SYAMV)

  • UPLO β€” UPLO is INTEGER. On entry, UPLO tells us which triangle of the array A we're actually referencing, like this:
    • 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 DOUBLE PRECISION 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. (yes bestie it says m by n, that's what the page says, we do not ask questions, we simply copy πŸ’€)
  • 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 DOUBLE PRECISION 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. > Like fr fr, not zero, that's a whole undefined-behaviour situation, do not do it.
  • 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

Definition at line 175 of file dla_syamv.f.


🧚 subroutine sla_syamv

Okay bestie, now the REAL version, same energy, single precision this time:

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

SLA_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bounds. That's the one-liner, iconic, no notes.

✨ Purpose:

SLA_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. πŸŽ€

🫢 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 REAL 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 REAL 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.

πŸ’œ 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

Definition at line 175 of file sla_syamv.f.


πŸ‘‘ subroutine zla_heamv

And now the complex one, she's fancy, DOUBLE PRECISION scalars, COMPLEX*16 matrix and vector, whole nine yards:

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. πŸ’…

✨ Purpose:

Okay so heads up, the source text here literally says ZLA_SYAMV β€” like, the SYAMV spelling. That's what's written on the page, bestie, so that's what I'm giving you. Not my typo, I'm just the messenger 🫢

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. ✨

🫢 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.

and then ALPHA... yeah okay, we're literally about to get to it β€” keep scrolling bestie, it's right there πŸ’€

okay so picking up the zla_heamv parameter list right where it left off, bestie: πŸ’…

  • ALPHA β€” is DOUBLE PRECISION . On entry, ALPHA specifies the scalar alpha. Unchanged on exit.
  • 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 β€” 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 β€” 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 β€” is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. Unchanged on exit.
  • 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 β€” 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 β€” 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

Definition at line 176 of file zla_heamv.f.


zla_syamv 🧚

okay next up is the sister routine, and she's giving error-bound realness: πŸ¦‹

subroutine zla_syamv (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_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bounds.

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. 😭✨

Parameters πŸ’…

  • 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 β€” is INTEGER. On entry, N specifies the number of columns of the matrix A. N must be at least zero. Unchanged on exit.
  • ALPHA β€” is DOUBLE PRECISION . On entry, ALPHA specifies the scalar alpha. Unchanged on exit.
  • 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 β€” 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 β€” 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 β€” is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. Unchanged on exit.
  • 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 β€” 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 β€” 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

Definition at line 177 of file zla_syamv.f.


Author πŸ€–

Generated automatically by Doxygen for LAPACK from the source code.

Source/version check: LAPACK, Version 3.12.0 β€” la_heamv(3), and that's the whole vibe. Bye bestie πŸ’…βœ¨

πŸ“¦ where this page comes from