computes the matrix-matrix multiplication α optsa[a].optsb[b]+β c and resets c to the result.

Details and Options

  • To use GEMM, you first need to load the BLAS Package using Needs["LinearAlgebra`BLAS`"].
  • The following arguments must be given:
  • tsainput stringtransposition string for a
    tsbinput stringtransposition string for b
    αinput expressionscalar mutliple
    ainput expressionrectangular matrix
    binput expressionrectangular matrix
    βinput expressionscalar multiple
    cinput/output symbolrectangular matrix; the symbol value is modified in place
  • The transposition strings describing the operators optsa and optsb and may be specified as:
  • "N"no transposition
    "C"conjugate transpose
  • Dimensions of the matrix arguments must be such that the dot product and addition are well defined.


open allclose all

Basic Examples  (1)

Load the BLAS package:

Compute Transpose[a].b+2 c and save it in c:

Scope  (4)

Real matrices:

Complex matrices:

Arbitrary-precision matrices:

Symbolic matrices:

Properties & Relations  (3)

GEMM["N","N",α,a,b,β,c] is equivalent to c=α a.b+β c:

GEMM["T","N",α,a,b,β,b] is equivalent to c=α Transpose[a].b+β c:

GEMM["C","T",α,a,b,β,b] is equivalent to c=α ConjugateTranspose[a].Transpose[b]+β c:

Possible Issues  (2)

The last argument must be a symbol:

The last argument must be initialized to a matrix:

Wolfram Research (2017), GEMM, Wolfram Language function,


Wolfram Research (2017), GEMM, Wolfram Language function,


Wolfram Language. 2017. "GEMM." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2017). GEMM. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2023_gemm, author="Wolfram Research", title="{GEMM}", year="2017", howpublished="\url{}", note=[Accessed: 20-July-2024 ]}


@online{reference.wolfram_2023_gemm, organization={Wolfram Research}, title={GEMM}, year={2017}, url={}, note=[Accessed: 20-July-2024 ]}