hemv(3)
π
hemv(3) β ok so this is the hemv(3) page bestie, strap in π
β¨ NAME β¨
hemv β it's {he,sy}mv: the Hermitian/symmetric matrix-vector multiply (that's [cz]symv over in LAPACK, iykyk)
πΈ SYNOPSIS πΈ
π¦ Functions
subroutine chemv (uplo, n, alpha, a, lda, x, incx, beta, y, incy)
CHEMV
subroutine dsymv (uplo, n, alpha, a, lda, x, incx, beta, y, incy)
DSYMV
subroutine ssymv (uplo, n, alpha, a, lda, x, incx, beta, y, incy)
SSYMV
subroutine zhemv (uplo, n, alpha, a, lda, x, incx, beta, y, incy)
ZHEMV
subroutine csymv (uplo, n, alpha, a, lda, x, incx, beta, y, incy)
CSYMV β lowkey it computes a matrix-vector product for a complex symmetric matrix. Obsessed.
subroutine zsymv (uplo, n, alpha, a, lda, x, incx, beta, y, incy)
ZSYMV β literally computes a matrix-vector product for a complex symmetric matrix. Same energy.
Detailed Description π₯
Function Documentation π
π§ subroutine chemv (character uplo, integer n, complex alpha, complex, dimension(lda,*) a, integer lda, complex, dimension(*) x, integer incx, complex beta, complex, dimension(*) y, integer incy)
CHEMV
Purpose:
So basically CHEMV 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. That's the whole vibe. β¨
Parameters
UPLO
UPLO is CHARACTER*1. On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = 'U' or 'u' Only the upper triangular part of A
is to be referenced.
UPLO = 'L' or 'l' Only the lower triangular part of A
is to be referenced.
N
N is INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero. (Bestie, zero is allowed, it's giving minimal effort and honestly valid.)
ALPHA
ALPHA is COMPLEX. On entry, ALPHA specifies the scalar alpha.
A
A is COMPLEX array, dimension ( LDA, N ).
Before entry with UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the hermitian matrix, and the strictly lower triangular part of A is not referenced.
Before entry with UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix, and the strictly upper triangular part of A is not referenced.
Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero. π (she's assuming, periodt)
LDA
LDA is INTEGER. On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least max( 1, n ).
X
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ).
Before entry, the incremented array X must contain the n element vector x.
INCX
INCX is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA
BETA is COMPLEX. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input. π«Ά (free real estate, no cap)
Y
Y is COMPLEX array, 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. π she ate and left no crumbs
INCY
INCY is INTEGER. On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details:
This is a 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 153 of file chemv.f.
π¦ subroutine csymv (character uplo, integer n, complex alpha, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) x, integer incx, complex beta, complex, dimension( * ) y, integer incy)
CSYMV computes a matrix-vector product for a complex symmetric matrix. Iconic behaviour honestly.
Purpose:
CSYMV 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. Note: symmetric, not hermitian β she's a different girl, don't conflate them π
Parameters
UPLO
UPLO is CHARACTER*1. On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = 'U' or 'u' Only the upper triangular part of A
is to be referenced.
UPLO = 'L' or 'l' Only the lower triangular part of A
is to be referenced.
Unchanged on exit.
N
N is INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero. Unchanged on exit.
ALPHA
ALPHA is COMPLEX. On entry, ALPHA specifies the scalar alpha. Unchanged on exit.
A
A is COMPLEX array, dimension ( LDA, N ).
Before entry, with UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix, and the strictly lower triangular part of A is not referenced.
Before entry, with UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix, and the strictly upper triangular part of A is not referenced.
Unchanged on exit.
LDA
LDA is INTEGER. On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least max( 1, N ). Unchanged on exit.
X
X is COMPLEX array, 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
INCX is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. Unchanged on exit.
BETA
BETA is COMPLEX. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input. Unchanged on exit.
Y
Y is COMPLEX array, 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
INCY is INTEGER. On entry, INCY specifies the increment for the elements of Y. INCY must not be zero. Unchanged on exit.
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 156 of file csymv.f.
π subroutine dsymv (character uplo, integer n, 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)
DSYMV
Purpose:
DSYMV 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. Double precision edition, she's thorough π
Parameters
UPLO
UPLO is CHARACTER*1. On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = 'U' or 'u' Only the upper triangular part of A
is to be referenced.
UPLO = 'L' or 'l' Only the lower triangular part of A
is to be referenced.
N
N is INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
Aβ DOUBLE PRECISION array, dimension ( LDA, N )</p> π¦ Okay so picture this:UPLO = 'U'or'u'means the leadingnbynupper triangular part ofAhas to hold the upper triangular part of the symmetric matrix β and the strictly lower triangular part ofA? Literally not referenced. Ignored. Not invited to the party π WithUPLO = 'L'or'l'it's the exact opposite: the leadingnbynlower triangular part ofAcarries the lower triangular part of the symmetric matrix, and the strictly upper triangular part ofAis not referenced. Bestie, only half the matrix matters here, that's the whole vibe πLDAβ INTEGER</p>. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. AndLDAmust be at leastmax( 1, n )β no cap, no exceptions, it's giving minimum-effort-required πXβ DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) )</p> β Before entry, the incremented arrayXmust contain thenelement vectorx. She's ready, she's loaded, she's iconic πΈINCXβ INTEGER</p>. On entry,INCXspecifies the increment for the elements ofX. AndINCXmust not be zero π fr fr do not do that, it's not the move πBETAβ DOUBLE PRECISION.</p> On entry,BETAspecifies the scalar beta. Fun little detail: whenBETAis supplied as zero thenYneed not be set on input β so if beta's a zero,Ygets a whole pass, no setup required πYβ DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) )</p>. Before entry, the incremented arrayYmust contain thenelement vectory. On exit,Yis overwritten by the updated vectory. She came in as one thing and leaves as another, that's called growth πINCYβ INTEGER</p>. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero β same rule asINCX, we stan consistency π
π«Ά 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
And then, the origin story β¨
-- 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 151 of file dsymv.f.
π SSYMV β the single-precision sibling, she's here
subroutine ssymv (character uplo, integer n, real alpha, real,
dimension(lda,*) a, integer lda, real, dimension(*) x, integer incx,
real beta, real, dimension(*) y, integer incy)
π― Purpose:
Okay bestie, SSYMV 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. Same energy, different precision, and honestly? Obsessed π₯
π§ Parameters
UPLOβ CHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the arrayAis to be referenced, as follows:UPLO = 'U'or'u'β only the upper triangular part ofAis to be referenced.UPLO = 'L'or'l'β only the lower triangular part ofAis to be referenced.
Nβ INTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero β zero is allowed, negative is a no βALPHAβ REAL. On entry,ALPHAspecifies the scalar alpha. Tiny but mighty πAβ REAL array, dimension ( LDA, N ). Before entry withUPLO = 'U'or'u', the leadingnbynupper triangular part of the arrayAmust contain the upper triangular part of the symmetric matrix and the strictly lower triangular part ofAis not referenced. Before entry withUPLO = 'L'or'l', the leadingnbynlower triangular part of the arrayAmust contain the lower triangular part of the symmetric matrix and the strictly upper triangular part ofAis not referenced. Half the matrix stays unbothered, main character energy πLDAβ INTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, n ). Periodt.Xβ REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain thenelement vectorx. She's the input, she's loaded πINCXβ INTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Say it with me: not zero πBETAβ REAL. On entry,BETAspecifies the scalar beta. WhenBETAis supplied as zero thenYneed not be set on input β free pass, we love to see it πYβ REAL 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. Glow-up complete β¨INCYβ INTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero. Same rules apply, 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 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 151 of file ssymv.f.
π ZHEMV β the complex*16 one, she's fancy
subroutine zhemv (character uplo, integer n, 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)
π― Purpose:
ZHEMV 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. Hermitian, bestie β she's not symmetric, she has conjugate feelings π¦
π§ Parameters
UPLOβ CHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the arrayAis to be referenced, as follows:UPLO = 'U'or'u'β only the upper triangular part ofAis to be referenced.UPLO = 'L'or'l'β only the lower triangular part ofAis to be referenced.
Nβ INTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero. Zero is a valid order, negative is not πALPHAβ COMPLEX*16. On entry,ALPHAspecifies the scalar alpha. Complex, literally πAβ COMPLEX*16 array, dimension ( LDA, N ). Before entry withUPLO = 'U'or'u', the leadingnbynupper triangular part of the arrayAmust contain the upper triangular part of the hermitian matrix and the strictly lower triangular part ofAis not referenced. Before entry withUPLO = 'L'or'l', the leadingnbynlower triangular part of the arrayAmust contain the lower triangular part of the hermitian matrix and the strictly upper triangular part ofAis not referenced. Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero π β so the diagonal's imaginary bit gets a little nap, it's fine, it's handled.LDAβ INTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, n ). Non-negotiable βXβ COMPLEX*16 array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain thenelement vectorx. Loaded and ready πΈINCXβ INTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Ngl this is the rule of the whole page πBETAβ COMPLEX*16. On entry,BETAspecifies the scalar beta. WhenBETAis supplied as zero thenYneed not be set on input β yes queen, skip the setup πYβ COMPLEX*16 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. In goes one vector, out comes a whole new her π¦INCYβ INTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero. Final reminder, bestie, guard that increment π
π«Ά 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 153 of file zhemv.f.
subroutine zsymv π
okay bestie, this one is the complex symmetric matvec main character. The signature is literally this, no cap:
subroutine zsymv (character uplo, integer n, 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)
ZSYMV computes a matrix-vector product for a complex symmetric matrix. It's giving "I know my triangle, I know my scalars" energy π
Purpose β¨
ZSYMV 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. Obsessed with a clean little y := alpha*A*x + beta*y, fr fr π
Parameters π
UPLOβ isCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the arrayAis to be referenced as follows:UPLO = 'U'or'u'β only the upper triangular part ofAis to be referenced.UPLO = 'L'or'l'β only the lower triangular part ofAis to be referenced.- Unchanged on exit.
Nβ isINTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero. Unchanged on exit. lowkey a very important little number π«ΆALPHAβ isCOMPLEX*16. On entry,ALPHAspecifies the scalaralpha. Unchanged on exit.Aβ isCOMPLEX*16array, dimension( LDA, N ).- Before entry, with
UPLO = 'U'or'u', the leading n by n upper triangular part of the arrayAmust contain the upper triangular part of the symmetric matrix and the strictly lower triangular part ofAis not referenced. - Before entry, with
UPLO = 'L'or'l', the leading n by n lower triangular part of the arrayAmust contain the lower triangular part of the symmetric matrix and the strictly upper triangular part ofAis not referenced. - Unchanged on exit. She is symmetric, she is complex, she is not here for your irrelevant triangle π
- Before entry, with
LDAβ isINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, N ). Unchanged on exit.Xβ isCOMPLEX*16array, dimension at least( 1 + ( N - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the N-element vectorx. Unchanged on exit. iconic input behavior, no notes πΈINCXβ isINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero. Unchanged on exit.BETAβ isCOMPLEX*16. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenYneed not be set on input. Unchanged on exit.Yβ isCOMPLEX*16array, dimension at least( 1 + ( N - 1 )*abs( INCY ) ). Before entry, the incremented arrayYmust contain the n element vectory. On exit,Yis overwritten by the updated vectory. main character output array, literally getting rewritten π¦INCYβ isINTEGER. 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 156 of file zsymv.f.
Author (page-level, iykyk) π
Generated automatically by Doxygen for LAPACK from the source code.
footer vibe check: source/version is LAPACK Version 3.12.0, page is hemv(3). Date? The footer didn't list one, so I'm not inventing one, bestie π that's the whole sign-off, 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