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

## mlib_ImageDivConstShift_Inp(3MLIB)

### Name

mlib_ImageDivConstShift_Inp - division by a constant, with shifting

### Synopsis

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

mlib_status mlib_ImageDivConstShift_Inp(mlib_image *srcdst,
const mlib_s32 *c, mlib_s32 shift);```

### Description

The mlib_ImageDivConstShift_Inp() function divides each pixel in an image by a constant value on a pixel-by-pixel basis, in place. It scales the result by a left shift and writes the result to the image on a pixel-by-pixel basis.

It uses the following equation:

`srcdst[x][y][i] = srcdst[x][y][i] / c[i] * 2**shift`

In the case of c[i] = 0,

```srcdst[x][y][i] = 0              if srcdst[x][y][i] = 0
srcdst[x][y][i] = DATA_TYPE_MAX  if srcdst[x][y][i] > 0
srcdst[x][y][i] = DATA_TYPE_MIN  if srcdst[x][y][i] < 0```

where DATA_TYPE is MLIB_U8, MLIB_S16, MLIB_U16, or MLIB_S32 for an image of type MLIB_BYTE, MLIB_SHORT, MLIB_USHORT, or MLIB_INT, respectively.

### Parameters

The function takes the following arguments:

srcdst

Pointer to source and destination image.

c

Constant by which each pixel is divided. c[i] contains the constant for channel i.

shift

Left shifting factor. 0 ≤ shift ≤ 31.

### Return Values

The function 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