Function

cblas_sgemm

Multiplies two matrices (single-precision).

Declaration

void cblas_sgemm(const enum CBLAS_ORDER __Order, const enum CBLAS_TRANSPOSE __TransA, const enum CBLAS_TRANSPOSE __TransB, const int __M, const int __N, const int __K, const float __alpha, const float *__A, const int __lda, const float *__B, const int __ldb, const float __beta, float *__C, const int __ldc);

Parameters

Order

Specifies row-major (C) or column-major (Fortran) data ordering.

TransA

Specifies whether to transpose matrix A.

TransB

Specifies whether to transpose matrix B.

M

Number of rows in matrices A and C.

N

Number of columns in matrices B and C.

K

Number of columns in matrix A; number of rows in matrix B.

alpha

Scaling factor for the product of matrices A and B.

A

Matrix A.

lda

The size of the first dimention of matrix A; if you are passing a matrix A[m][n], the value should be m.

B

Matrix B.

ldb

The size of the first dimention of matrix B; if you are passing a matrix B[m][n], the value should be m.

beta

Scaling factor for matrix C.

C

Matrix C.

ldc

The size of the first dimention of matrix C; if you are passing a matrix C[m][n], the value should be m.

Discussion

This function multiplies A * B and multiplies the resulting matrix by alpha. It then multiplies matrix C by beta. It stores the sum of these two products in matrix C.

Thus, it calculates either

C←αAB + βC

or

C←αBA + βC

with optional use of transposed forms of A, B, or both.

See Also

Single-Precision Float Matrix Functions

cblas_sasum

Computes the sum of the absolute values of elements in a vector (single-precision).

cblas_saxpy

Computes a constant times a vector plus a vector (single-precision).

cblas_scopy

Copies a vector to another vector (single-precision).

cblas_sgbmv

Scales a general band matrix, then multiplies by a vector, then adds a vector (single precision).

cblas_sgemv

Multiplies a matrix by a vector (single precision).

cblas_sger

Multiplies vector X by the transpose of vector Y, then adds matrix A (single precison).

cblas_snrm2

Computes the L2 norm (Euclidian length) of a vector (single precision).

cblas_srot

Applies a Givens rotation matrix to a pair of vectors.

cblas_srotg

Constructs a Givens rotation matrix.

cblas_srotm

Applies a modified Givens transformation (single precision).

cblas_srotmg

Generates a modified Givens rotation matrix.

cblas_ssbmv

Scales a symmetric band matrix, then multiplies by a vector, then adds a vector (single-precision).

cblas_sscal

Multiplies each element of a vector by a constant (single-precision).

cblas_sspmv

Scales a packed symmetric matrix, then multiplies by a vector, then scales and adds another vector (single precision).

cblas_sspr

Rank one update: adds a packed symmetric matrix to the product of a scaling factor, a vector, and its transpose (single precision).

cblas_sspr2

Rank two update of a packed symmetric matrix using two vectors (single precision).

cblas_sswap

Exchanges the elements of two vectors (single precision).

cblas_ssymm

Multiplies a matrix by a symmetric matrix (single-precision).

cblas_ssymv

Scales a symmetric matrix, multiplies by a vector, then scales and adds another vector (single precision).

cblas_ssyr

Rank one update: adds a symmetric matrix to the product of a scaling factor, a vector, and its transpose (single precision).

cblas_ssyr2

Rank two update of a symmetric matrix using two vectors (single precision).

cblas_ssyr2k

Performs a rank-2k update of a symmetric matrix (single precision).

cblas_ssyrk

Rank-k update—multiplies a symmetric matrix by its transpose and adds a second matrix (single precision).

cblas_stbmv

Scales a triangular band matrix, then multiplies by a vector (single precision).

cblas_stbsv

Solves a triangular banded system of equations.

cblas_stpmv

Multiplies a triangular matrix by a vector, then adds a vector (single precision).

cblas_stpsv

Solves a packed triangular system of equations.

cblas_strmm

Scales a triangular matrix and multiplies it by a matrix.

cblas_strmv

Multiplies a triangular matrix by a vector.

cblas_strsm

Solves a triangular system of equations with multiple values for the right side.

cblas_strsv

Solves a triangular system of equations with a single value for the right side.