DSP_vecsumsq

 

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

C64x+ DSPLIB Reference

4-71

Page 99
Image 99
Texas Instruments TMS320C64X manual Sum of Squares, DSPvecsumsq