SSYMV(3)
okay so this is ssymv.f(3) from the Library Functions Manual, and honestly? it's kind of iconic. it's the page for the BLAS routine SSYMV, a level-2 BLAS girlie who does one job and does it flawlessly. let's get into it π
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/ssymv.f
that's the whole name section. it's literally just a file path. she's lowkey serving "government name" energy π but we respect it.
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine SSYMV (uplo, n, alpha, a, lda, x, incx, beta, y, incy)
SSYMV
that's the whole cast list. no plot twists, no missing characters. π«Ά
π₯ Function/Subroutine Documentation π₯
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)
SSYMV
Purpose:
girl. listen. here's the entire personality:
!>
!> 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.
!>
she takes a symmetric matrix A, a vector x, and a vector y, and she gives you y := alpha*A*x + beta*y. that's it. that's the whole gig. main character energy honestly β she knows exactly what she's about and she does NOT need a side quest. π
π Parameters π
okay bestie, here's everyone in the group chat. each one has a role and you WILL respect it.
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.
!>
so UPLO decides which half of A gets invited to the party. 'U' or 'u'? only the upper triangular part gets referenced. 'L' or 'l'? only the lower triangular part. the other half is literally not even looked at. she's not nosy. π
N
!> N is INTEGER
!> On entry, N specifies the order of the matrix A.
!> N must be at least zero.
!>
N is the order of the matrix A. and it must be at least zero. no negatives, we don't do that here. π
ALPHA
!> ALPHA is REAL
!> On entry, ALPHA specifies the scalar alpha.
!>
ALPHA is REAL and it's the scalar alpha. she's a simple girl, she scales things. that's her whole thing. β
A
!> A is 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.
!>
A is a REAL array with dimension ( LDA, N ), and here's the vibe check:
- with
UPLO = 'U'or'u', the leadingnbynupper triangular part has to contain the upper triangular part of the symmetric matrix, and the strictly lower triangular part ofAis not referenced. ignore her. π« - with
UPLO = 'L'or'l', the leadingnbynlower triangular part has to contain the lower triangular part of the symmetric matrix, and the strictly upper triangular part ofAis not referenced. same deal, opposite corner. β¨
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 ).
!>
LDA is the first dimension of A as declared in the calling (sub) program. and it must be at least max( 1, n ). that's a hard requirement, not a suggestion. π«Ά
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 ) ). before entry, the incremented array X must contain the n element vector x. she comes pre-loaded, we don't build her from scratch. π
INCX
!> INCX is INTEGER
!> On entry, INCX specifies the increment for the elements of
!> X. INCX must not be zero.
!>
INCX is the increment for the elements of X. and INCX must not be zero. zero is NOT allowed. periodt. π
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 and it's the scalar beta. here's the fun part: when BETA is supplied as zero, then Y need not be set on input. she literally doesn't care what was in there. no baggage. we love a clean slate. π
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, the incremented array Y must contain the n element vector y. on exit? Y gets overwritten by the updated vector y. she transforms and there's no going back. glow-up arc fr. π¦
INCY
!> INCY is INTEGER
!> On entry, INCY specifies the increment for the elements of
!> Y. INCY must not be zero.
!>
INCY is the increment for the elements of Y. and yes, INCY must not be zero either. both increments get the same rule, because we're fair and consistent. π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
four institutions, one legend. the collab we didn't know we needed. π«Ά
π 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.
!>
bestie, she is a Level 2 Blas routine. and here's a little detail worth knowing: the vector and matrix arguments are not referenced when N = 0, or M = 0. nothing gets touched. nothing gets read. she stays in her lane. π
and the lore?? written on 22-October-1986 by:
- Jack Dongarra, Argonne National Lab.
- Jeremy Du Croz, Nag Central Office.
- Sven Hammarling, Nag Central Office.
- Richard Hanson, Sandia National Labs.
1986!! she's been serving for decades and she's still relevant. that's not a phase, that's a legacy. π
π Definition at line 151 of file ssymv.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
(not a human, not a vibe curator β just Doxygen doing its little autogenerated thing. we thank her for her service π§)
and that's the whole page, bestie! β¨ cute little sign-off for you: this was LAPACK, Version 3.12.0, and the source file is /home/abui...SRC/ssymv.f(3). now go forth and multiply your matrices ππΈπ
π¦ 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