3.4 Level 3 BLAS

The level 3 BLAS include functions for matrix-matrix multiplication.

gemm( A, B, C[, transA='N'[, transB='N'[, alpha=1.0[, beta=0.0]]]])
Matrix-matrix product of two general matrices:

\begin{displaymath}
C := \alpha \mathop{\mathrm{op}}(A) \mathop{\mathrm{op}}(B) + \beta C
\end{displaymath}

where

\begin{displaymath}
\mathop{\mathrm{op}}(A) = \left\{ \begin{array}{ll}
A & \ma...
...\\
B^H & \mathrm{transB} = \mathrm{'C'}. \end{array} \right.
\end{displaymath}

The arguments A, B and C must have the same type ('d' or 'z'). Complex values of alpha and beta are only allowed if A is complex.

symm( A, B, C[, side='L'[, uplo='L'[, alpha=1.0[, beta=0.0]]]])
Product of a real or complex symmetric matrix A and a general matrix B:

\begin{displaymath}
C := \alpha AB + \beta C \quad (\mathrm{side} = \mathrm{'L'...
... := \alpha BA + \beta C \quad (\mathrm{side} = \mathrm{'R'}).
\end{displaymath}

The arguments A, B and C must have the same type ('d' or 'z'). Complex values of alpha and beta are only allowed if A is complex.

hemm( A, B, C[, side='L'[, uplo='L'[, alpha=1.0[, beta=0.0]]]])
Product of a real symmetric or complex Hermitian matrix A and a general matrix B:

\begin{displaymath}
C := \alpha AB + \beta C \quad (\mathrm{side} = \mathrm{'L'...
... := \alpha BA + \beta C \quad (\mathrm{side} = \mathrm{'R'}).
\end{displaymath}

The arguments A, B and C must have the same type ('d' or 'z'). Complex values of alpha and beta are only allowed if A is complex.

trmm( A, B[, side='L'[, uplo='L'[, transA='N'[, diag='N'[, alpha=1.0]]]]])
Product of a triangular matrix A and a general matrix B:

\begin{displaymath}
B := \alpha\mathop{\mathrm{op}}(A)B \quad (\mathrm{side} = ...
...\\
A^H & \mathrm{transA} = \mathrm{'C'}. \end{array} \right.
\end{displaymath}

The arguments A and B must have the same type ('d' or 'z'). Complex values of alpha are only allowed if A is complex.

trsm( A, B[, side='L'[, uplo='L'[, transA='N'[, diag='N'[, alpha=1.0]]]]])
Solution of a nonsingular triangular system of equations:

\begin{displaymath}
B := \alpha \mathop{\mathrm{op}}(A)^{-1}B \quad (\mathrm{si...
...\\
A^H & \mathrm{transA} = \mathrm{'C'}, \end{array} \right.
\end{displaymath}

where A is triangular and B is a general matrix. The arguments A and B must have the same type ('d' or 'z'). Complex values of alpha are only allowed if A is complex.

syrk( A, C[, uplo='L'[, trans='N'[, alpha=1.0[, beta=0.0]]]])
Rank-k update of a real or complex symmetric matrix C:

\begin{displaymath}
C := \alpha AA^T + \beta C \quad (\mathrm{trans} = \mathrm{...
... \alpha A^TA + \beta C \quad (\mathrm{trans} = \mathrm{'T'}),
\end{displaymath}

where A is a general matrix. The arguments A and C must have the same type ('d' or 'z'). Complex values of alpha and beta are only allowed if A is complex.

herk( A, C[, uplo='L'[, trans='N'[, alpha=1.0[, beta=0.0]]]])
Rank-k update of a real symmetric or complex Hermitian matrix C:

\begin{displaymath}
C := \alpha AA^H + \beta C \quad (\mathrm{trans} = \mathrm{...
...= \alpha A^HA + \beta C \quad (\mathrm{trans} = \mathrm{'C'}),
\end{displaymath}

where A is a general matrix. The arguments A and C must have the same type ('d' or 'z'). alpha and beta must be real.

syr2k( A, B, C[, uplo='L'[, trans='N'[, alpha=1.0[, beta=0.0]]]])
Rank-2k update of a real or complex symmetric matrix C:

\begin{displaymath}
C := \alpha (AB^T + BA^T) + \beta C \quad
(\mathrm{trans}...
...TB + B^TA) + \beta C \quad
(\mathrm{trans} = \mathrm{'T'}).
\end{displaymath}

A and B are general real or complex matrices. The arguments A, B and C must have the same type. Complex values of alpha and beta are only allowed if A is complex.

her2k( A, B, C[, uplo='L'[, trans='N'[, alpha=1.0[ beta=0.0]]]])
Rank-2k update of a real symmetric or complex Hermitian matrix C:

\begin{displaymath}
C := \alpha AB^H + \bar \alpha BA^H + \beta C \quad
(\mat...
...alpha B^HA + \beta C \quad
(\mathrm{trans} = \mathrm{'C'}),
\end{displaymath}

where A and B are general matrices. The arguments A, B and C must have the same type ('d' or 'z'). Complex values of alpha are only allowed if A is complex. beta must be real.