DSP_mul32
[Math]

Collaboration diagram for DSP_mul32:


Detailed Description

void DSP_mul32 (const int *restrict x, const int *restrict y, int *restrict r, int nx)


Function Documentation

void DSP_mul32 ( const int *restrict  x,
const int *restrict  y,
int *restrict  r,
int  nx 
)

The function performs a Q.31 x Q.31 multiply and returns the upper 32 bits of the result. The result of the intermediate multiplies are accumulated into a 40-bit long register pair, as there could be potential overflow. The contribution of the multiplication of the two lower 16-bit halves are not considered. The output is in Q.30 format. Results are accurate to least significant bit.

Parameters:
x = Pointer to input data vector 1 of size nx
y = Pointer to input data vector 2 of size nx
r = Pointer to output data vector of size nx
nx = Number of elements in input and output vectors
Algorithm:
DSP_mul32_cn.c is the natural C equivalent of the optimized intrinsic C code without restrictions note that the intrinsic C code is optimized and restrictions may apply.
Assumptions:
nx must be a multiple of 4 and greater than or equal to 4.
Input and output vectors must be double-word aligned.
Implementation notes:
Endian Support: The code supports both big and little endian modes.
Interruptibility: The code is interruptible.


Copyright 2014, Texas Instruments Incorporated