
DSP_vecsumsq
4-71
C64x+ DSPLIB Reference
Sum of Squares
DSP_vecsumsq
Function
int DSP_vecsumsq (const short *x, int nx)
Arguments
x[nx]
Input vector
nx
Number of elements in x. Must be multiple of 4 and
≥
8.
return int
Sum of the squares
Description
This routine returns the sum of squares of the elements contained in the vector
x[ ].
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_vecsumsq(short x[ ], int nx)
{
int i, sum=0;
for(i=0; i<nx; i++)
{
sum += x[i]*x[i];
}
return(sum);
}
Special Requirements nx must be a multiple of 4 and greater than or equal to 32.
Implementation Notes
-
Bank Conflicts: No bank conflicts occur.
-
Interruptibility: The code is interrupt-tolerant but not interruptible.
-
The code is unrolled 4 times to enable full memory and multiplier
bandwidth to be utilized.
Benchmarks
Cycles
nx/4 + 11
Codesize
188 bytes