请教一个关于浮点数开方函数问题
时间:10-02
整理:3721RD
点击:
在STM32F4带有FPU处理器,其中有一个浮点数开方函数arm_sqrt_f32(float32_t in, float32_t * pOut);该函数在arm_math.h里面.请问一下这个函数是否跟另外一个函数float sqrtf(float);只是区别在速度上?
其中arm_sqrt_f32函数内容:
static __INLINE arm_status arm_sqrt_f32(
float32_t in,
float32_t * pOut)
{
if(in > 0)
{
// #if __FPU_USED
#if (__FPU_USED == 1) && defined ( __CC_ARM )
*pOut = __sqrtf(in);
#else
*pOut = sqrtf(in);
#endif
return (ARM_MATH_SUCCESS);
}
else
{
*pOut = 0.0f;
return (ARM_MATH_ARGUMENT_ERROR);
}
}
分析上面的程序:
对于STM32f103没有DSP处理单元的是不是只判断数据输入是否大于0,是的话直接用sqrtf开方就行?
有没有人测试过,使用arm_sqrt_f32()和sqrtf()这两个函数处理速度大概差多少呢?
谢谢!
其中arm_sqrt_f32函数内容:
static __INLINE arm_status arm_sqrt_f32(
float32_t in,
float32_t * pOut)
{
if(in > 0)
{
// #if __FPU_USED
#if (__FPU_USED == 1) && defined ( __CC_ARM )
*pOut = __sqrtf(in);
#else
*pOut = sqrtf(in);
#endif
return (ARM_MATH_SUCCESS);
}
else
{
*pOut = 0.0f;
return (ARM_MATH_ARGUMENT_ERROR);
}
}
分析上面的程序:
对于STM32f103没有DSP处理单元的是不是只判断数据输入是否大于0,是的话直接用sqrtf开方就行?
有没有人测试过,使用arm_sqrt_f32()和sqrtf()这两个函数处理速度大概差多少呢?
谢谢!
已退回30积分