BLAS/SRC/zhemm.f(3)
๐ BLAS/SRC/zhemm.f ๐
okay bestie, buckle up โ this one is from LAPACK, living in the BLAS/SRC/ folder, and it's genuinely iconic. it's giving "level 3 BLAS, hermitian matrix energy, main character complex arithmetic." let's go ๐ฆ
โจ SYNOPSIS โจ
functions & subroutines (the whole vibe)
subroutine zhemm (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
that's ZHEMM babes. say it with your chest. ๐
๐ธ Function/Subroutine Documentation ๐ธ
subroutine zhemm
subroutine zhemm (character side, character uplo, integer m, integer n,
complex*16 alpha, complex*16, dimension(lda,*) a, integer lda,
complex*16, dimension(ldb,*) b, integer ldb, complex*16 beta,
complex*16, dimension(ldc,*) c, integer ldc)
ZHEMM. that's the name, that's the brand. ๐
๐ Purpose:
so ZHEMM performs one of these matrix-matrix operations, and you get to pick which:
C := alpha*A*B + beta*C,
or
C := alpha*B*A + beta*C,
where alpha and beta are scalars, A is an hermitian matrix, and B and C are m by n matrices. periodt. ๐
๐ Parameters
SIDEโSIDEisCHARACTER*1. on entry,SIDEsays whether the hermitian matrixAshows up on the left or the right in the operation, like this:
SIDE = 'L' or 'l' C := alpha*A*B + beta*C,
SIDE = 'R' or 'r' C := alpha*B*A + beta*C,
UPLOโUPLOisCHARACTER*1. on entry,UPLOsays whether the upper or the lower triangular part of the hermitian matrixAis the one getting referenced, like this:
UPLO = 'U' or 'u' Only the upper triangular part of the
hermitian matrix is to be referenced.
UPLO = 'L' or 'l' Only the lower triangular part of the
hermitian matrix is to be referenced.
MโMisINTEGER. on entry,Mspecifies the number of rows of the matrixC.Mmust be at least zero. no negatives bestie, we don't do that here ๐NโNisINTEGER. on entry,Nspecifies the number of columns of the matrixC.Nmust be at least zero. same rule, zero is the floor ๐ธALPHAโALPHAisCOMPLEX*16. on entry,ALPHAspecifies the scalaralpha. that's it, that's the girl ๐ซAโAisCOMPLEX*16array, dimension( LDA, ka ), wherekaismwhenSIDE = 'L'or'l'and isnotherwise. Before entry withSIDE = 'L'or'l', thembympart of the arrayAmust contain the hermitian matrix, such that whenUPLO = 'U'or'u', the leadingmbymupper triangular part of the arrayAmust contain the upper triangular part of the hermitian matrix and the strictly lower triangular part ofAis not referenced, and whenUPLO = 'L'or'l', the leadingmbymlower triangular part of the arrayAmust contain the lower triangular part of the hermitian matrix and the strictly upper triangular part ofAis not referenced. Before entry withSIDE = 'R'or'r', thenbynpart of the arrayAmust contain the hermitian matrix, such that whenUPLO = 'U'or'u', the leadingnbynupper triangular part of the arrayAmust contain the upper triangular part of the hermitian matrix and the strictly lower triangular part ofAis not referenced, and whenUPLO = 'L'or'l', the leadingnbynlower triangular part of the arrayAmust contain the lower triangular part of the hermitian matrix and the strictly upper triangular part ofAis not referenced. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero. yes queen, the diagonal is doing the bare minimum and honestly? valid โจLDAโLDAisINTEGER. on entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. WhenSIDE = 'L'or'l'thenLDAmust be at leastmax( 1, m ), otherwiseLDAmust be at leastmax( 1, n ). do the math, don't skip it ๐งฎBโBisCOMPLEX*16array, dimension( LDB, N ). before entry, the leadingmbynpart of the arrayBmust contain the matrixB. that's her. ๐LDBโLDBisINTEGER. on entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program.LDBmust be at leastmax( 1, m ). no cap.BETAโBETAisCOMPLEX*16. on entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenCneed not be set on input. zero beta = free pass, we love a shortcut ๐ซถCโCisCOMPLEX*16array, dimension( LDC, N ). before entry, the leadingmbynpart of the arrayCmust contain the matrixC, except whenbetais zero, in which caseCneed not be set on entry. On exit, the arrayCis overwritten by thembynupdated matrix. she's changed, she's grown, she's updated ๐LDCโLDCisINTEGER. on entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, m ). keep it at least that, i'm begging ๐ญ
๐ Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad showed up, we're obsessed ๐
๐ง Further Details:
Level 3 Blas routine. (level 3, the big leagues fr fr)
-- 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.
1989?? and still serving looks. legends only โญ
๐ Definition at line 190 of file zhemm.f.
๐ Author (of this very page)
Generated automatically by Doxygen for LAPACK from the source code. the robot wrote this one, not me, but the vibes are immaculate ๐คโจ
that's the whole page bestie! every flag, every bound, every max( 1, ... ), every author, every 1989 date โ all still here. nothing dropped, nothing invented. ate and left no crumbs ๐
Version 3.12.0 ยท Tue Nov 28 2023 12:08:41 ยท BLAS/SRC/zhemm.f(3) โ mwah, love u, bye ๐๐ฆ๐
๐ฆ 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