DGEMV(3)
DGEMV(3) π β¨
okay so this page is from /home/abui...SRC/dgemv.f(3), straight out of the Library Functions Manual β and bestie, it is so much more fun than it looks, i promise π«Ά
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/dgemv.f
like yes that's literally a whole path as the name, she's got main character energy and a very long address, we respect it π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine DGEMV (trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
that's the short version β DGEMV, lowercase vibes only, arguments all lined up π
πΈ Function/Subroutine Documentation πΈ
subroutine DGEMV (character 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)
DGEMV π«Ά (the full-length version, same girl, more detail)
Purpose
!> !> DGEMV performs one of the matrix-vector operations !> !> y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y, !> !> where alpha and beta are scalars, x and y are vectors and A is an !> m by n matrix. !>
so literally: you got a matrix A, you got vectors x and y, you got scalars alpha and beta, and DGEMV does the whole multiply-and-add situation for you. either the normal way or the transposed way, and honestly? iconic π₯
π Parameters π
TRANSβTRANSisCHARACTER*1. On entry,TRANSspecifies the operation to be performed as follows:TRANS = 'N' or 'n'βy := alpha*A*x + beta*y.TRANS = 'T' or 't'βy := alpha*A**T*x + beta*y.TRANS = 'C' or 'c'βy := alpha*A**T*x + beta*y.
ngl the 'T' and 'C' cases are doing the exact same thing here, that's just how she is π
MβMisINTEGER. On entry,Mspecifies the number of rows of the matrixA.Mmust be at least zero. (zero is allowed, she just vibes and leaves early β¨)NβNisINTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero.ALPHAβALPHAisDOUBLE PRECISION.On entry,ALPHAspecifies the scalaralpha. that's the little multiplier bestie πΈAβAisDOUBLE PRECISION array, dimension ( LDA, N ). Before entry, the leadingmbynpart of the arrayAmust contain the matrix of coefficients. πLDAβLDAisINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, m ). don't skimp on it, fr fr π«ΆXβXisDOUBLE PRECISION array, dimension at least ( 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. mind thenvsmswap depending onTRANS, iykyk πINCXβINCXisINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. seriously, not zero, that's a hard no πBETAβBETAisDOUBLE PRECISION.On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input. cute little shortcut, love that for you β¨YβYisDOUBLE 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. okay so she literally does not touchYin that case, she's out the door πββοΈπ¨INCYβINCYisINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero. same rule asINCX, no zeros allowed periodt π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad showed up for this one π«Άπ
Further Details
!> !> Level 2 Blas routine. !> The vector and matrix arguments are not referenced when N = 0, or M = 0 !> !> -- 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. !>
okay 1986!! she's been serving since before most of us were born, that's legacy behavior π and for real, if N = 0 or M = 0 the vector and matrix arguments are not referenced β she's not even looking at them π
Definition at line 157 of file dgemv.f. π
β Author β
Generated automatically by Doxygen for LAPACK from the source code. not a human, a little robot did this, and it ate π€β¨
btw quick vibe check:INCXandINCYmust not be zero,LDAmust be at leastmax( 1, m ),MandNmust be at least zero, andYgets overwritten on exit unlessmornis zero. no cap, those are the rules π«Ά
alright bestie that's the whole page!! π this was LAPACK, Version 3.12.0, and our girl lives at /home/abui...SRC/dgemv.f(3) β go forth and multiply those matrices, slay πβ¨π¦
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms