![](/images/new-backgrounds/1139870/139870171x1.webp)
DSP_dotp_sqr
4.5 Math
DSP_dotp_sqr | Vector Dot Product and Square | |||
Function |
|
|
| |
| int DSP_dotp_sqr(int G, const short * restrict x, const short * restrict y, int * | |||
|
| restrict r, int nx) | ||
Arguments |
| G | Calculated value of G (used in the VSELP coder). | |
|
| x[nx] | First vector array | |
|
| y[nx] | Second vector array | |
|
| r | Result of vector dot product of x and y. | |
|
| nx | Number of elements. Must be multiple of 4, and ≥12. | |
|
| return int | New value of G. | |
Description |
| This routine performs an nx element dot product of x[ ] and y[ ] and stores it | ||
|
| in r. It also squares each element of y[ ] and accumulates it in G. G is passed | ||
|
| back to the calling function in register A4. This computation of G is used in the | ||
|
| VSELP coder. | ||
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_dotp_sqr (int G,short *x,short *y,int *r, int nx)
{
short *y2; short *endPtr2; y2 = x;
for (endPtr2 = y2 + nx; y2 < endPtr2; y2++){ *r += *y * *y2;
G += *y * *y; y++;
}
return(G);
}