BLAS/SRC/ssyr2.f(3)

πŸ’– NAME πŸ’–

okay bestie, so this is BLAS/SRC/ssyr2.f β€” a lil page from the LAPACK manual (yes, that LAPACK, the linear algebra icon πŸ‘‘) and it's all about one very specific little Fortran subroutine. no cap, it does exactly one thing and it does it gorgeously. ✨


🌸 SYNOPSIS 🌸

✨ Functions/Subroutines ✨

  • subroutine ssyr2 (uplo, n, alpha, x, incx, y, incy, a, lda) β€” SSYR2 🫢

πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

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

SSYR2 πŸ’…

πŸŽ€ Purpose πŸŽ€

okay so here's the whole vibe: SSYR2 performs the symmetric rank 2 operation

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

where alpha is a scalar, x and y are n element vectors and A is an n by n symmetric matrix. literally that's it, that's the whole job, and it ate. πŸ’–

πŸ“ 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. (zero is allowed bestie, it's giving "empty but valid" πŸ’€βœ¨)
  • ALPHA β€” ALPHA is REAL. on entry, ALPHA specifies the scalar alpha. it's the lil multiplier, the main character of the arithmetic πŸ‘‘
  • 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. πŸ¦‹
  • INCX β€” INCX is INTEGER. on entry, INCX specifies the increment for the elements of X. INCX must not be zero. fr fr, zero is not the move.
  • 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. 🌈
  • INCY β€” INCY is INTEGER. on entry, INCY specifies the increment for the elements of Y. INCY must not be zero. same energy, don't do it.
  • 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. πŸ’… (tl;dr: the half you told it about gets updated in place, the other half is simply not invited to the party πŸ™ˆ)
  • 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 ). periodt.

πŸ’œ Author πŸ’œ

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

(an absolute dream team, no notes 🫢)

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

like, 1986?? the longevity, the legacy, the iconic behaviour πŸ˜­πŸ’–

Definition at line 146 of file ssyr2.f.


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code. (not me writing this by hand, the robots did it, and honestly? slay πŸ€–βœ¨)


okay that's the whole page bestie!! this was Version 3.12.0, dated Tue Nov 28 2023 12:08:41, from BLAS/SRC/ssyr2.f(3) β€” go forth and rank-2-update your symmetric matrices responsibly, mwah πŸ’‹πŸŽ€πŸ¦‹