快速平方根算法的javascript实现
2015-09-10 16:10
447 查看
前几天看见了一个来自雷神之槌的平方根源码,原理多方有介绍,不赘述。
源码是c语言写的,我思考后发现这样的算法在javascript中也是可以完成的。
测试:
虽然结果还是比系统库慢,而且精度本来就低。不过我很满意。
源码是c语言写的,我思考后发现这样的算法在javascript中也是可以完成的。
function InvSqrt(x){ var h=0.5*x; var b=new ArrayBuffer(4); var d=new DataView(b,0); d.setFloat32(0,x); var i=d.getInt32(0); i=0x5f375a86-(i>>1); d.setInt32(0,i); var r=d.getFloat32(0); r=r*(1.5-h*r*r); return r; }
测试:
console.time("t"); for(var i=0;i<10000000;i++){ InvSqrt(i); } console.timeEnd("t"); console.time("t"); for(var i=0;i<10000000;i++){ 1/Math.sqrt(i); } console.timeEnd("t"); VM2303:18 t: 33438.000ms VM2303:24 t: 16720.000ms
虽然结果还是比系统库慢,而且精度本来就低。不过我很满意。
相关文章推荐
- JavaScript设计模式——前奏(封装和信息隐藏)
- js代码学习
- js上传图片预览
- Rails, ActiveRecord::Base.include_root_in_json
- 利用JavaScript打印出Fibonacci数(不使用全局变量打印斐波那契数)
- javascript事件
- 如何检测 JavaScript 中的自定义全局变量
- js取checkbox选中的元素
- 通过使用的新的浏览器API过滤多余节点
- Extjs6 设置Store、Ajax、form的请求方式(GET、POST)
- jS 加载对页面完成的影响介绍
- javascript作用域
- JS文件的连接压缩
- CKEditor+CKFinder+jsp的整理
- JavaScript语法结构
- JavaScript Dom
- javascript函数
- js动态修改select和checkbox
- js图片卷帘门导航菜单特效代码分享
- javascript操作json