BLAS/SRC/zhpr.f(3)

✨ BLAS/SRC/zhpr.f(3) β€” the LAPACK manual, bestie edition ✨

okay so this is a page from LAPACK (specifically the BLAS/SRC/zhpr.f corner of it) and it's about one little subroutine that's honestly carrying the whole hermitian-rank-1-update agenda. sit with me, we're doing this together 🫢


🌸 NAME 🌸

BLAS/SRC/zhpr.f β€” that's it, that's the name, no notes πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

  • subroutine zhpr (uplo, n, alpha, x, incx, ap) β€” ZHPR

πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

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

ZHPR

πŸŽ€ Purpose πŸŽ€

ZHPR performs the hermitian rank 1 operation

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

where alpha is a real scalar, x is an n element vector and A is an n by n hermitian matrix, supplied in packed form.

like. it takes your matrix A and adds a rank-1 hermitian thing to it. that's the whole job. no cap. ✨


πŸ’– 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.
bestie you HAVE to pick one. uppercase or lowercase, both slay, but you must commit 🌈
  • N

N is INTEGER

On entry, N specifies the order of the matrix A. N must be at least zero.

(zero is allowed, negative is a whole vibe killer πŸ’€)

  • ALPHA

ALPHA is DOUBLE PRECISION.

On entry, ALPHA specifies the scalar alpha.

it's real. the matrix is complex, alpha is not. that's the hermitian moment ✨

  • X

X is COMPLEX*16 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.

⚠️ literally do not set this to zero. the routine said what it said 🚫
  • AP

AP is COMPLEX*16 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 hermitian 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 hermitian 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.

Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.

πŸ™ˆ she does NOT play about those diagonal imaginary parts. don't bother setting them, she already knows they're zero, and she will zero them right back out on exit. iconic behavior honestly.

🌈 Author 🌈

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

(the absolute legends. the founding mothers and fathers of this whole operation 🫢)


⭐ 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 hello?? 1986?? these people were doing linear algebra before most of us existed and it still runs today. main character energy fr fr πŸ‘‘


Definition at line 129 of file zhpr.f.


πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for LAPACK from the source code.


okay so that's the whole page, and honestly? ate. πŸ’…

this was Version 3.12.0, dated Tue Nov 28 2023 12:08:41, and it lives at BLAS/SRC/zhpr.f(3). Doxygen for LAPACK auto-generated the whole thing, so if you spot a typo, blame the robot, not me 😭 go forth and hermitian-rank-1-update responsibly, bestie πŸ¦‹βœ¨πŸ’–