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 leading n by n upper triangular part of A has to hold the upper triangular part of the symmetric matrix β€” and the strictly lower triangular part of A? Literally not referenced. Ignored. Not invited to the party πŸ™ˆ With UPLO = 'L' or 'l' it's the exact opposite: the leading n by n lower triangular part of A carries the lower triangular part of the symmetric matrix, and the strictly upper triangular part of A is not referenced. Bestie, only half the matrix matters here, that's the whole vibe πŸ’…
  • LDA β€” INTEGER</p>. On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. And LDA must be at least max( 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 array X must contain the n element vector x. She's ready, she's loaded, she's iconic 🌸
  • INCX β€” INTEGER</p>. On entry, INCX specifies the increment for the elements of X. And INCX must not be zero 😭 fr fr do not do that, it's not the move πŸ’€
  • BETA β€” DOUBLE PRECISION.</p> On entry, BETA specifies the scalar beta. Fun little detail: when BETA is supplied as zero then Y need not be set on input β€” so if beta's a zero, Y gets a whole pass, no setup required πŸŽ€
  • Y β€” DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) )</p>. Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y. She came in as one thing and leaves as another, that's called growth πŸ’–
  • INCY β€” INTEGER</p>. On entry, INCY specifies the increment for the elements of Y. INCY must not be zero β€” same rule as INCX, 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 when N = 0, or M = 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, 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 β€” INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero β€” zero is allowed, negative is a no ❌
  • ALPHA β€” REAL. On entry, ALPHA specifies the scalar alpha. Tiny but mighty πŸ“
  • A β€” REAL 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. Half the matrix stays unbothered, main character energy πŸ‘‘
  • LDA β€” 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 ). Periodt.
  • X β€” REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. She's the input, she's loaded πŸ’–
  • INCX β€” INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. Say it with me: not zero πŸ’€
  • BETA β€” REAL. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need 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 array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y. Glow-up complete ✨
  • INCY β€” INTEGER. On entry, INCY specifies the increment for the elements of Y. INCY must 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 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 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, 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 β€” INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero. Zero is a valid order, negative is not πŸ’…
  • ALPHA β€” COMPLEX*16. On entry, ALPHA specifies the scalar alpha. Complex, literally πŸ’œ
  • A β€” COMPLEX*16 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 πŸ‘€ β€” so the diagonal's imaginary bit gets a little nap, it's fine, it's handled.
  • LDA β€” 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 ). Non-negotiable ⭐
  • X β€” COMPLEX*16 array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. Loaded and ready 🌸
  • INCX β€” INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. Ngl this is the rule of the whole page 😭
  • BETA β€” COMPLEX*16. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need 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 array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y. In goes one vector, out comes a whole new her πŸ¦‹
  • INCY β€” INTEGER. On entry, INCY specifies the increment for the elements of Y. INCY must 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 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 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 β€” 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 β€” is INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero. Unchanged on exit. lowkey a very important little number 🫢
  • ALPHA β€” is COMPLEX*16. On entry, ALPHA specifies the scalar alpha. Unchanged on exit.
  • A β€” is COMPLEX*16 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. She is symmetric, she is complex, she is not here for your irrelevant triangle πŸ’…
  • 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 β€” is COMPLEX*16 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. iconic input behavior, no notes 🌸
  • INCX β€” is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. Unchanged on exit.
  • BETA β€” is COMPLEX*16. 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 β€” is COMPLEX*16 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. main character output array, literally getting rewritten πŸ¦‹
  • 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 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