BLAS/SRC/dgemv.f(3)

πŸ’– BLAS/SRC/dgemv.f πŸ’–

okay bestie, welcome to the dgemv page β€” it's a LAPACK joint, lives under BLAS/SRC/, and it's literally the moment where a matrix meets a vector and they make a whole new vector together. main character energy fr. let's get into it πŸ’…


✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines

  • subroutine dgemv (trans, m, n, alpha, a, lda, x, incx, beta, y, incy) β€” DGEMV πŸŽ€

🌸 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 β€” she's the one, the icon, the legend 🌟

🎯 Purpose

okay so here's the whole vibe: DGEMV does one of these two matrix-vector operations for you, no cap:

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

🧚 Parameters

  • TRANS β€” TRANS is CHARACTER*1. on entry, TRANS specifies the operation to be performed, and she's got options, bestie:
    • 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.
  • M β€” M is INTEGER. on entry, M specifies the number of rows of the matrix A. M must be at least zero. no negative rows, that's not a thing πŸ’€
  • N β€” N is INTEGER. on entry, N specifies the number of columns of the matrix A. N must be at least zero. same deal πŸ™ˆ
  • ALPHA β€” ALPHA is DOUBLE PRECISION. on entry, ALPHA specifies the scalar alpha. she's just a lil number doing her best 🫢
  • A β€” A is a DOUBLE PRECISION array, dimension ( LDA, N ). before entry, the leading m by n part of the array A must contain the matrix of coefficients. she's the star of the show ⭐
  • 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, m ). respect the stride, she's picky πŸ’…
  • X β€” X is a DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = 'N' or 'n' and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. before entry, the incremented array X must contain the vector x. 🌈
  • INCX β€” INCX is INTEGER. on entry, INCX specifies the increment for the elements of X. INCX must not be zero. like, genuinely, zero is not allowed, don't even try 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. she said you can skip the homework, iconic πŸŽ€
  • Y β€” Y is a DOUBLE PRECISION array, dimension at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = 'N' or 'n' and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. 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. so like, she doesn't ask, she just replaces it, slay πŸ’–
    • also: if either m or n is zero, then Y is not referenced and the function performs a quick return. she simply leaves πŸ¦‹
  • INCY β€” INCY is INTEGER. on entry, INCY specifies the increment for the elements of Y. INCY must not be zero. same rule as INCX, no zeros allowed, periodt πŸ’€

🌟 Author

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

πŸ”₯ 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.
ngl this routine is older than basically everyone reading this and she's still out here performing, that's legacy behavior πŸ‘‘

Definition at line 157 of file dgemv.f. ✨


🌸 Author 🌸

Generated automatically by Doxygen for LAPACK from the source code. πŸ€–πŸ’œ


and that's the whole page, bestie!! this one's from LAPACK Version 3.12.0, dated Tue Nov 28 2023 12:08:41, and yeah the Doxygen just auto-generated the whole thing for us. go forth and multiply your matrices πŸ«ΆπŸ’–βœ¨