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 π¦β¨π
π¦ 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