BLAS/SRC/dgemm.f(3)
β¨ BLAS/SRC/dgemm.f β¨
okay bestie, sit down, hydrate, because we're about to talk about DGEMM β the actual main character of BLAS. it's the Level 3 BLAS routine that does matrix-matrix multiplication, and honestly? she ate. π
This page lives at BLAS/SRC/dgemm.f and it's the Fortran source we're documenting here. no cap. π¦
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine dgemm (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta,
c, ldc)
DGEMM π«Ά
π Function/Subroutine Documentation π
subroutine dgemm
subroutine dgemm (character transa, character transb, integer m, integer n,
integer k, double precision alpha, double precision, dimension(lda,*) a,
integer lda, double precision, dimension(ldb,*) b, integer ldb, double
precision beta, double precision, dimension(ldc,*) c, integer ldc)
DGEMM π
Purpose:
okay so here's the whole vibe. DGEMM performs one of the matrix-matrix operations
C := alpha*op( A )*op( B ) + beta*C,
where op( X ) is one of
op( X ) = X or op( X ) = X**T,
alpha and beta are scalars, and A, B and C are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. periodt. β¨
Parameters
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**T.
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**T.
MβMisINTEGER. On entry,Mspecifies the number of rows of the matrixop( A )and of the matrixC.Mmust be at least zero.NβNisINTEGER. On entry,Nspecifies the number of columns of the matrixop( B )and the number of columns of the matrixC.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βALPHAisDOUBLE PRECISION. On entry,ALPHAspecifies the scalar alpha.AβAisDOUBLE PRECISIONarray, dimension( LDA, ka ), wherekaiskwhenTRANSA = 'N' or 'n', and ismotherwise. Before entry withTRANSA = 'N' or 'n', the leading m by k part of the arrayAmust contain the matrixA, otherwise the leading k by m part of the arrayAmust contain the matrixA.LDAβLDAisINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. WhenTRANSA = 'N' or 'n'thenLDAmust be at leastmax( 1, m ), otherwiseLDAmust be at leastmax( 1, k ).BβBisDOUBLE PRECISIONarray, dimension( LDB, kb ), wherekbisnwhenTRANSB = 'N' or 'n', and iskotherwise. Before entry withTRANSB = 'N' or 'n', the leading k by n part of the arrayBmust contain the matrixB, otherwise the leading n by k part of the arrayBmust contain the matrixB.LDBβLDBisINTEGER. On entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program. WhenTRANSB = 'N' or 'n'thenLDBmust be at leastmax( 1, k ), otherwiseLDBmust be at leastmax( 1, n ).BETAβBETAisDOUBLE PRECISION. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenCneed not be set on input. (yes bestie, free real estate π)CβCisDOUBLE PRECISIONarray, dimension( LDC, N ). Before entry, the leading m by n part of the arrayCmust contain the matrixC, except whenbetais zero, in which caseCneed not be set on entry. On exit, the arrayCis overwritten by the m by n matrix( alpha*op( A )*op( B ) + beta*C ).LDCβLDCisINTEGER. On entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, m ).
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details:
Level 3 Blas routine.
the lore, for the historians in the chat π§:
-- 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.
Definition at line 186 of file dgemm.f. π₯
Author
Generated automatically by Doxygen for LAPACK from the source code. (not a human, just vibes and parsing π)
aaaand that's the whole page, bestie. this was Version 3.12.0, dated Tue Nov 28 2023 12:08:41, from BLAS/SRC/dgemm.f(3). go forth and multiply your matrices. alpha*op( A )*op( B ) + beta*C and slay. πππ
π¦ 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