man pages section 3: Multimedia Library Functions
Updated: July 2014

## mlib_SignalConv_S16S_S16S_Sat (3MLIB)

### Name

mlib_SignalConv_S16_S16_Sat, mlib_SignalConv_S16S_S16S_Sat, mlib_SignalConv_F32_F32, mlib_SignalConv_F32S_F32S - signal convolution

### Synopsis

```cc [ flag... ] file... –lmlib [ library... ]
#include <mlib.h>

mlib_status mlib_SignalConv_S16_S16_Sat(mlib_s16 *dst,
const mlib_s16 *src1, const mlib_s16 *src2, mlib_s32 m,
mlib_s32 n);```
```mlib_status mlib_SignalConv_S16S_S16S_Sat(mlib_s16 *dst,
const mlib_s16 *src1, const mlib_s16 *src2, mlib_s32 m,
mlib_s32 n);```
```mlib_status mlib_SignalConv_F32_F32(mlib_f32 *dst,
const mlib_f32 *src1, const mlib_f32 *src2, mlib_s32 m,
mlib_s32 n);```
```mlib_status mlib_SignalConv_F32S_F32S(mlib_f32 *dst,
const mlib_f32 *src1, const mlib_f32 *src2, mlib_s32 m,
mlib_s32 n);```

### Description

Each of these functions performs convolution.

For monaural signals, the following equation is used:

```         m-1
dst[i] = SUM (src1[j] * src2[i - j])  if m ≤ n
j=0

n-1
dst[i] = SUM (src2[j] * src1[i - j])  if m > n
j=0
```

where i = 0, 1, ..., (m + n - 2).

For stereo signals, the following equation is used:

```               m-1
dst[2*i]     = SUM (src1[2*j] * src2[2*(i - j)])
j=0

m-1
dst[2*i + 1] = SUM (src1[2*j + 1] * src2[2*(i - j) + 1])
j=0
```

if m ≤ n, or

```               n-1
dst[2*i]     = SUM (src2[2*j] * src1[2*(i - j)])
j=0

n-1
dst[2*i + 1] = SUM (src2[2*j + 1] * src1[2*(i - j) + 1])
j=0

```

if m > n; where i = 0, 1, ..., (m + n - 2).

### Parameters

Each of the functions takes the following arguments:

dst

Destination signal array.

src1

First source signal array.

src2

Second source signal array.

m

Number of samples in the first source signal array.

n

Number of samples in the second source signal arrays.

### Return Values

Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.

### Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
MT-Safe