|
CSI-DSP
Version 1.0.0
CSI DSP Software Library
|
Functions | |
| q15_t | csky_dsp_lib_sqrt_int32 (q31_t x, uint32_t rnd_flag) |
| Q31 square root function. More... | |
Computes the square root of a number. Only the Q31 format data is supported here.Two methods are used to compute the result. When a CPU with FPU is used, the instruction fsqrts is used to compute the result, while a CPU without FPU, Newton-Raphson algorithm is used. For Newton-Raphson algorithm, this is an iterative algorithm of the form:
x1 = x0 - f(x0)/f'(x0)
where x1 is the current estimate, x0 is the previous estimate, and f'(x0) is the derivative of f() evaluated at x0. For the square root function, the algorithm reduces to:
x0 = in/2 [initial guess]
x1 = 1/2 * ( x0 + in / x0) [each iteration]
For both of the two method, the mantissa is longer than 15, so the result will abandon the low 16 bits and be rounded if the flag is set.