/home/abui...SRC/dspr.f(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’œ NAME

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/dspr.f β€” bestie, that's the whole path, yes, it's giving "why is this so long," but it's literally the file this page is about, so we keep it. ✨

(This one lives in the Library Functions Manual, iykyk.)


✨ SYNOPSIS ✨

🧚 Functions/Subroutines

subroutine DSPR (uplo, n, alpha, x, incx, ap)
    DSPR

Ok so it's one subroutine, DSPR, and it's literally just called DSPR. No notes. πŸŽ€


🌸 Function/Subroutine Documentation 🌸

⭐ subroutine DSPR

subroutine DSPR (character uplo, integer n, double precision alpha, double
    precision, dimension(*) x, integer incx, double precision, dimension(*)
    ap)
    DSPR

Yeah that's the full signature, every type right where it belongs. πŸ‘‘

πŸ”₯ Purpose:

!>
!> DSPR    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, supplied in packed form.
!>

So basically: it does a symmetric rank 1 update, no cap. You hand it a scalar alpha, a vector x, and a symmetric matrix A that's stored in packed form, and it gives you back A := alpha*x*x**T + A. That's the whole vibe. πŸ’…

πŸ¦‹ Parameters

  • UPLO β€” okay so UPLO is CHARACTER*1, right, and on entry it tells us whether the upper or lower triangular part of A is the part being supplied in the packed array AP. It goes like this:
    • 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, and on entry it specifies the order of the matrix A. Big rule: N must be at least zero. Not negative. Zero is fine, negative is not the move. 😭
  • ALPHA β€” ALPHA is DOUBLE PRECISION. On entry it specifies the scalar alpha. That's it, that's the whole job. 🌸
  • X β€” X is a DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. Don't forget the increment math, it's lowkey the part people mess up. πŸ™ˆ
  • INCX β€” INCX is INTEGER. On entry it specifies the increment for the elements of X. And listen: INCX must not be zero. Fr fr, not zero. That's a hard no. πŸ’€
  • AP β€” AP is a DOUBLE PRECISION array, dimension at least ( ( n*( n + 1 ) )/2 ). This is the packed one, so pay attention bestie:
    • 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.

Yeah, AP gets overwritten on exit. That's the deal. ✨

πŸ‘‘ Author

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

Shoutout to all four, absolute icons. 🫢

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

It's a Level 2 Blas routine, and it was 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). 1986!! Ancient icon behavior, honestly. πŸ•°οΈπŸ’–


πŸŽ€ btw, this is Definition at line 126 of file dspr.f β€” just so you know exactly where to point.

πŸ’« Author

Generated automatically by Doxygen for LAPACK from the source code. (Not a human, just a robot doing its little thing. Slay.)


so yeah, that's the whole page β€” from the LAPACK, Version 3.12.0 era, the /home/abui...SRC/dspr.f(3) file, dated by its own footer. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from