BLAS/SRC/zher2k.f(3)
πΈ BLAS/SRC/zher2k.f πΈ
okay bestie, welcome to the LAPACK manual, section 3, and today's main character is BLAS/SRC/zher2k.f. she's a BLAS Level 3 routine and she ate. let's get into it π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine zher2k (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c,
ldc)
ZHER2K
π¦ Function/Subroutine Documentation π¦
subroutine zher2k (character uplo, character trans, integer n, integer k,
complex*16 alpha, complex*16, dimension(lda,*) a, integer lda,
complex*16, dimension(ldb,*) b, integer ldb, double precision beta,
complex*16, dimension(ldc,*) c, integer ldc)
ZHER2K
π Purpose π
so ZHER2K does one of the hermitian rank 2k operations, and she does it flawlessly:
C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C,
or
C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C,
where alpha and beta are scalars with beta real, C is an n by n hermitian matrix, and A and B are n by k matrices in the first case and k by n matrices in the second case. like. she's flexible. she contains multitudes β¨
π Parameters π
UPLOβUPLOisCHARACTER*1. on entry,UPLOspecifies whether the upper or lower triangular part of the arrayCis to be referenced, as follows:UPLO = 'U' or 'u'β Only the upper triangular part ofCis to be referenced.UPLO = 'L' or 'l'β Only the lower triangular part ofCis to be referenced.
TRANSβTRANSisCHARACTER*1. on entry,TRANSspecifies the operation to be performed, as follows:TRANS = 'N' or 'n'
C := alpha*A*B**H +
conjg( alpha )*B*A**H +
beta*C.
TRANS = 'C' or 'c'
C := alpha*A**H*B +
conjg( alpha )*B**H*A +
beta*C.
NβNisINTEGER. on entry,Nspecifies the order of the matrixC.Nmust be at least zero. (zero is allowed, bestie, she's not gonna gatekeep)KβKisINTEGER. on entry withTRANS = 'N' or 'n',Kspecifies the number of columns of the matricesAandB, and on entry withTRANS = 'C' or 'c',Kspecifies the number of rows of the matricesAandB.Kmust be at least zero.ALPHAβALPHAisCOMPLEX*16. on entry,ALPHAspecifies the scalaralpha.AβAisCOMPLEX*16array, dimension( LDA, ka ), wherekaiskwhenTRANS = 'N' or 'n', and isnotherwise. before entry withTRANS = 'N' or 'n', the leadingnbykpart of the arrayAmust contain the matrixA, otherwise the leadingkbynpart of the arrayAmust contain the matrixA.LDAβLDAisINTEGER. on entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. whenTRANS = 'N' or 'n'thenLDAmust be at leastmax( 1, n ), otherwiseLDAmust be at leastmax( 1, k ).BβBisCOMPLEX*16array, dimension( LDB, kb ), wherekbiskwhenTRANS = 'N' or 'n', and isnotherwise. before entry withTRANS = 'N' or 'n', the leadingnbykpart of the arrayBmust contain the matrixB, otherwise the leadingkbynpart of the arrayBmust contain the matrixB.LDBβLDBisINTEGER. on entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program. whenTRANS = 'N' or 'n'thenLDBmust be at leastmax( 1, n ), otherwiseLDBmust be at leastmax( 1, k ). Unchanged on exit. (yes girl, she said what she said, that line lives right there in the original π)BETAβBETAisDOUBLE PRECISION. on entry,BETAspecifies the scalarbeta.CβCisCOMPLEX*16array, dimension( LDC, N ).- before entry with
UPLO = 'U' or 'u', the leadingnbynupper triangular part of the arrayCmust contain the upper triangular part of the hermitian matrix and the strictly lower triangular part ofCis not referenced. on exit, the upper triangular part of the arrayCis overwritten by the upper triangular part of the updated matrix. - before entry with
UPLO = 'L' or 'l', the leadingnbynlower triangular part of the arrayCmust contain the lower triangular part of the hermitian matrix and the strictly upper triangular part ofCis not referenced. on exit, the lower triangular part of the arrayCis 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. no cap β she zeroes them for you.
- before entry with
LDCβLDCisINTEGER. on entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ).
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
like a whole group project that actually went well?? iconic.
π Further Details π
Level 3 Blas routine. she's been around, and she's got receipts:
- Written on 8-February-1989.
- Jack Dongarra, Argonne National Laboratory.
- Iain Duff, AERE Harwell.
- Jeremy Du Croz, Numerical Algorithms Group Ltd.
- Sven Hammarling, Numerical Algorithms Group Ltd.
- Modified 8-Nov-93 to set
C(J,J)toDBLE( C(J,J) )whenBETA = 1.- Ed Anderson, Cray Research Inc.
Definition at line 197 of file zher2k.f.
π«Ά Author π«Ά
Generated automatically by Doxygen for LAPACK from the source code.
ngl bestie, if you're passing garbage intoUPLOorTRANSyou're on your own β this page only promises what's written above, fr fr π
okay that's the whole page, you understood all of it, slay π
Version 3.12.0 β Tue Nov 28 2023 12:08:41 β that's the vibe check timestamp, and this little BLAS/SRC/zher2k.f(3) moment is officially a wrap πβ¨
π¦ 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