Function

cblas_cgemm(_:_:_:_:_:_:_:_:_:_:_:_:_:_:)

Multiplies two matrices (single-precision complex).

Declaration

func cblas_cgemm(_ __Order: CBLAS_ORDER, _ __TransA: CBLAS_TRANSPOSE, _ __TransB: CBLAS_TRANSPOSE, _ __M: Int32, _ __N: Int32, _ __K: Int32, _ __alpha: UnsafeRawPointer!, _ __A: UnsafeRawPointer!, _ __lda: Int32, _ __B: UnsafeRawPointer!, _ __ldb: Int32, _ __beta: UnsafeRawPointer!, _ __C: UnsafeMutableRawPointer!, _ __ldc: Int32)

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 Complex Matrix Functions

func cblas_caxpy(Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

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

func cblas_ccopy(Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

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

func cblas_cgerc(CBLAS_ORDER, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

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

func cblas_cher(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

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

func cblas_cher2(CBLAS_ORDER, CBLAS_UPLO, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

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.

func cblas_cherk(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, Int32, Int32, Float, UnsafeRawPointer!, Int32, Float, UnsafeMutableRawPointer!, Int32)

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

func cblas_chpr(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!)

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

func cblas_chpr2(CBLAS_ORDER, CBLAS_UPLO, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!)

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

func cblas_cscal(Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)

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

func cblas_csscal(Int32, Float, UnsafeMutableRawPointer!, Int32)

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

func cblas_cswap(Int32, UnsafeMutableRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

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

func cblas_csyrk(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)

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

func cblas_ctpmv(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)

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

func cblas_scasum(Int32, UnsafeRawPointer!, Int32) -> Float

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

func cblas_scnrm2(Int32, UnsafeRawPointer!, Int32) -> Float

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