SRC/dla_geamv.f(3)
πΈ SRC/dla_geamv.f β LAPACK manual, but make it make sense π
okay so bestie, welcome to the dla_geamv page from the LAPACK Library Functions Manual. yes it's a Fortran file name as a title, no we're not gonna be weird about it. let's GO β¨
β¨ NAME β¨
SRC/dla_geamv.f β that's literally the whole name, she's lowkey mysterious like that π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine dla_geamv (trans, m, n, alpha, a, lda, x, incx, beta, y,
incy)
DLA_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds.
like... that's the whole vibe. she multiplies matrices and she's precise about it π₯
π Function/Subroutine Documentation π
subroutine dla_geamv (integer trans, integer m, 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_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds. no cap, that's her job description π
π Purpose π
!>
!> DLA_GEAMV 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 real talk β she does the abs-ified matrix-vector thing, and she's mainly here so the error bounds come out right. to keep underflow from ruining everything, the components in the result get nudged away from zero by (N+1) times the underflow threshold π. BUT β and this is the iconique part β zero components do not get perturbed, because we don't want unnecessarily large errors for block-structure embedded in general matrices. an entry counts as a zero if every single multiplication involved in computing it had at least one zero multiplicand. periodt. π«Ά
π Parameters π
TRANSβTRANS is INTEGER. On entry,TRANSpicks the operation, and it's giving three options:
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. (and yes, BLAS_TRANS and BLAS_CONJ_TRANS give you the exact same thing here β that's the actual source, don't come for me π)
MβM is INTEGER. On entry,Mis how many rowsAhas.Mmust be at least zero. Unchanged on exit.NβN is INTEGER. On entry,Nis how many columnsAhas.Nmust be at least zero. Unchanged on exit.ALPHAβALPHA is DOUBLE PRECISION. On entry,ALPHAis the scalaralpha. Unchanged on exit. slay πAβA is DOUBLE PRECISION 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,LDAis the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, m ). Unchanged on exit.XβX is DOUBLE PRECISION array, dimension( 1 + ( n - 1 )*abs( INCX ) )whenTRANS = 'N'or'n', and at least( 1 + ( m - 1 )*abs( INCX ) )otherwise. Before entry, the incremented arrayXmust contain the vectorx. Unchanged on exit.INCXβINCX is INTEGER. On entry,INCXis the increment for the elements ofX.INCXmust not be zero. Unchanged on exit. π« (fr fr, zero is not the move here)BETAβBETA is DOUBLE PRECISION. On entry,BETAis the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input. Unchanged on exit. (free real estate π)YβY is DOUBLE PRECISION array, dimension at least( 1 + ( m - 1 )*abs( INCY ) )whenTRANS = 'N'or'n', and at least( 1 + ( n - 1 )*abs( INCY ) )otherwise. Before entry withBETAnon-zero, the incremented arrayYmust contain the vectory. On exit,Yis overwritten by the updated vectory. If eithermornis zero, thenYnot referenced and the function performs a quick return. πββοΈπ¨INCYβINCY is INTEGER. On entry,INCYis the increment for the elements ofY.INCYmust not be zero. Unchanged on exit.
Level 2 Blas routine. that's her tax bracket π
π§ Author π§
the legends behind this one:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 174 of file dla_geamv.f. β¨
πΈ Author (again, yes) πΈ
Generated automatically by Doxygen for LAPACK from the source code. so she wasn't even hand-written, she was born this way π
and that's the whole page bestie!! π this was SRC/dla_geamv.f from LAPACK Version 3.12.0 β go forth and compute your error bounds, you absolute icon ππ
π¦ 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