STM32/STM8技术william hill官网
直播中

苦瓜你好

9年用户 352经验值
擅长:测量仪表 嵌入式技术 处理器/DSP 接口/总线/驱动 控制/MCU
私信 关注
[问答]

请教一个关于浮点数开方函数问题

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()这两个函数处理速度大概差多少呢?
谢谢!
已退回30积分

更多回帖

发帖
×
20
完善资料,
赚取积分