BLAS/SRC/ssyr.f(3)

πŸ’– BLAS/SRC/ssyr.f πŸ’–

okay bestie, we're in the LAPACK world, specifically the BLAS/SRC/ssyr.f page, and this one is a genuine little icon. it's a Level 2 BLAS routine, it does one (1) thing, and it does it flawlessly. let's get into it πŸ¦‹


✨ NAME ✨

BLAS/SRC/ssyr.f β€” no cap, that's literally the whole name. she's a Fortran source file and she knows it πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine ssyr (uplo, n, alpha, x, incx, a, lda) β€” the one and only, SSYR herself πŸ‘‘

πŸŽ€ Function/Subroutine Documentation πŸŽ€

subroutine ssyr (character uplo, integer n, real alpha, real, dimension(*) x, integer incx, real, dimension(lda,*) a, integer lda)

SSYR. that's her. that's the name. short, sweet, symmetric. ⭐

Purpose:

okay so SSYR performs the symmetric rank 1 operation

   A := alpha*x*x**T + A,

where alpha is a real scalar, x is an n element vector and A is an n by n symmetric matrix. so she takes your vector, does a little outer-product moment with itself, scales it by alpha, and folds it right into A. main character behavior fr fr πŸ”₯

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.

like, pick a side bestie, she only reads the one you tell her to πŸ™ˆ

  • N β€” N is INTEGER. on entry, N specifies the order of the matrix A. N must be at least zero. (zero is allowed, she's not gonna be weird about it.)
  • ALPHA β€” ALPHA is REAL. on entry, ALPHA specifies the scalar alpha. the seasoning. the ✨je ne sais quoi✨.
  • 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. yes, incremented β€” she's walking through it with a stride, keep up πŸšΆβ€β™€οΈ
  • INCX β€” INCX is INTEGER. on entry, INCX specifies the increment for the elements of X. INCX must not be zero. like, genuinely, do not. that's a divide-by-nothing situation and we don't do that πŸ’€
  • 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. on exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix.
    • 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. on exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix.

so basically: the half you picked gets read and then overwritten by the updated half. the other half? untouched, unbothered, living her best life, not referenced 🧚

  • 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 ). give her at least max( 1, n ) or she will simply not. πŸ’…

Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

the whole squad came together for this one, we love a collab 🫢

Further Details:

  Level 2 Blas routine.

  -- 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.

level 2 BLAS, 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). vintage. classic. timeless. she's been slaying since the 80s and she's not stopping πŸ˜­πŸ‘‘

Definition at line 131 of file ssyr.f.


πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for LAPACK from the source code. (not me writing fanfic about a subroutine, the robot did it, okay? we both did a little something here πŸ™ˆ)


ok that's the whole page bestie. every flag, every array bound, every must not be zero, all of it. nothing skipped, nothing invented. periodt. πŸ’…βœ¨

Version 3.12.0 β€” Tue Nov 28 2023 12:08:41 β€” BLAS/SRC/ssyr.f(3)

and that's the footer, which means we're done here. go forth and rank-1 update something symmetric, you gorgeous nerd πŸŒˆπŸ’–πŸŽ€πŸ¦‹πŸŒΈπŸ’