CSI-DSP  Version 1.0.0
CSI DSP Software Library
函数

函数

static __INLINE csky_status csky_sqrt_f32 (float32_t in, float32_t *pOut)
 浮点平方根函数. 更多...
 
csky_status csky_sqrt_q15 (q15_t in, q15_t *pOut)
 Q15 平方根函数 更多...
 
csky_status csky_sqrt_q31 (q31_t in, q31_t *pOut)
 Q31 平方根函数. 更多...
 

简要说明

计算一个数的平方根。 为Q15,Q31,浮点类型实现了不同的函数。 当CPU有FPU时,指令fsqrts 被用来计算结果,而当没有FPU时,牛顿迭代法 被用来计算结果。 迭代的算法公式如下:

     x1 = x0 - f(x0)/f'(x0)

其中 x1 是当前估计值, x0 是上一次估计值, f'(x0)f() 在x0点的导数。 对于平方根函数,算法简化为:

    x0 = in/2                         [最初的猜测值]
    x1 = 1/2 * ( x0 + in / x0)        [每次迭代的公式]

函数说明

static __INLINE csky_status csky_sqrt_f32 ( float32_t  in,
float32_t pOut 
)
static
参数
[in]in输入值.
[out]pOut输入值的平方根.
返回
如果输入值是正数,函数返回CSKY_MATH_SUCCESS,如果是负数,则返回CSKY_MATH_ARGUMENT_ERROR, 并且,返回的参数*pOut = 0.
csky_status csky_sqrt_q15 ( q15_t  in,
q15_t pOut 
)
参数
[in]in输入值,输入值的范围是[0 +1) 或者 0x0000 到 0x7FFF.
[out]*pOut输入值的平方根.
返回
如果输入值是正数,函数返回CSKY_MATH_SUCCESS, 如果输入是负数,则返回CSKY_MATH_ARGUMENT_ERROR. 对负数输入,返回的参数*pOut = 0.
csky_status csky_sqrt_q31 ( q31_t  in,
q31_t pOut 
)
参数
[in]in输入值,输入值的范围是[0 +1) 或者 0x00000000 到 0x7FFFFFFF.
[out]*pOut输入值的平方根.
返回
如果输入值是正数,函数返回CSKY_MATH_SUCCESS, 如果输入是负数,则返回CSKY_MATH_ARGUMENT_ERROR. 对负数输入,返回的参数*pOut = 0.
注解
当硬浮点指令fsqrts被使用时,函数的精度会从3 LSB 降到7 LSB。 调用这个函数的相关函数也是如此。