BLAS/SRC/zgemmtr.f(3)
π BLAS/SRC/zgemmtr.f β the zgemmtr era π
okay bestie, so this page is from the Library Functions Manual for BLAS/SRC/zgemmtr.f, and honestly? It's a whole vibe. Let's get into it π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine zgemmtr (uplo, transa, transb, n, k, alpha, a, lda, b, ldb, beta, c, ldc)β that'sZGEMMTR, the main character π
subroutine zgemmtr (uplo, transa, transb, n, k, alpha, a, lda, b, ldb,
beta, c, ldc)
ZGEMMTR
π¦ Function/Subroutine Documentation π¦
subroutine zgemmtr
subroutine zgemmtr (character uplo, character transa, character transb,
integer n, integer k, 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)
ZGEMMTR β say it with me, iconique β¨
Purpose π«Ά
so ZGEMMTR performs one of the matrix-matrix operations, and here's the whole thing:
C := alpha*op( A )*op( B ) + beta*C,
where op( X ) is one of
op( X ) = X or op( X ) = X**T,
and alpha and beta are scalars, while A, B and C are matrices. Specifically: op( A ) is an n by k matrix, op( B ) is a k by n matrix, and C is an n by n matrix. π
and here's the part that's lowkey the whole point: this routine only accesses and updates the upper or lower triangular part of the result matrix C. So if you already know your resulting C is Hermitian or symmetric, you can use that fact and save yourself the effort. iconic behaviour, no cap πΈ
Parameters π§
UPLOβUPLOisCHARACTER*1. On entry,UPLOspecifies whether the lower or the upper triangular part of C is access and updated.UPLO = 'L' or 'l'β the lower triangular part of C is used.UPLO = 'U' or 'u'β the upper triangular part of C is used.
TRANSAβTRANSAisCHARACTER*1. On entry,TRANSAspecifies the form ofop( A )to be used in the matrix multiplication, as follows:TRANSA = 'N' or 'n'βop( A ) = A.TRANSA = 'T' or 't'βop( A ) = A**T.TRANSA = 'C' or 'c'βop( A ) = A**H.
TRANSBβTRANSBisCHARACTER*1. On entry,TRANSBspecifies the form ofop( B )to be used in the matrix multiplication, as follows:TRANSB = 'N' or 'n'βop( B ) = B.TRANSB = 'T' or 't'βop( B ) = B**T.TRANSB = 'C' or 'c'βop( B ) = B**H.
NβNisINTEGER. On entry,Nspecifies the number of rows and columns of the matrix C, the number of columns ofop(B)and the number of rows ofop(A).Nmust be at least zero. βKβKisINTEGER. On entry,Kspecifies the number of columns of the matrixop( A )and the number of rows of the matrixop( B ).Kmust be at least zero.ALPHAβALPHAisCOMPLEX*16. On entry,ALPHAspecifies the scalar alpha. πAβAisCOMPLEX*16 array, dimension ( LDA, ka ), wherekaiskwhenTRANSA = 'N' or 'n', and isnotherwise. Before entry withTRANSA = 'N' or 'n', the leadingnbykpart of the arrayAmust contain the matrixA; otherwise the leadingkbympart of the arrayAmust contain the matrixA.LDAβLDAisINTEGER. On entry,LDAspecifies the first dimension of A as declared in the calling (sub) program. WhenTRANSA = 'N' or 'n'thenLDAmust be at leastmax( 1, n ); otherwiseLDAmust be at leastmax( 1, k ).BβBisCOMPLEX*16 array, dimension ( LDB, kb ), wherekbisnwhenTRANSB = 'N' or 'n', and iskotherwise. Before entry withTRANSB = 'N' or 'n', the leadingkbynpart of the arrayBmust contain the matrixB; otherwise the leadingnbykpart of the arrayBmust contain the matrixB.LDBβLDBisINTEGER. On entry,LDBspecifies the first dimension of B as declared in the calling (sub) program. WhenTRANSB = 'N' or 'n'thenLDBmust be at leastmax( 1, k ); otherwiseLDBmust be at leastmax( 1, n ).BETAβBETAisCOMPLEX*16. On entry,BETAspecifies the scalar beta. WhenBETAis supplied as zero then C need not be set on input. cute, right? one less thing to worry about πCβCisCOMPLEX*16 array, dimension ( LDC, N ). Before entry, the leadingnbynpart of the arrayCmust contain the matrixC, except whenbetais zero, in which case C need not be set on entry. On exit, the upper or lower triangular part of the matrixCis overwritten by thenbynmatrix
( alpha*op( A )*op( B ) + beta*C ).
LDCβLDCisINTEGER. On entry,LDCspecifies the first dimension of C as declared in the calling (sub) program.LDCmust be at leastmax( 1, n ). π₯
Author β¨
Martin Koehler
Further Details π
- Level 3 Blas routine. π
-- Written on 19-July-2023.Martin Koehler, MPI Magdeburg
Definition at line 189 of file zgemmtr.f. π
fr fr, that's the exact line β go look, i'll wait π§
Author π
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page bestie!! πΈ LAPACK, Version 3.12.0, dated BLAS/SRC/zgemmtr.f(3) β mwah, go forth and multiply your matrices ππ¦β¨
π¦ 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