BLAS/SRC/zher.f(3)
π BLAS/SRC/zher.f β the Hermitian rank-1 glow-up page β¨
Hey bestie, welcome to the zher corner of the LAPACK docs π«Ά. This page lives in the BLAS/SRC/zher.f file and it's literally all about one iconic little routine. Let's get into it.
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine zher (uplo, n, alpha, x, incx, a, lda)β the one and only ZHER, coming through π
πΈ Function/Subroutine Documentation πΈ
π subroutine zher (character uplo, integer n, double precision alpha, complex*16, dimension(*) x, integer incx, complex*16, dimension(lda,*) a, integer lda)
Yep, that's her. That's ZHER. Main character energy, no cap π
π Purpose π
Okay so here's what she does:
!> ZHER 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.
Translation, bestie: she does a Hermitian rank-1 update. alpha is a real scalar, x is an n-element vector, and A is an n by n Hermitian matrix. Slay π¦.
π Parameters π
UPLOβ this isCHARACTER*1. On entry,UPLOtells you which triangular part of the arrayAis actually being referenced, like:UPLO = 'U'or'u'β only the upper triangular part ofAis referenced.UPLO = 'L'or'l'β only the lower triangular part ofAis referenced.
Nβ this isINTEGER. On entry,Nis the order of the matrixA. Important:Nmust be at least zero. Not optional, bestie.ALPHAβ this isDOUBLE PRECISION.On entry,ALPHAis the scalar alpha. Simple as that π.Xβ this is aCOMPLEX*16array, dimension at least( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented arrayXmust contain the n element vector x.INCXβ this isINTEGER. On entry,INCXis the increment for the elements ofX. And heads up:INCXmust not be zero. Like, fr fr, don't do it π.Aβ this is aCOMPLEX*16array, dimension( LDA, N ). Okay this one has a lot going on, so let me break it down:- Before entry with
UPLO = 'U'or'u', the leading n by n upper triangular part of the arrayAmust contain the upper triangular part of the hermitian matrix, and the strictly lower triangular part ofAis not referenced. On exit, the upper triangular part of the arrayAgets overwritten by the upper triangular part of the updated matrix β¨. - Before entry with
UPLO = 'L'or'l', the leading n by n lower triangular part of the arrayAmust contain the lower triangular part of the hermitian matrix, and the strictly upper triangular part ofAis not referenced. On exit, the lower triangular part of the arrayAgets overwritten by the lower triangular part of the updated matrix β¨. - And a lil note: the imaginary parts of the diagonal elements need not be set β they're assumed to be zero, and on exit they are set to zero. So don't stress about them, she handles it π«Ά.
- Before entry with
LDAβ this isINTEGER. On entry,LDAis the first dimension ofAas declared in the calling (sub) program.LDAmust be at leastmax( 1, n ). Periodt.
π 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.
!>
She's a Level 2 BLAS routine, born on 22-October-1986, and honestly that's iconic. The whole squad who wrote her: Jack Dongarra at Argonne National Lab, Jeremy Du Croz at Nag Central Office, Sven Hammarling at Nag Central Office, and Richard Hanson at Sandia National Labs π.
Also, just so you know β she's defined at line 134 of file zher.f π.
π§ Author (meta edition) π§
Generated automatically by Doxygen for LAPACK from the source code. Very demure, very mindful.
Okay that's the whole page, bestie! Stay hermitian, stay updated π
LAPACK Β· Version 3.12.0 Β· BLAS/SRC/zher.f(3) β and that's the cute lil sign-off at the bottom, mwah π π
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms