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:

C := α op(A)op(B) +βC

where

        (                              (
        { A    transA = ′N′             { B    transB = ′N′
op(A) =   AT   transA = ′T′     op(B) =   BT   transB = ′T′
        ( AH   transA = ′C′             ( BH   transB = ′C′.

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:

C := αAB  + βC  (side = ′L′),   C := αBA  +βC   (side = ′R′).

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:

                      ′′                           ′ ′
C := αAB  + βC  (side = L ),   C := αBA  +βC   (side = R ).

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:

                                                                ({  A    transA = ′N′
B := α op(A )B  (side = ′L′),   B := αB op(A)  (side = ′R′),   op(A) =   AT   transA = ′T′
                                                                (  AH   transA = ′C′.

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:

                                                                     (
                                                                     { A    transA = ′N′
B := α op(A )-1B  (side = ′L′),   B := αB op(A)-1  (side = ′R′),   op(A) =   AT   transA = ′T′
                                                                     ( AH   transA = ′C′,

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:

C := αAAT  +βC   (trans = ′N ′),   C  := αAT A + βC  (trans = ′T ′),

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:

         H               ′ ′            H                ′ ′
C := αAA   +βC   (trans = N ),   C  := αA  A + βC  (trans = C),

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:

         T     T              ′ ′             T     T                ′ ′
C := α(AB  +BA   )+βC   (trans = N ),    C := α(A B+B   A)+ βC  (trans = T ).

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:

        H      H              ′ ′             H      H               ′ ′
C := αAB   +¯αBA   +βC   (trans = N ),   C := αA  B+ ¯αB  A+ βC   (trans = C ),

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.