Function

# vDSP_zmsm

Subtracts the product of two complex matrices from a third complex matrix; out-of-place; single precision.

## Parameters

`__A`

Single-precision complex `M`-by-`P` input matrix.

`__IA`

Stride for `A`.

`__B`

Single-precision complex `P`-by-`N` input matrix.

`__IB`

Stride for `B`.

`__C`

Single-precision complex `M`-by-`N` input matrix.

`__IC`

Stride for `C`.

`__D`

Single-precision complex `M`-by-`N` result matrix.

`__ID`

Stride for `D`.

`__M`

The number of rows in matrices `A`, `C`, and `D`.

`__N`

The number of columns in matrix `B`, `C`, and `D`.

`__P`

The number of columns in matrix `A` and the number of rows in matrix `B`.

## Discussion

This function performs an out-of-place complex multiplication of an `M`-by-`P` matrix `A` by a `P`-by-`N` matrix `B`, subtracts the product from `M`-by-`N` matrix `C`, and stores the result in `M`-by-`N` matrix `D`.

This performs the following operation:

Parameters `A` and `B` are the matrixes to be multiplied, and `C` is the matrix from which the product is to be subtracted. `aStride` is an address stride through `A`. `bStride` is an address stride through `B`. `cStride` is an address stride through `C`. `dStride` is an address stride through `D`.

Parameter `D` is the result matrix.

Parameter `M` is the row count for `A`, `C` and `D`. Parameter `N` is the column count of `B`, `C`, and `D`. Parameter `P` is the column count of `A` and the row count of `B`.

### Matrix Multiplication (Complex Matrices)

`vDSP_zmma`

Multiplies two complex matrices, then adds a third complex matrix; out-of-place; single precision.

`vDSP_zmmaD`

Multiplies two complex matrices, then adds a third complex matrix; out-of-place; double precision.

`vDSP_zmms`

Multiplies two complex matrices, then subtracts a third complex matrix; out-of-place; single precision.

`vDSP_zmmsD`

Multiplies two complex matrices, then subtracts a third complex matrix; out-of-place; double precision.

`vDSP_zmmul`

Multiplies two matrices of complex numbers; out-of-place; single precision.

`vDSP_zmmulD`

Multiplies two matrices of complex numbers; out-of-place; double precision.

`vDSP_zmsmD`

Subtracts the product of two complex matrices from a third complex matrix; out-of-place; double precision.