[发明专利]一种定点开平方实时计算方法无效
申请号: | 201410083718.1 | 申请日: | 2014-03-07 |
公开(公告)号: | CN103885923A | 公开(公告)日: | 2014-06-25 |
发明(设计)人: | 高明煜;詹鑫鑫;庄圣恩;李芸;黄继业 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F17/15 | 分类号: | G06F17/15 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 杜军 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种定点开平方实时计算方法。本算法采用一种改进型的牛顿迭代法结合Q格式数据转化进行32位以内定点的开平方运算。先根据CPU中的数据以二进制进行存储特点,判断出数据的大小,然后将该数做适当的放大,接着快速估算出被开方数的平方根所在区间,最后以从区间上限作为初始迭代值,进行若干次牛顿迭代,获取平方根值。该方法具有稳定收敛、速度快、精度高、占用存储空间少的优点。 | ||
搜索关键词: | 一种 定点 开平 实时 计算方法 | ||
【主权项】:
一种定点开平方计算方法,其特征在于,该方法具体包括以下步骤:步骤(1):整数在CPU中是以二进制形式进行存储的;先将被开方数k强制转化成32位无符号长整型数据;从该数据的最高位第32位开始判断是否为1,若不是,则判断第31位是否为1,判断位数依次递减,直到判断出该被开方数k为m位二进制数据;步骤(2):判断m为奇数还是偶数;①若m值为奇数,计算x0=2(m‑1)/2+2(m‑3)/2,x0取整后作为牛顿迭代初值;将k左移(31‑m)位,得到扩大了2(31‑m)倍的K值;此时的K值具体为31位的二进制数据,记作k31,X0=2(31‑1)/2+2(31‑3)/2,即初值为49152;②若m值为偶数,计算x0=2m/2,x0定为牛顿迭代初值;将k左移(32‑m)位,得到扩大了2(32‑m)倍的K值;此时的K值具体为32位的二进制数据,记作k32,X0=232/2,即初值为65536;X0为K的牛顿迭代初值;步骤(3):牛顿迭代公式为Xn+1=1/2(Xn+K/Xn);将初值X0代入公式,得到X1;Xn为X0迭代n次后得到的值,Xn+1为X0迭代n+1次后得到的值;步骤(4):判断Xn+1‑Xn的值是否等于0,如果差值大于0,则继续进行步骤(3)迭代;如果Xn+1‑Xn的差值等于0,结束迭代,返回当前Xn作为正平方根值;步骤(5):对于k31进行牛顿迭代得到的平方根值是真正的平方根值扩大了2(31‑m)/2倍的值,将结果乘以10n后再右移(31‑m)/2位即可得到保留了小数点后n位的平方根值;对于k32进行牛顿迭代得到的平方根值是真正的平方根值扩大了2(32‑m)/2倍的值,将结果乘以10n后再右移(32‑m)/2位即可得到保留了小数点后n位的平方根值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410083718.1/,转载请声明来源钻瓜专利网。
- 上一篇:滋阴补肾的中药及其制备方法
- 下一篇:用于系统管理的可伸缩数据采集