SSPMV(3)
π SSPMV(3) β like, the packed symmetric matrix-vector girlie
okay so bestie, buckle up π this one lives in the Library Functions Manual, and the actual source file is this absolute unit of a path:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/sspmv.f
yep. that's the whole NAME section. she's giving "my address is a CVS receipt" π but we move.
β¨ SYNOPSIS β¨
π«Ά Functions/Subroutines
subroutine SSPMV (uplo, n, alpha, ap, x, incx, beta, y, incy)β literally her. that's the girl. SSPMV.
π¦ Function/Subroutine Documentation π¦
the full signature, no cap
subroutine SSPMV (character uplo, integer n, real alpha, real, dimension(*)
ap, real, dimension(*) x, integer incx, real beta, real, dimension(*) y,
integer incy)
SSPMV. iconic. π
π Purpose π
!> !> SSPMV 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. !>
so basically: A is symmetric, n by n, and she's packed β like, no wasted zeros, only the triangle she needs. x and y are n-element vectors, alpha and beta are scalars doing their little scaling thing. slay. π₯
πΈ 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. !>
UPLO is a CHARACTER*1 and it's the vibe check for which triangle you're handing over π
upper ('U' or 'u') or lower ('L' or 'l'), and yes both cases work, she's not picky.
N
!> N is INTEGER !> On entry, N specifies the order of the matrix A. !> N must be at least zero. !>
N is INTEGER, it's the order of A, and it must be at least zero. love a non-negative queen. β¨
ALPHA
!> ALPHA is REAL !> On entry, ALPHA specifies the scalar alpha. !>
ALPHA is REAL and it's just the scalar alpha. that's it. that's the whole job. π
AP
!> AP is REAL 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. !>
AP is a REAL array, dimension at least ( ( n*( n + 1 ) )/2 ). π
- with
UPLO = 'U'or'u': upper triangle, packed sequentially, column by column βAP( 1 )holdsa( 1, 1 ),AP( 2 )andAP( 3 )holda( 1, 2 )anda( 2, 2 ), and so on. - with
UPLO = 'L'or'l': lower triangle, packed sequentially, column by column βAP( 1 )holdsa( 1, 1 ),AP( 2 )andAP( 3 )holda( 2, 1 )anda( 3, 1 ), and so on.
see how it's the same but also completely different? iykyk π§
X
!> X is REAL array, dimension at least !> ( 1 + ( n - 1 )*abs( INCX ) ). !> Before entry, the incremented array X must contain the n !> element vector x. !>
X is a REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ), and before entry the incremented array X must contain the n element vector x. she came prepared. π¦
INCX
!> INCX is INTEGER !> On entry, INCX specifies the increment for the elements of !> X. INCX must not be zero. !>
INCX is INTEGER, it's the stride for X, and INCX must not be zero. like, don't do that. π«
BETA
!> BETA is REAL !> On entry, BETA specifies the scalar beta. When BETA is !> supplied as zero then Y need not be set on input. !>
BETA is REAL, it's the scalar beta, and here's the cute lil shortcut: when BETA is supplied as zero then Y need not be set on input. free real estate π
Y
!> Y is 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. !>
Y is a REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). before entry it holds the n element vector y, and on exit, Y is overwritten by the updated vector y. she gets a whole glow-up in place, periodt. π
INCY
!> INCY is INTEGER !> On entry, INCY specifies the increment for the elements of !> Y. INCY must not be zero. !>
INCY is INTEGER, the stride for Y, and INCY must not be zero. same rules, bestie. π«Ά
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
four whole institutions. the group chat of linear algebra. π
π 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. !>
okay so it's a Level 2 Blas routine, and important caveat: the vector and matrix arguments are not referenced when N = 0, or M = 0 β so like, she's not even looking at your arrays in that case, don't worry about it π
and she's vintage, fr fr: written on 22-October-1986 by Jack Dongarra (Argonne National Lab), Jeremy Du Croz (Nag Central Office), Sven Hammarling (Nag Central Office), and Richard Hanson (Sandia National Labs). absolute legends, all of them. β
Definition at line 146 of file sspmv.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
(the second author section β first one was the humans, this one's the robot π€)
and that's the page, bestie ππ¦ sign-off time: this was LAPACK, Version 3.12.0, out of /home/abui...SRC/sspmv.f(3) β mwah, go multiply something symmetric πβ¨
π¦ 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