BLAS/SRC/cgemm.f(3)
π BLAS/SRC/cgemm.f π
okay bestie, gather round, because this is the file BLAS/SRC/cgemm.f and it is literally the moment complex matrix multiplication became the main character. no cap. π¦
β¨ NAME β¨
BLAS/SRC/cgemm.f β the glow-up page for CGEMM, the Level 3 BLAS routine that does complex matrix-matrix multiply. she's iconic, she's foundational, she's been carrying linear algebra on her back since 1989. π
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine cgemm (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)β the whole vibe in one lineCGEMMβ the name, the legend, the brand π
π Function/Subroutine Documentation π
subroutine cgemm (character transa, character transb, integer m, integer n, integer k, complex alpha, complex, dimension(lda,*) a, integer lda, complex, dimension(ldb,*) b, integer ldb, complex beta, complex, dimension(ldc,*) c, integer ldc)
CGEMM. yeah. that's her. π«Ά
π Purpose:
CGEMM 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 or op( X ) = X**H,
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. it's giving linear algebra royalty, honestly. π
π Parameters
TRANSA
TRANSA is CHARACTER*1. on entry, TRANSA specifies the form of op( 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
TRANSB is CHARACTER*1. on entry, TRANSB specifies the form of op( 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.
M
M is INTEGER. on entry, M specifies the number of rows of the matrix op( A ) and of the matrix C. M must be at least zero. zero is allowed, she's not judgy. π
N
N is INTEGER. on entry, N specifies the number of columns of the matrix op( B ) and the number of columns of the matrix C. N must be at least zero.
K
K is INTEGER. on entry, K specifies the number of columns of the matrix op( A ) and the number of rows of the matrix op( B ). K must be at least zero.
ALPHA
ALPHA is COMPLEX. on entry, ALPHA specifies the scalar alpha. the moment of scaling, the drama of it all. β¨
A
A is COMPLEX array, dimension ( LDA, ka ), where ka is k when TRANSA = 'N' or 'n', and is m otherwise. before entry with TRANSA = 'N' or 'n', the leading m by k part of the array A must contain the matrix A, otherwise the leading k by m part of the array A must contain the matrix A.
LDA
LDA is INTEGER. on entry, LDA specifies the first dimension of A as declared in the calling (sub) program. when TRANSA = 'N' or 'n' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, k ).
B
B is COMPLEX array, dimension ( LDB, kb ), where kb is n when TRANSB = 'N' or 'n', and is k otherwise. before entry with TRANSB = 'N' or 'n', the leading k by n part of the array B must contain the matrix B, otherwise the leading n by k part of the array B must contain the matrix B.
LDB
LDB is INTEGER. on entry, LDB specifies the first dimension of B as declared in the calling (sub) program. when TRANSB = 'N' or 'n' then LDB must be at least max( 1, k ), otherwise LDB must be at least max( 1, n ).
BETA
BETA is COMPLEX. on entry, BETA specifies the scalar beta. when BETA is supplied as zero then C need not be set on input. free pass, bestie, no setup required. π
C
C is COMPLEX array, dimension ( LDC, N ). before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. on exit, the array C is overwritten by the m by n matrix ( alpha*op( A )*op( B ) + beta*C ). she gets replaced, and honestly? she ate. π₯
LDC
LDC is INTEGER. on entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
π§ Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad showed up for this one. π
π Further Details:
- Level 3 Blas routine.
-- 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.
like... 1989. they were doing complex matrix multiplication before it was cool. legends only. π
Definition at line 186 of file cgemm.f.
π« Author π«
Generated automatically by Doxygen for LAPACK from the source code. (yes, a robot wrote this part, and it slayed.)
and that's the whole page, bestie β every flag, every dimension, every max( 1, ... ), untouched. facts preserved, vibes immaculate. π
Version 3.12.0 β Tue Nov 28 2023 12:08:41 β BLAS/SRC/cgemm.f(3) π
β¨
π¦ 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