Collaboration diagram for DSPF_sp_vecrecip:
void | DSPF_sp_vecrecip (const float *x, float *restrict y, const int nx) |
void DSPF_sp_vecrecip | ( | const float * | x, | |
float *restrict | y, | |||
const int | nx | |||
) |
The sp_vecrecip module calculates the reciprocal of each element in the array x and returns the output in array r. It uses 2 iterations of the Newton-Raphson method to improve the accuracy of the output generated by the RCPSP instruction generated by RCPSP is 8 bits. So after the first iteration it is 16 bits and after the second it is the full 23 bits. The formula used is:
r[n+1] = r[n](2 - v*r[n])
where v = the number whose reciprocal is to be found.
x[0], the seed value for the algorithm, is given by RCPSP.
x | Pointer to input array. | |
y | Pointer to output array. | |
nx | Number of elements in arrays. |