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βUPLOisCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the matrixAis supplied in the packed arrayAPas follows:UPLO = 'U' or 'u'β The upper triangular part ofAis supplied inAP.UPLO = 'L' or 'l'β The lower triangular part ofAis supplied inAP.
NβNisINTEGER. On entry,Nspecifies the order of the matrixA.Nmust be at least zero.ALPHAβALPHAisREAL. On entry,ALPHAspecifies the scalaralpha.XβXisREALarray, dimension at least( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the n element vectorx.INCXβINCXisINTEGER. On entry,INCXspecifies the increment for the elements ofX.INCXmust not be zero.
π¨ bestie. INCX must not be zero. no cap. that's a hard no.
YβYisREALarray, dimension at least( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented arrayYmust contain the n element vectory.INCYβINCYisINTEGER. On entry,INCYspecifies the increment for the elements ofY.INCYmust not be zero.
same energy as INCX β zero is NOT the move here π
APβAPisREALarray, dimension at least( ( n*( n + 1 ) )/2 ). Before entry withUPLO = 'U' or 'u', the arrayAPmust contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so thatAP( 1 )containsa( 1, 1 ),AP( 2 )andAP( 3 )containa( 1, 2 )anda( 2, 2 )respectively, and so on. On exit, the arrayAPis 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 ππ
π¦ where this page comes from
- centos-stream 10: blas 3.12.0-7.el10 Β· BSD-3-Clause-Open-MPI
- fedora 43: blas 3.12.0-10.fc43 Β· BSD-3-Clause-Open-MPI
- fedora 43: blas 3.12.0-10.fc43 Β· BSD-3-Clause-Open-MPI
- fedora 44: blas 3.12.0-11.fc44 Β· BSD-3-Clause-Open-MPI
- fedora 44: blas 3.12.0-11.fc44 Β· BSD-3-Clause-Open-MPI
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms