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_HEAMVcomputes 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_SYAMVcomputes 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_SYAMVcomputes 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_SYAMVcomputes 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_HEAMVcomputes 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_SYAMVcomputes 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,UPLOis the little switch that tells the routine which triangle ofAto look at:UPLO = BLAS_UPPERmeans only the upper triangular part ofAis referenced, andUPLO = BLAS_LOWERmeans only the lower triangular part ofAis referenced. It stays unchanged on exit. πNβN is INTEGER. On entry,Nis literally the number of columns of matrixA, and it must be at least zero. Unchanged on exit.ALPHAβALPHA is REAL. On entry, it's the scalaralpha, no notes, no drama. Unchanged on exit.AβA is COMPLEX array, dimension ( LDA, n ). Before entry, the leadingmbynpart ofAhas to hold the matrix of coefficients. Unchanged on exit. Yes, it saysmbynβ keeping it exactly.LDAβLDA is INTEGER. On entry, it's the first dimension ofAas declared in the calling (sub) program, and it must be at leastmax( 1, n ). Unchanged on exit.XβX is COMPLEX array, dimension ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incrementedXarray has to contain vectorx. Unchanged on exit.INCXβINCX is INTEGER. On entry, it's the increment for the elements ofX, and it must not be zero. Unchanged on exit.BETAβBETA is REAL. On entry, it's the scalarbeta. Cute detail: whenBETAis supplied as zero,Yneed not be set on input. Unchanged on exit.YβY is REAL array, dimension ( 1 + ( n - 1 )*abs( INCY ) ). Before entry withBETAnon-zero, the incrementedYarray has to contain vectory. On exit,Ygets overwritten by the updated vectory. Bye originalY. πINCYβINCY is INTEGER. On entry, it's the increment for the elements ofY, 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,UPLOspecifies whether the upper or lower triangular part of the arrayAis to be referenced:UPLO = BLAS_UPPERmeans only the upper triangular part ofAis referenced, andUPLO = BLAS_LOWERmeans only the lower triangular part ofAis referenced. Unchanged on exit.NβN is INTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero. Unchanged on exit.ALPHAβALPHA is REAL. On entry,ALPHAspecifies the scalaralpha. Unchanged on exit.AβA is COMPLEX array, dimension ( LDA, n ). Before entry, the leadingmbynpart of the arrayAmust contain the matrix of coefficients. Unchanged on exit.LDAβLDA is INTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, n ). Unchanged on exit.XβX is COMPLEX array, dimension ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the vectorx. Unchanged on exit.INCXβINCX is INTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Unchanged on exit.BETAβBETA is REAL. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input. Unchanged on exit.YβY is REAL array, dimension ( 1 + ( n - 1 )*abs( INCY ) ). Before entry withBETAnon-zero, the incremented arrayYmust contain the vectory. On exit,Yis overwritten by the updated vectory.INCYβINCY is INTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust 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,UPLOtells us which triangle of the arrayAwe're actually referencing, like this:UPLO = BLAS_UPPERβ only the upper triangular part ofAis to be referenced.UPLO = BLAS_LOWERβ only the lower triangular part ofAis to be referenced.
Unchanged on exit. π
NβN is INTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero. Unchanged on exit.ALPHAβALPHA is DOUBLE PRECISION .On entry,ALPHAspecifies the scalaralpha. Unchanged on exit. βAβA is DOUBLE PRECISION array, dimension ( LDA, n ).Before entry, the leadingmbynpart of the arrayAmust contain the matrix of coefficients. Unchanged on exit. (yes bestie it saysmbyn, that's what the page says, we do not ask questions, we simply copy π)LDAβLDA is INTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, n ). Unchanged on exit.XβX is DOUBLE PRECISION array, dimension ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the vectorx. Unchanged on exit. π¦INCXβINCX is INTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust 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,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input. Unchanged on exit. πΈYβY is DOUBLE PRECISION array, dimension ( 1 + ( n - 1 )*abs( INCY ) ). Before entry withBETAnon-zero, the incremented arrayYmust contain the vectory. On exit,Yis overwritten by the updated vectory. πINCYβINCY is INTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust 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,UPLOspecifies whether the upper or lower triangular part of the arrayAis to be referenced, as follows:UPLO = BLAS_UPPERβ only the upper triangular part ofAis to be referenced.UPLO = BLAS_LOWERβ only the lower triangular part ofAis to be referenced.
Unchanged on exit.
NβN is INTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero. Unchanged on exit.ALPHAβALPHA is REAL .On entry,ALPHAspecifies the scalaralpha. Unchanged on exit. βAβA is REAL array, dimension ( LDA, n ).Before entry, the leadingmbynpart of the arrayAmust contain the matrix of coefficients. Unchanged on exit.LDAβLDA is INTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, n ). Unchanged on exit.XβX is REAL array, dimension ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the vectorx. Unchanged on exit. πΈINCXβINCX is INTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Unchanged on exit.BETAβBETA is REAL .On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input. Unchanged on exit. π¦YβY is REAL array, dimension ( 1 + ( n - 1 )*abs( INCY ) ). Before entry withBETAnon-zero, the incremented arrayYmust contain the vectory. On exit,Yis overwritten by the updated vectory.INCYβINCY is INTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust 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,UPLOspecifies whether the upper or lower triangular part of the arrayAis to be referenced as follows:UPLO = BLAS_UPPERβ only the upper triangular part ofAis to be referenced.UPLO = BLAS_LOWERβ only the lower triangular part ofAis to be referenced.
Unchanged on exit.
NβN is INTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust 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β isDOUBLE PRECISION .On entry,ALPHAspecifies the scalar alpha. Unchanged on exit.Aβ isCOMPLEX*16array, dimension( LDA, n ). Before entry, the leadingmbynpart of the arrayAmust contain the matrix of coefficients. Unchanged on exit.LDAβ isINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, n ). Unchanged on exit.Xβ isCOMPLEX*16array, dimension at least( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the vector x. Unchanged on exit.INCXβ isINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Unchanged on exit.BETAβ isDOUBLE PRECISION .On entry,BETAspecifies the scalar beta. WhenBETAis supplied as zero thenYneed not be set on input. Unchanged on exit.Yβ isDOUBLE PRECISIONarray, dimension( 1 + ( n - 1 )*abs( INCY ) ). Before entry withBETAnon-zero, the incremented arrayYmust contain the vector y. On exit,Yis overwritten by the updated vector y.INCYβ isINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust 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β isINTEGER. On entry,UPLOspecifies whether the upper or lower triangular part of the arrayAis to be referenced as follows:UPLO = BLAS_UPPERβ Only the upper triangular part ofAis to be referenced.UPLO = BLAS_LOWERβ Only the lower triangular part ofAis to be referenced. Unchanged on exit.
Nβ isINTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero. Unchanged on exit.ALPHAβ isDOUBLE PRECISION .On entry,ALPHAspecifies the scalar alpha. Unchanged on exit.Aβ isCOMPLEX*16array, dimension( LDA, n ). Before entry, the leadingmbynpart of the arrayAmust contain the matrix of coefficients. Unchanged on exit.LDAβ isINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, n ). Unchanged on exit.Xβ isCOMPLEX*16array, dimension at least( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the vector x. Unchanged on exit.INCXβ isINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Unchanged on exit.BETAβ isDOUBLE PRECISION .On entry,BETAspecifies the scalar beta. WhenBETAis supplied as zero thenYneed not be set on input. Unchanged on exit.Yβ isDOUBLE PRECISIONarray, dimension( 1 + ( n - 1 )*abs( INCY ) ). Before entry withBETAnon-zero, the incremented arrayYmust contain the vector y. On exit,Yis overwritten by the updated vector y.INCYβ isINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust 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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms