BLAS/SRC/cgbmv.f(3)
β¨ BLAS/SRC/cgbmv.f β¨
okay bestie, gather round, we're doing complex band matrix-vector math and it's gonna be a whole moment π
NAME
BLAS/SRC/cgbmv.f β yes that's literally the whole name, she's a file, she's iconic, that's it π
SYNOPSIS
Functions/Subroutines
subroutine cgbmv (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy)β CGBMV π
Function/Subroutine Documentation
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 π
Purpose:
so like, CGBMV performs one of the matrix-vector operations, and there are three (3) of them, no cap:
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. she's shaped like a band, she's got range π
Parameters
TRANSβ TRANS is CHARACTER*1. On entry,TRANSspecifies the operation to be performed as follows, and bestie you literally have to pick one: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. she's just a little guy, a scalar, a queen π«Ά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
ngl that snippet is doing the most but it's doing it correctly, so.
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. fr fr, zero is not the vibe here πBETAβ BETA is COMPLEX. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input. free pass, enjoy it β¨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. she said "not today", and left πΈINCYβ INCY is INTEGER. 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.
look at that roster. academic royalty. the avengers of linear algebra π
Further Details:
- Level 2 Blas routine.
- The vector and matrix arguments are not referenced when
N = 0, orM = 0
and now, the historical record, because we respect the elders π
-- 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 this before the internet was cute and it still slays. respect. π
Definition at line 188 of file cgbmv.f.
Author
Generated automatically by Doxygen for LAPACK from the source code. she didn't write herself, she was generated, and honestly? main character energy π
Version 3.12.0 Β· Tue Nov 28 2023 12:08:41 Β· BLAS/SRC/cgbmv.f(3)
okay that's the whole page bestie, you understood all of it, I'm so proud of you, go forth and multiply your band matrices π π¦β¨
π¦ where this page comes from
- centos-stream 10: blas 3.12.0-7.el10 Β· BSD-3-Clause-Open-MPI
- fedora 43: blas 3.12.0-10.fc43 Β· BSD-3-Clause-Open-MPI
- fedora 43: blas 3.12.0-10.fc43 Β· BSD-3-Clause-Open-MPI
- fedora 44: blas 3.12.0-11.fc44 Β· BSD-3-Clause-Open-MPI
- fedora 44: blas 3.12.0-11.fc44 Β· BSD-3-Clause-Open-MPI
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms