SGBMV(3)
π NAME
okay so bestie, this whole page is literally the man page for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/sgbmv.f, and it lives in the Library Functions Manual β the file path up top is /home/abui...SRC/sgbmv.f(3), in case you were wondering. π«Ά
β¨ SYNOPSIS
π« Functions/Subroutines
subroutine SGBMV (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy)β SGBMV, that's her π
π Function/Subroutine Documentation
Here's the full signature, no cap, exactly as written:
subroutine SGBMV (character trans, integer m, integer n, integer kl, integer
ku, real alpha, real, dimension(lda,*) a, integer lda, real,
dimension(*) x, integer incx, real beta, real, dimension(*) y, integer
incy)
SGBMV. iconic name, honestly.
πΈ Purpose
She does one of the matrix-vector operations, and the source says it like this:
!>
!> SGBMV 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 band matrix, with kl sub-diagonals and ku super-diagonals.
!>
so yeah β 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. the way that's just linear algebra with main character energy π
π«Ά Parameters
TRANSβ this one isCHARACTER*1. on entry it tells you which operation is happening, and it's giving very specific: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βINTEGER. on entry,Mis the number of rows of the matrixA.Mmust be at least zero. no negative row counts, bestie.NβINTEGER. on entry,Nis the number of columns of the matrixA.Nmust be at least zero. same vibe check. πKLβINTEGER. on entry,KLis the number of sub-diagonals of the matrixA.KLmust satisfy0 .le. KL.KUβINTEGER. on entry,KUis the number of super-diagonals of the matrixA.KUmust satisfy0 .le. KU.ALPHAβREAL. on entry,ALPHAis the scalaralpha. that's it, that's the whole job β¨AβREAL array, dimension ( LDA, N ). before entry, the leading( kl + ku + 1 )bynpart of the arrayAmust contain the matrix of coefficients, supplied column by column. the leading diagonal of the matrix goes in row( ku + 1 )of the array, the first super-diagonal starts at position2in rowku, the first sub-diagonal starts at position1in row( ku + 2 ), and so on. elements inAthat do not correspond to elements in the band matrix β like the top leftkubykutriangle β are not referenced. lowkey important. π¦
the source gives this exact program segment for moving 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βINTEGER. on entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at least( kl + ku + 1 ). do not play with her.XβREAL 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βINTEGER. on entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. periodt. πBETAβREAL. on entry,BETAis the scalarbeta. whenBETAis supplied as zero, thenYneed not be set on input. cute shortcut, honestly.YβREAL 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. and if eithermornis zero, thenYis not referenced and the function performs a quick return. she said "not today" and left πINCYβINTEGER. on entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero.
π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
those are the authors, and they ate. π
π Further Details
- Level 2 Blas routine. (yes, capital B in the source, we respect it.)
- The vector and matrix arguments are not referenced when
N = 0, or M = 0. - Written on 22-October-1986 by:
- Jack Dongarra, Argonne National Lab.
- Jeremy Du Croz, Nag Central Office.
- Sven Hammarling, Nag Central Office.
- Richard Hanson, Sandia National Labs.
the 1986 of it all is honestly iconic. vintage fortran besties fr fr π§
β Definition
Definition at line 186 of file sgbmv.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code. not a human, just doxygen doing her thing π
and that's the whole page, bestie β LAPACK Version 3.12.0, sourced from /home/abui...SRC/sgbmv.f(3), signed off with love from the Library Functions Manual. 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