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

## mlib_VectorConjSymExt_S16C_S16C_Sat (3MLIB)

### Name

mlib_VectorConjSymExt_S8C_S8C_Sat, mlib_VectorConjSymExt_S16C_S16C_Sat, mlib_VectorConjSymExt_S32C_S32C_Sat - vector conjugate-symmetric extension

### Synopsis

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

mlib_status mlib_VectorConjSymExt_S8C_S8C_Sat(mlib_s8 *z,
const mlib_s8 *x, mlib_s32 n);```
```mlib_status mlib_VectorConjSymExt_S16C_S16C_Sat(mlib_s16 *z,
const mlib_s16 *x, mlib_s32 n);```
```mlib_status mlib_VectorConjSymExt_S32C_S32C_Sat(mlib_s32 *z,
const mlib_s32 *x, mlib_s32 n);```

### Description

Each of these functions computes the complex conjugate extension of a complex vector.

The source and destination vectors must be in the same data type.

When n is even, the following equation is used:

```z[2*i]     =  x[2*i]
z[2*i + 1] = -x[2*i + 1]
```

for i = 0, 1, ..., (n - 1).

```z[2*i]     =  x[2*(2*n - 1 - i)]
z[2*i + 1] = -x[2*(2*n - 1 - i) + 1]
```

for i = n, (n + 1), ..., (2*n - 1).

When n is odd, the following equation is used:

```z[2*i]     =  x[2*i]
z[2*i + 1] = -x[2*i + 1]
```

for i = 0, 1, ..., (n - 1).

```z[2*i]     =  x[2*(2*n - 2 - i)]
z[2*i + 1] = -x[2*(2*n - 2 - i) + 1]
```

for i = n, (n + 1), ..., (2*n - 2).

### Parameters

Each of the functions takes the following arguments:

z

Pointer to the first element of the destination vector.

x

Pointer to the first element of the source vector.

n

Number of elements in the source vector.

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