社区
C语言
帖子详情
我用arm处理器,请问如何通过定点运算实现较高执行效率的开根号运算?
xiezifang
2009-10-12 06:27:19
我用arm处理器 (nxp2300处理器),请问如何通过定点运算实现较高执行效率的开根号运算?
要求效率高点,能否通过简单点的移位等运算实现?
提前谢谢各位来帮我解答的人!
...全文
453
3
打赏
收藏
我用arm处理器,请问如何通过定点运算实现较高执行效率的开根号运算?
我用arm处理器 (nxp2300处理器),请问如何通过定点运算实现较高执行效率的开根号运算? 要求效率高点,能否通过简单点的移位等运算实现? 提前谢谢各位来帮我解答的人!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jackyjkchen
2009-10-12
打赏
举报
回复
[Quote=引用 2 楼 xiezifang 的回复:]
我看到有些算法根据牛顿迭代:x=x/2+a/2x收敛于x^2=a的根,每做一次精度大约加倍,但这个算法是基于浮点的,arm处理器不支持浮点,如何通过定点运算实现呢?
以下是带浮点的算法
double sqrt(double x) {
double result = 1.5; //初始值可以随机选,也可以根据你的应用选能最快收敛的
double precise = 0.001; //精度
while(true) {
double d = (result + x / result) / 2;
if (abs(result - d) < precise)
break;
result = d;
}
return (result) ;
}
[/Quote]
初中的代数教材还有么,扩展阅读里记得介绍过一个开根号的笔算算法,看能不能实现,这种算法都是数学家的工作了,你找找看有没有库之类的
xiezifang
2009-10-12
打赏
举报
回复
我看到有些算法根据牛顿迭代:x=x/2+a/2x收敛于x^2=a的根,每做一次精度大约加倍,但这个算法是基于浮点的,arm处理器不支持浮点,如何通过定点运算实现呢?
以下是带浮点的算法
double sqrt(double x) {
double result = 1.5; //初始值可以随机选,也可以根据你的应用选能最快收敛的
double precise = 0.001; //精度
while(true) {
double d = (result + x / result) / 2;
if (abs(result - d) < precise)
break;
result = d;
}
return (result) ;
}
jackyjkchen
2009-10-12
打赏
举报
回复
快速开根号算法挺复杂的,直接google百度都能找到,不是移位就能做到的
ARM
上的
定点
运算
ARM
上的
定点
运算
arm
上浮点转整形
运算
_快来看,如何优化电机控制中的数学
运算
在更多的时间内
执行
更多的算法,就意味着更
高
的控制频率和更快的系统响应。下面这篇文章来网络,很全面的总结了在电机控制中如何优化算法,也根据不同的
处理器
自带的协
处理器
或者硬件指令进行调整。引言 电机控制...
STM32 DSP库 使用注意点
DSP库 使用注意点我们平常所使用的CPU为
定点
CPU,意思是进行整点数值
运算
的CPU。当遇到形如1.1+1.1的浮点数
运算
时,
定点
CPU就遇到大难题了。对于32位单片机,利用Q化处理能发挥他本身的性能,但是精度和速度仍然不会...
电机控制中数学
运算
的程序优化方案
电机控制应用设计传统上采用微控制器(MCU)或数字信号
处理器
(DSP)来运行电机控制算法。在研究永磁同步电机(PMSM)矢量控制的时候,坐标变换的三角函数
运算
、观测器的迭代、锁相环的鉴相环节(用到了三角函数)都...
arm
_sqrt_q31函数的理解
ARM
CMSIS函数库中有求平方根的快速计算函数
arm
_sqrt_q31,
arm
_sqrt_q15等等,花了将近一天时间才搞明白了这个函数的真正含义。
arm
_sqrt_q31(q31_t x, q31_t * pOut): 输入是一个q31类型的整数(记做x,,从数学...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章