/home/abui...RC/zspmv.f(3)
π ZSPMV β the packed-symmetric-matrix girlie π
Okay bestie, welcome to the glow-up zone. This is the manual page for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zspmv.f, straight out of the LAPACK library functions squad. It's a Fortran file, it's iconic, and it does exactly one thing beautifully. Let's get into it π
β¨ SYNOPSIS β¨
Functions/Subroutines π¦
subroutine ZSPMV (uplo, n, alpha, ap, x, incx, beta, y, incy)β bestie, this one computes a matrix-vector product for complex vectors using a complex symmetric packed matrix. Periodt.
πΈ Function/Subroutine Documentation πΈ
subroutine ZSPMV β the full signature, no cap π
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. That's the whole vibe. π
π«Ά Purpose
Okay so here's the actual math, and it's lowkey gorgeous:
!>
!> ZSPMV 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.
!>
Translation: A is n by n, symmetric, and it's living its best compact life in "packed form" β which is the aesthetic, honestly. π§
π Parameters π
UPLO
!> UPLO is CHARACTER*1
!> On entry, UPLO specifies whether the upper or lower
!> triangular part of the matrix A is supplied in the packed
!> array AP as follows:
!>
!> UPLO = 'U' or 'u' The upper triangular part of A is
!> supplied in AP.
!>
!> UPLO = 'L' or 'l' The lower triangular part of A is
!> supplied in AP.
!>
!> Unchanged on exit.
So UPLO is a CHARACTER*1 and it's basically asking you: upper girlie or lower girlie? β¬οΈβ¬οΈ Pick 'U' / 'u' and the upper triangular part of A gets supplied in AP. Pick 'L' / 'l' and it's the lower triangular part in AP. Either way it comes back to you unchanged on exit β she does not get altered by this whole ordeal, respect. π
N
!> N is INTEGER
!> On entry, N specifies the order of the matrix A.
!> N must be at least zero.
!> Unchanged on exit.
N is an INTEGER and on entry it specifies the order of the matrix A. Rule: N must be at least zero β no negative chaos allowed, we don't do that here. And yep, unchanged on exit. β
ALPHA
!> ALPHA is COMPLEX*16
!> On entry, ALPHA specifies the scalar alpha.
!> Unchanged on exit.
ALPHA is COMPLEX*16 and on entry it specifies the scalar alpha. That's it, that's the whole personality. Unchanged on exit. β¨
AP
!> AP is COMPLEX*16 array, 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.
AP is a COMPLEX*16 array, dimension at least ( ( N*( N + 1 ) )/2 ). It's the main character of this whole operation, ngl.
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 )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 array AP must contain the lower triangular part of the symmetric matrix, packed sequentially column by column, so that:
AP( 1 )containsa( 1, 1 )AP( 2 )andAP( 3 )containa( 2, 1 )anda( 3, 1 )respectively- and so on π
Unchanged on exit. She literally just sits there being packed and perfect. π
X
!> 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.
X is a 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 β she gives her energy and stays exactly as she was. π¦
INCX
!> INCX is INTEGER
!> On entry, INCX specifies the increment for the elements of
!> X. INCX must not be zero.
!> Unchanged on exit.
INCX is an INTEGER and on entry it specifies the increment for the elements of X. INCX must not be zero β hard pass on that, fr fr. Unchanged on exit. π
BETA
!> 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.
BETA is COMPLEX*16 and on entry it specifies the scalar beta. Important glow-up detail: when BETA is supplied as zero, then Y need not be set on input β she's flexible like that. π§ Unchanged on exit.
Y
!> 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.
Y is a COMPLEX*16 array, dimension at least ( 1 + ( N - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. And on exit? Y is overwritten by the updated vector y β full transformation arc, we love a main character moment. ππ₯
INCY
!> INCY is INTEGER
!> On entry, INCY specifies the increment for the elements of
!> Y. INCY must not be zero.
!> Unchanged on exit.
INCY is an INTEGER and on entry it specifies the increment for the elements of Y. INCY must not be zero β same energy as above, no zeros allowed bestie. π Unchanged on exit. β
π Author π
The absolute legends behind this:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Icons only, no notes. π
π Definition π
Definition at line 150 of file zspmv.f. Yes bestie, that's where the magic is written. β¨
πΈ Sign-off πΈ
This page was generated automatically by Doxygen for LAPACK from the source code β so if you're obsessed, thank the automation pipeline too. This whole serve is courtesy of LAPACK, Version 3.12.0. ππ«Άπ
Go forth and slay those matrix-vector products, iykyk. π¦ππ
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms