hpmv(3)
π¦ hpmv(3)
okay so bestie, this is the manual page for hpmv β which is secretly a whole little family of BLAS routines, {hp,sp}mv, that do Hermitian/symmetric matrix-vector multiply. it's giving "level 2 BLAS royalty", it's giving "your linear algebra homework's main character". let's get into it π
β¨ NAME β¨
hpmv β {hp,sp}mv: Hermitian/symmetric matrix-vector multiply
β¨ SYNOPSIS β¨
π Functions
subroutine chpmv (uplo, n, alpha, ap, x, incx, beta, y, incy)- CHPMV
subroutine dspmv (uplo, n, alpha, ap, x, incx, beta, y, incy)- DSPMV
subroutine sspmv (uplo, n, alpha, ap, x, incx, beta, y, incy)- SSPMV
subroutine zhpmv (uplo, n, alpha, ap, x, incx, beta, y, incy)- ZHPMV
subroutine cspmv (uplo, n, alpha, ap, x, incx, beta, y, incy)- CSPMV computes a matrix-vector product for complex vectors using a complex symmetric packed matrix
subroutine zspmv (uplo, n, alpha, ap, x, incx, beta, y, incy)- ZSPMV computes a matrix-vector product for complex vectors using a complex symmetric packed matrix
β¨ DETAILED DESCRIPTION β¨
this is where the real docs live β every function gets its own little spotlight below, no notes, no skips π
β¨ FUNCTION DOCUMENTATION β¨
π subroutine chpmv (character uplo, integer n, complex alpha, complex, dimension() ap, complex, dimension() x, integer incx, complex beta, complex, dimension(*) y, integer incy)
subroutine chpmv (character uplo, integer n, complex alpha, complex, dimension(*) ap, complex, dimension(*) x, integer incx, complex beta, complex, dimension(*) y, integer incy)
CHPMV β the Hermitian one. she's complex, she's packed, she's iconic.
π§ Purpose
CHPMV 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 matrix, supplied in packed form.
π§ Parameters
UPLOβCHARACTER*1. On entry,UPLOtells us whether the upper or lower triangular part of the matrixAis supplied in the packed arrayAP, like this:UPLO = 'U' or 'u'β the upper triangular part ofAis supplied inAP.UPLO = 'L' or 'l'β the lower triangular part ofAis supplied inAP.
NβINTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero.ALPHAβCOMPLEX. On entry,ALPHAspecifies the scalar alpha.APβCOMPLEXarray, dimension at least( ( n*( n + 1 ) )/2 ).- Before entry with
UPLO = 'U' or 'u', the arrayAPmust contain the upper triangular part of the hermitian matrix packed sequentially, column by column, so thatAP( 1 )containsa( 1, 1 ),AP( 2 )andAP( 3 )containa( 1, 2 )anda( 2, 2 )respectively, and so on. - Before entry with
UPLO = 'L' or 'l', the arrayAPmust contain the lower triangular part of the hermitian matrix packed sequentially, column by column, so thatAP( 1 )containsa( 1, 1 ),AP( 2 )andAP( 3 )containa( 2, 1 )anda( 3, 1 )respectively, and so on. - β οΈ note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero. so don't come for me if you left them blank, that's literally allowed π«Ά
- Before entry with
XβCOMPLEXarray, dimension at least( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the n element vector x.INCXβINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. π¨ like, genuinely not zero, zero is not the vibe.BETAβCOMPLEX. On entry,BETAspecifies the scalar beta. WhenBETAis supplied as zero thenYneed not be set on input. (a little treat, honestly β¨)YβCOMPLEXarray, dimension at least( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented arrayYmust contain the n element vector y. On exit,Yis overwritten by the updated vector y. π she gets replaced, that's her journey.INCYβ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.
π§ 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 148 of file chpmv.f.
π subroutine cspmv (character uplo, integer n, complex alpha, complex, dimension( * ) ap, complex, dimension( * ) x, integer incx, complex beta, complex, dimension( * ) y, integer incy)
subroutine cspmv (character uplo, integer n, complex alpha, complex, dimension( * ) ap, complex, dimension( * ) x, integer incx, complex beta, complex, dimension( * ) y, integer incy)
CSPMV computes a matrix-vector product for complex vectors using a complex symmetric packed matrix. symmetric, not hermitian β yes there's a difference, yes it matters, iykyk πΈ
π§ Purpose
CSPMV 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 symmetric matrix, supplied in packed form.
π§ Parameters
UPLOβCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the matrixAis supplied in the packed arrayAPas follows:UPLO = 'U' or 'u'β the upper triangular part ofAis supplied inAP.UPLO = 'L' or 'l'β the lower triangular part ofAis supplied inAP.- Unchanged on exit.
NβINTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero. Unchanged on exit.ALPHAβCOMPLEX. On entry,ALPHAspecifies the scalar alpha. Unchanged on exit.APβCOMPLEXarray, dimension at least( ( N*( N + 1 ) )/2 ).- Before entry, with
UPLO = 'U' or 'u', the arrayAPmust contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so thatAP( 1 )containsa( 1, 1 ),AP( 2 )andAP( 3 )containa( 1, 2 )anda( 2, 2 )respectively, and so on. - Before entry, with
UPLO = 'L' or 'l', the arrayAPmust contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so thatAP( 1 )containsa( 1, 1 ),AP( 2 )andAP( 3 )containa( 2, 1 )anda( 3, 1 )respectively, and so on. - Unchanged on exit.
- Before entry, with
XβCOMPLEXarray, dimension at least( 1 + ( N - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the N-element vector x. Unchanged on exit.INCXβINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Unchanged on exit. π¨BETAβCOMPLEX. On entry,BETAspecifies the scalar beta. WhenBETAis supplied as zero thenYneed not be set on input. Unchanged on exit.YβCOMPLEXarray, dimension at least( 1 + ( N - 1 )*abs( INCY ) ). Before entry, the incremented arrayYmust contain the n element vector y. On exit,Yis overwritten by the updated vector y. πINCYβINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero. Unchanged on exit.
π§ Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 150 of file cspmv.f.
π subroutine dspmv (character uplo, integer n, double precision alpha, double precision, dimension() ap, double precision, dimension() x, integer incx, double precision beta, double precision, dimension(*) y, integer incy)
subroutine dspmv (character uplo, integer n, double precision alpha, double precision, dimension(*) ap, double precision, dimension(*) x, integer incx, double precision beta, double precision, dimension(*) y, integer incy)
DSPMV β double precision symmetric packed, the workhorse edition π₯
π§ Purpose
DSPMV 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 symmetric matrix, supplied in packed form.
π§ Parameters
UPLOβCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the matrixAis supplied in the packed arrayAPas follows:UPLO = 'U' or 'u'β the upper triangular part ofAis supplied inAP.UPLO = 'L' or 'l'β the lower triangular part ofAis supplied inAP.
NβINTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero.ALPHAβDOUBLE PRECISION.On entry,ALPHAspecifies the scalar alpha.APπ (and part 1 taps out right here, bestie βAPand everything after it picks up in part 2)APβDOUBLE PRECISION</p> array, dimension at least( ( n*( n + 1 ) )/2 ). Okay so this is the packed matrix, and the vibes are very specific about how it goes in π :
Before entry with UPLO = 'U' or 'u', the array AP must contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on.
Before entry with UPLO = 'L' or 'l', the array AP must contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on.
XβDOUBLE PRECISION</p> array, dimension at least( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain thenelement vectorx. it's giving "the actual math input" β¨INCXβINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero π« (<- fr fr, do not do that)BETAβDOUBLE PRECISION</p>. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input β lowkey the best shortcut in the whole routine π«ΆYβDOUBLE PRECISION</p> array, dimension at least( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented arrayYmust contain thenelement vectory. On exit,Yis overwritten by the updated vectory. she ate and then replaced herself πINCYβINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero. same energy, different letter π
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 whenN = 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 146 of file dspmv.f.
πΈ sspmv β the single-precision sister
subroutine sspmv (character uplo, integer n, real alpha, real, dimension(*)
ap, real, dimension(*) x, integer incx, real beta, real, dimension(*) y,
integer incy)
Purpose:
SSPMVperforms the matrix-vector operationy := alpha*A*x + beta*y,wherealphaandbetaare scalars,xandyarenelement vectors andAis annbynsymmetric matrix, supplied in packed form.
same iconic routine, just REAL flavoured instead of DOUBLE PRECISION π
Parameters
UPLOβCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the matrixAis supplied in the packed arrayAPas follows:UPLO = 'U'or'u'β The upper triangular part ofAis supplied inAP.UPLO = 'L'or'l'β The lower triangular part ofAis supplied inAP.
NβINTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero. πALPHAβREAL. On entry,ALPHAspecifies the scalaralpha.APβREALarray, dimension at least( ( n*( n + 1 ) )/2 ). Packing rules, round two β¨:
Before entry with UPLO = 'U' or 'u', the array AP must contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on.
Before entry with UPLO = 'L' or 'l', the array AP must contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on.
XβREALarray, dimension at least( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain thenelement vectorx.INCXβINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. πBETAβREAL. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input π«ΆYβREALarray, dimension at least( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented arrayYmust contain thenelement vectory. On exit,Yis overwritten by the updated vectory.INCYβ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.
Further Details:
Level 2 Blas routine. The vector and matrix arguments are not referenced whenN = 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 146 of file sspmv.f.
π zhpmv β hermitian, complex*16, absolutely iconic
subroutine zhpmv (character uplo, integer n, complex*16 alpha, complex*16,
dimension(*) ap, complex*16, dimension(*) x, integer incx, complex*16
beta, complex*16, dimension(*) y, integer incy)
Purpose:
ZHPMVperforms the matrix-vector operationy := alpha*A*x + beta*y,wherealphaandbetaare scalars,xandyarenelement vectors andAis annbynhermitian matrix, supplied in packed form.
notice bestie: hermitian, not symmetric. that's the whole plot twist π¦
Parameters
UPLOβCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the matrixAis supplied in the packed arrayAPas follows:UPLO = 'U'or'u'β The upper triangular part ofAis supplied inAP.UPLO = 'L'or'l'β The lower triangular part ofAis supplied inAP.
NβINTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero.ALPHAβCOMPLEX*16. On entry,ALPHAspecifies the scalaralpha.APβCOMPLEX*16array, dimension at least( ( n*( n + 1 ) )/2 ).
Before entry with UPLO = 'U' or 'u', the array AP must contain the upper triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on.
Before entry with UPLO = 'L' or 'l', the array AP must contain the lower triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on.
Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero. π lowkey free real estate, don't waste your keystrokes
XβCOMPLEX*16array, dimension at least( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain thenelement vectorx.INCXβINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero.BETAβCOMPLEX*16. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input.YβCOMPLEX*16array, dimension at least( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented arrayYmust contain thenelement vectory. On exit,Yis overwritten by the updated vectory.INCYβ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.
Further Details:
Level 2 Blas routine. The vector and matrix arguments are not referenced whenN = 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 148 of file zhpmv.f.
π zspmv
subroutine zspmv (character uplo, integer n, complex*16 alpha, complex*16,
dimension( * ) ap, complex*16, dimension( * ) x, integer incx,
complex*16 beta, complex*16, dimension( * ) y, integer incy)
ZSPMV computes a matrix-vector product for complex vectors using a complex symmetric packed matrix. (yes bestie β symmetric, not hermitian. read that twice, the difference matters π)
Purpose:
okay so back to the function tea: ZSPMV is out here performing 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 symmetric matrix, supplied in packed form. iconic packed-storage behavior, no cap π
Parameters π
UPLOβCHARACTER*1. On entry,UPLOsays whether the upper or lower triangular part of the matrixAis supplied in the packed arrayAP, like this:UPLO = 'U' or 'u'β the upper triangular part ofAis supplied inAP.UPLO = 'L' or 'l'β the lower triangular part ofAis supplied inAP.
Unchanged on exit. β¨
NβINTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero. Unchanged on exit.ALPHAβCOMPLEX*16. On entry,ALPHAspecifies the scalaralpha. Unchanged on exit.APβCOMPLEX*16array, dimension at least( ( N*( N + 1 ) )/2 ).
Before entry, with UPLO = 'U' or 'u', the array AP must contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on.
Before entry, with UPLO = 'L' or 'l', the array AP must contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on.
Unchanged on exit. π«Ά
XβCOMPLEX*16array, dimension at least( 1 + ( N - 1 )*abs( INCX ) ).
Before entry, the incremented array X must contain the N-element vector x. Unchanged on exit.
INCXβINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Unchanged on exit.BETAβCOMPLEX*16. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input. Unchanged on exit. πYβCOMPLEX*16array, dimension at least( 1 + ( N - 1 )*abs( INCY ) ).
Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y.
INCYβINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero. Unchanged on exit.
Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 150 of file zspmv.f.
Author π€
Generated automatically by Doxygen for LAPACK from the source code.
that's the whole iconic manual page, bestie: LAPACK Version 3.12.0, hpmv(3), and the footer isnβt giving a date so Iβm not making one up π
β¨
π¦ 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