BLAS/SRC/zhbmv.f(3)
β¨ BLAS/SRC/zhbmv.f(3) β the hermitian band matrix glow-up β¨
Okay so bestie, welcome to the manual page for BLAS/SRC/zhbmv.f(3) β it's giving Library Functions Manual energy and honestly? We're obsessed. This is the whole vibe of zhbmv, no cap.
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine zhbmv (uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)β ZHBMV. That's the whole thing. Iconic.
π¦ Function/Subroutine Documentation π¦
subroutine zhbmv (character uplo, integer n, integer k, 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)
ZHBMV. Literally the main character.
π Purpose π
!> !> ZHBMV performs the matrix-vector operation !> !> y := alpha*A*x + beta*y, !> !> where alpha and beta are scalars, x and y are n element vectors and !> A is an n by n hermitian band matrix, with k super-diagonals. !>
So basically you're doing a little matrix-vector moment: y := alpha*A*x + beta*y. The matrix A is a hermitian band matrix with k super-diagonals. Slay.
π Parameters π
Okay bestie, here's the whole cast of characters β every single one, fr fr.
UPLOβ isCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the band matrixAis being supplied as follows:UPLO = 'U' or 'u'β The upper triangular part ofAis being supplied.UPLO = 'L' or 'l'β The lower triangular part ofAis being supplied.
Nβ isINTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero. No negative energy allowed, periodt.Kβ isINTEGER. On entry,Kspecifies the number of super-diagonals of the matrixA.Kmust satisfy0 .le. K. So zero or more, bestie.ALPHAβ isCOMPLEX*16. On entry,ALPHAspecifies the scalar alpha. It's giving scalar realness.Aβ isCOMPLEX*16 array, dimension ( LDA, N ). Okay this one has lore, so pay attention:- Before entry with
UPLO = 'U' or 'u', the leading( k + 1 )bynpart of the arrayAmust contain the upper triangular band part of the hermitian matrix, supplied column by column, with the leading diagonal of the matrix in row( k + 1 )of the array, the first super-diagonal starting at position 2 in rowk, and so on. The top leftkbyktriangle of the arrayAis not referenced. - The following program segment will transfer the upper triangular part of a hermitian band matrix from conventional full matrix storage to band storage:
- Before entry with
DO 20, J = 1, N
M = K + 1 - J
DO 10, I = MAX( 1, J - K ), J
A( M + I, J ) = matrix( I, J )
10 CONTINUE
20 CONTINUE
- Before entry with
UPLO = 'L' or 'l', the leading( k + 1 )bynpart of the arrayAmust contain the lower triangular band part of the hermitian matrix, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom rightkbyktriangle of the arrayAis not referenced. - The following program segment will transfer the lower triangular part of a hermitian band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N
M = 1 - J
DO 10, I = J, MIN( N, J + K )
A( M + I, J ) = matrix( I, J )
10 CONTINUE
20 CONTINUE
- Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero. Like, they're just assumed zero. Don't come for me.
LDAβ isINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at least( k + 1 ). Respect the minimum, bestie.Xβ isCOMPLEX*16 array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the vector x. She's ready.INCXβ isINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Zero is not the vibe here.BETAβ isCOMPLEX*16. On entry,BETAspecifies the scalar beta. Another scalar, another slay.Yβ isCOMPLEX*16 array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented arrayYmust contain the vector y. On exit,Yis overwritten by the updated vector y. She gets a whole new look, honestly.INCYβ isINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero. Periodt.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
The whole squad. We love to see it.
π 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. !>
So it's a Level 2 BLAS routine, and the vector and matrix arguments are literally not referenced when N = 0, or M = 0. And it was written on 22-October-1986 by Jack Dongarra, Jeremy Du Croz, Sven Hammarling, and Richard Hanson. Ancient icons, honestly. Respect the elders.
Definition at line 186 of file zhbmv.f.
π«Ά Author (again, because Doxygen said so) π«Ά
Generated automatically by Doxygen for LAPACK from the source code. Not me, not you β Doxygen did that. π
Okay bestie, that's the whole page. No cap, every detail is here. Stay hermitian, stay banded, and remember: INCX and INCY must not be zero. Fr fr.
LAPACK Β· Version 3.12.0 Β· BLAS/SRC/zhbmv.f(3) β mwah, ily, bye! πβ¨ππ¦
π¦ 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