gbmv(3)
πΈ NAME πΈ
gbmv(3) β from the Library Functions Manual β is the page for gbmv, aka gbmv: general matrix-vector multiply. Bestie, itβs literally the general matrix-vector multiply routine, and itβs lowkey iconic. π
β¨
β¨ SYNOPSIS β¨
π Functions π
cgbmvβCGBMV
subroutine cgbmv (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y,
incy)
dgbmvβDGBMV
subroutine dgbmv (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y,
incy)
sgbmvβSGBMV
subroutine sgbmv (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y,
incy)
zgbmvβZGBMV
subroutine zgbmv (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y,
incy)
π¦ Detailed Description π¦
Okay so the detailed-description section is handing the mic straight to the function docs below. π€β¨ No extra detour here, bestie β weβre going in.
π Function Documentation π
π cgbmv π
subroutine cgbmv (character trans, integer m, integer n, integer kl, integer
ku, complex alpha, complex, dimension(lda,*) a, integer lda, complex,
dimension(*) x, integer incx, complex beta, complex, dimension(*) y,
integer incy)
CGBMV β yes bestie, thatβs the label. π
Purpose: CGBMV performs one of the matrix-vector operations:
y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y, or
y := alpha*A**H*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. π«Ά
π Parameters π
TRANSβTRANS is CHARACTER*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**H*x + beta*y.
MβM is INTEGER. On entry,Mspecifies the number of rows of the matrixA.Mmust be at least zero.NβN is INTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero.KLβKL is INTEGER. On entry,KLspecifies the number of sub-diagonals of the matrixA.KLmust satisfy0 .le. KL.KUβKU is INTEGER. On entry,KUspecifies the number of super-diagonals of the matrixA.KUmust satisfy0 .le. KU.ALPHAβALPHA is COMPLEX. On entry,ALPHAspecifies the scalaralpha.AβA is COMPLEX 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 position 2 in rowku, the first sub-diagonal starting at position 1 in 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. 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βLDA is INTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at least( kl + ku + 1 ).XβX is COMPLEX 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βINCX is INTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Periodt. πBETAβBETA is COMPLEX. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input.YβY is COMPLEX 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. If eithermornis zero, thenYnot referenced and the function performs a quick return.INCYβINCY is INTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero. No cap. π«Ά
π 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.
Definition at line 188 of file cgbmv.f. π
π dgbmv π
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 β the double-precision sibling is here, and yes, it ate. π
Purpose: DGBMV 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. π«Ά
π Parameters π
TRANSβTRANS is CHARACTER*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.
MβM is INTEGER. On entry,Mspecifies the number of rows of the matrixA.Mmust be at least zero.NβN is INTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero.KLβKL is INTEGER. On entry,KLspecifies the number of sub-diagonals of the matrixA.KLmust satisfy0 .le. KL.KUβKU is INTEGER. On entry,KUspecifies the number of super-diagonals of the matrixA.KUmust satisfy0 .le. KU.ALPHAβALPHA is DOUBLE PRECISION.On entry,ALPHAspecifies the scalaralpha.AβA is DOUBLE 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 position 2 in rowku, the first sub-diagonal starting at position 1 in 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. 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βLDA is INTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at least( kl + ku + 1 ).XβX is DOUBLE 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βINCX is INTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Literally not zero, bestie. πBETAβBETA is DOUBLE PRECISION.On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input.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, 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,INCYspecifies the increment for the elements ofY.INCYmust not be zero. Periodt. π«Ά
π Author π
- Univ. of Tennessee
π Author
Bestie, this one's got the whole academic avengers squad behind it:
- 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, orM = 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.
Definition at line 186 of file dgbmv.f.
π subroutine sgbmv
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
Purpose
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. That's the whole vibe. β¨
Parameters
TRANSβ isCHARACTER*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.
Mβ isINTEGER. On entry,Mspecifies the number of rows of the matrixA.Mmust be at least zero.Nβ isINTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero.KLβ isINTEGER. On entry,KLspecifies the number of sub-diagonals of the matrixA.KLmust satisfy0 .le. KL.KUβ isINTEGER. On entry,KUspecifies the number of super-diagonals of the matrixA.KUmust satisfy0 .le. KU.ALPHAβ isREAL. On entry,ALPHAspecifies the scalaralpha.Aβ isREAL 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 position 2 in rowku, the first sub-diagonal starting at position 1 in 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. 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β isINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at least( kl + ku + 1 ).Xβ isREAL 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β isINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. π«BETAβ isREAL. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input. (Free pass, iykyk π )Yβ isREAL 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. If eithermornis zero, thenYnot referenced and the function performs a quick return. πββοΈπ¨INCYβ isINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero.
π 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, orM = 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.
Definition at line 186 of file sgbmv.f.
π¦ subroutine zgbmv
subroutine zgbmv (character trans, integer m, integer n, integer kl, integer
ku, complex*16 alpha, complex*16, dimension(lda,*) a, integer lda,
complex*16, dimension(*) x, integer incx, complex*16 beta, complex*16,
dimension(*) y, integer incy)
π ZGBMV
Purpose
ZGBMV performs one of the matrix-vector operations
y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y, or
y := alpha*A**H*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. Three flavours, pick your fighter. β¨π
Parameters
TRANSβ isCHARACTER*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**H*x + beta*y.
Heads up bestie β for the complex one,'C'gives you the conjugate transposeA**H, not just the plain transpose like insgbmv. Different vibe entirely. π«Ά
Mβ isINTEGER. On entry,Mspecifies the number of rows of the matrixA.Mmust be at least zero.Nβ isINTEGER. On entry,Nspecifies the number of columns of the matrixA.Nmust be at least zero.KLβ isINTEGER. On entry,KLspecifies the number of sub-diagonals of the matrixA.KLmust satisfy0 .le. KL.KUβ isINTEGER. On entry,KUspecifies the number of super-diagonals of the matrixA.KUmust satisfy0 .le. KU.ALPHAβ isCOMPLEX*16. On entry,ALPHAspecifies the scalaralpha.Aβ isCOMPLEX*16 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 position 2 in rowku, the first sub-diagonal starting at position 1 in 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. 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β isINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at least( kl + ku + 1 ).Xβ isCOMPLEX*16 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β isINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. π«BETAβ isCOMPLEX*16. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input.Yβ isCOMPLEX*16 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. If eithermornis zero, thenYnot referenced and the function performs a quick return. πββοΈπ¨INCYβ isINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Further Details
Okay so the source file literally opens with this precious little Fortran comment block π and itβs giving βreceipts from the Unix eldersβ β hereβs every crumb:
Level 2 Blas routine.β thatβs the whole vibe check, no cap.- The vector and matrix arguments are not referenced when
N = 0, orM = 0π«Ά (so if either one is zero, those args get zero attention, periodt). -- 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.
And the file itself? Definition at line 188 of file zgbmv.f. β screenshot that for the group chat πΈβ¨
π Author π
Generated automatically by Doxygen for LAPACK from the source code. β yes bestie, the docs wrote themselves, and honestly? Slay.
Thatβs the whole page, bestie β brought to you by LAPACK Version 3.12.0 and the gbmv(3) manual-page energy. Mwah πβ¨
π¦ 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