Function

# cblas_cgemm

Multiplies two matrices (single-precision complex).

## 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.

### Single-Precision Complex Matrix Functions

`cblas_caxpy`

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

`cblas_ccopy`

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

`cblas_cgbmv`

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

`cblas_cgemv`

Multiplies a matrix by a vector (single-precision complex).

`cblas_cgerc`

Multiplies vector X by the conjugate transpose of vector Y, then adds matrix A (single-precision complex).

`cblas_cgeru`

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

`cblas_chbmv`

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

`cblas_chemm`

Multiplies two Hermitian matrices (single-precision complex), then adds a third (with scaling).

`cblas_chemv`

Scales and multiplies a Hermitian matrix by a vector, then adds a second (scaled) vector.

`cblas_cher`

Hermitian rank 1 update: adds the product of a scaling factor, vector `X`, and the conjugate transpose of `X` to matrix `A`.

`cblas_cher2`

Hermitian rank 2 update: adds the product of a scaling factor, vector `X`, and the conjugate transpose of vector `Y` to the product of the conjugate of the scaling factor, vector `Y`, and the conjugate transpose of vector `X`, and adds the result to matrix `A`.

`cblas_cher2k`

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

`cblas_cherk`

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

`cblas_chpmv`

Scales a packed hermitian matrix, multiplies it by a vector, and adds a scaled vector.

`cblas_chpr`

Scales and multiplies a vector times its conjugate transpose, then adds a matrix.

`cblas_chpr2`

Multiplies a vector times the conjugate transpose of a second vector and vice-versa, sums the results, and adds a matrix.

`cblas_crotg`

Constructs a complex Givens rotation.

`cblas_cscal`

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

`cblas_csrot`

Applies a Givens rotation matrix to a pair of complex vectors.

`cblas_csscal`

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

`cblas_cswap`

Exchanges the elements of two vectors (single-precision complex).

`cblas_csymm`

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

`cblas_csyr2k`

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

`cblas_csyrk`

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

`cblas_ctbmv`

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

`cblas_ctbsv`

Solves a triangular banded system of equations.

`cblas_ctpmv`

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

`cblas_ctpsv`

Solves a packed triangular system of equations.

`cblas_ctrmm`

Scales a triangular matrix and multiplies it by a matrix.

`cblas_ctrmv`

Multiplies a triangular matrix by a vector.

`cblas_ctrsm`

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

`cblas_ctrsv`

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

`cblas_scasum`

Computes the sum of the absolute values of real and imaginary parts of elements in a vector (single-precision complex).

`cblas_scnrm2`

Computes the unitary norm of a vector (single-precision complex).