BLAS/SRC/sspr2.f(3)

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

okay bestie, so this is the manual page for BLAS/SRC/sspr2.f β€” a little Fortran file living in the BLAS source tree (that's the Basic Linear Algebra Subprograms, the bedrock of like... every numerical thing ever, iykyk). It's a Level 2 BLAS routine and it's here to do one very specific, very slay job. Let's get into it 🫢


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine sspr2 (uplo, n, alpha, x, incx, y, incy, ap)
SSPR2

🌸 Function/Subroutine Documentation 🌸

subroutine sspr2 (character uplo, integer n, real alpha, real, dimension(*) x, integer incx, real, dimension(*) y, integer incy, real, dimension(*) ap)

SSPR2

πŸŽ€ Purpose πŸŽ€

okay so here's the whole vibe: SSPR2 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, supplied in packed form.

like. it's giving "two outer products, one scalar, and A gets updated in place". iconic behavior 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.
  • N β€” N is INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero.
  • ALPHA β€” ALPHA is REAL. On entry, ALPHA specifies the scalar alpha.
  • 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.
🚨 bestie. INCX must not be zero. no cap. that's a hard no.
  • 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 as INCX β€” zero is NOT the move here πŸ’€
  • 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. On exit, the array AP is overwritten by the upper triangular part of the updated matrix.

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. On exit, the array AP is overwritten by the lower triangular part of the updated matrix.

✨ psst β€” AP gets overwritten on exit. it's an in-place glow-up, not a copy situation. pack accordingly πŸ¦‹

πŸ’œ Author πŸ’œ

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

πŸ”₯ 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.

Definition at line 141 of file sspr2.f.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code.


and that's the whole page, bestie!! no notes, every single flag accounted for, we ate and left zero crumbs πŸ“βœ¨

this lil legend was brought to you by Version 3.12.0, dated Tue Nov 28 2023 12:08:41, straight out of BLAS/SRC/sspr2.f(3). go forth and pack your symmetric matrices correctly, ily πŸ’–πŸŒˆ