DSP_dotprod
4-60
Vector Dot Product
DSP_dotprod
Function
int DSP_dotprod(const short * restrict x, const short * restrict y, int nx)
Arguments
x[nx]
First vector array. Must be double-word aligned.
y[nx]
Second vector array. Must be double word-aligned.
nx
Number of elements of vector. Must be multiple of 4.
return int
Dot product of x and y.
Description
This routine takes two vectors and calculates their dot product. The inputs are
16-bit short data and the output is a 32-bit number.
Algorithm
This is the C equivalent of the assembly code without restrictions. Note that
the assembly code is hand optimized and restrictions may apply.
int DSP_dotprod(short x[ ],short y[ ], int nx)
{
int sum;
int i;
sum = 0;
for(i=0; i<nx; i++){
sum += (x[i] * y[i]);
}
return (sum);
}
Special Requirements
-
The input length must be a multiple of 4.
-
The input data x[ ] and y[ ] are stored on double-word aligned boundaries.
-
To avoid bank conflicts, the input arrays x[ ] and y[ ] must be offset by 4
half-words (8 bytes).