DGBMV(3)
π DGBMV(3) β or: the band-matrix glow-up, bestie π
okay so first things first, this page lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/dgbmv.f β that's the whole NAME section, yes really, it's just a path, the LAPACK docs are Like That π. Anyway. It's a Library Functions Manual situation and we're about to get into it.
β¨ SYNOPSIS β¨
Functions/Subroutines πΈ
subroutine DGBMV (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y,
incy)
DGBMV β that's the whole description, she contains multitudes π
π¦ Function/Subroutine Documentation π¦
subroutine DGBMV (character trans, integer m, integer n, integer kl, integer
ku, 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)
DGBMV
Purpose π―
ok so get this β DGBMV does 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 band matrix, with kl sub-diagonals and ku super-diagonals. she's banded, she's built different, periodt π
Parameters π«Ά
TRANSβTRANSisCHARACTER*1. On entry,TRANSspecifies the operation to be performed, like so: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βMisINTEGER. On entry,Mspecifies the number of rows of the matrixA.Mmust be at least zero.NβNisINTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero.KLβKLisINTEGER. On entry,KLspecifies the number of sub-diagonals of the matrixA.KLmust satisfy0 .le. KL.KUβKUisINTEGER. On entry,KUspecifies the number of super-diagonals of the matrixA.KUmust satisfy0 .le. KU.ALPHAβALPHAisDOUBLE PRECISION. On entry,ALPHAspecifies the scalaralpha. our little scalar icon πAβAisDOUBLE PRECISION array, dimension ( LDA, N ). Before entry, the leading( kl + ku + 1 )bynpart of the arrayAmust contain the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row( ku + 1 )of the array, the first super-diagonal starting at position2in rowku, the first sub-diagonal starting at position1in row( ku + 2 ), and so on. Elements in the arrayAthat do not correspond to elements in the band matrix (such as the top leftkubykutriangle) are not referenced β they're just there, vibing, ignored π. And the following program segment will transfer a band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N
K = KU + 1 - J
DO 10, I = MAX( 1, J - KU ), MIN( M, J + KL )
A( K + I, J ) = matrix( I, J )
10 CONTINUE
20 CONTINUE
LDAβLDAisINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at least( kl + ku + 1 ). no shortcuts bestie β¨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.INCXβINCXisINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. like, do NOT. π«BETAβBETAisDOUBLE PRECISION. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input β zero beta means free real estate, you can leaveYa mess π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, the incremented arrayYmust contain the vectory. On exit,Yis overwritten by the updated vectoryβ she gets a whole new identity, main character energy π . If eithermornis zero, thenYis not referenced and the function performs a quick return. bye bestie πINCYβINCYisINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero. same rule, no zeroes, we don't do that here π
Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad, shoutout π«Ά
Further Details π₯
- Level 2 Blas routine.
- The vector and matrix arguments are not referenced when
N = 0, orM = 0β they literally don't get looked at. not even a glance π -- 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.
1986!! they were doing banded matrix-vector products before it was cool, no cap β
Definition at line 186 of file dgbmv.f.
Author (again, the auto one) π
Generated automatically by Doxygen for LAPACK from the source code. yes, a robot wrote this part, and honestly? she ate π€β¨
and that's the whole page bestie β LAPACK Version 3.12.0, from /home/abui...SRC/dgbmv.f(3), which is where we came in and where we're leaving π go forth and multiply (matrices) π¦
π¦ 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