无意中发现了一个高性能sqrt算法。
此算法来源于Quake-III Arena (雷神之锤3),它是90年代的经典游戏之一。
后来,QUAKE的开发商遵守GPL协议,公开了QUAKE-III的源代码,让世人有幸目睹Carmack传奇的3D引擎的源码。

float Q_rsqrt( float number )
{long i;float x2, y;const float threehalfs = 1.5F;x2 = number * 0.5F;y   = number;i   = * ( long * ) &y;   // evil floating point bit level hackingi   = 0x5f3759df - ( i >> 1 ); // what the fuck?y   = * ( float * ) &i;y   = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration// y   = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed#ifndef Q3_VM#ifdef __linux__assert( !isnan(y) ); // bk010122 - FPE?#endif#endifreturn y;
}

Quake-III Arena (雷神之锤3).what the fuck?高性能sqrt算法相关推荐

  1. 雷神之锤3快速计算算术平方根倒数算法中魔法数字的另一种求法(1)

    对于雷神之锤3中快速计算算术平方根倒数算法中魔法数字的真正来源一直是个悬案. 本人对此进行了一番研究,有幸参悟其中奥秘,特分享给大家. 本人不爱码字,直接上图 上图中代码出自雷神之锤3,本人对其中魔法 ...

  2. 雷神之锤Live Review and Rant-为什么这很有趣?

    So I installed and have been playing QuakeLive. Here's the Review part. It's fun. It's Quake. Fast, ...

  3. Science最新:DeepMind部署自学AI,攻陷FPS“雷神之锤”

    大数据文摘编辑部出品 用AI攻占了国际象棋和围棋高地之后,DeepMind在第一人称射击游戏(FPS)上也有了新进展. 1997年5月"深蓝"击败国际象棋世界冠军卡斯巴罗夫,有玩家 ...

  4. linux运行雷神之锤,Ubuntu18.04下可以完美运行Quake3..

    其实很早就知道Linux下面可以跑Quake3, 但是一直没有付诸行动, 在硬盘上躺了很多年的Quake III Arena, 和Brood一起从来不舍得删, 昨天终于想起来试试. 安装很简单, 但是 ...

  5. [开源]quakeIII(雷神之锤3)源码

    来源:http://www.down100.cn/Item/53590.aspx 下载地址:http://www.down100.cn/Common/ShowDownloadUrl.aspx?urli ...

  6. QUAKE 3源代码评测:架构

    QUAKE 3源代码评测:架构(第1部分,共5部分)>> 由于我在下一个合同前一个星期,我决定完成我的"循环ID".后末日,末日iPhone,Quake1,Quake2 ...

  7. [OpenGL(C++)] - (开源)3D 游戏界的大牛人 John Carmack 终于放出quakeIII(雷神之锤3)的源代码...

    来源:http://www.down100.cn/Item/53590.aspx 下载地址:http://www.down100.cn/Common/ShowDownloadUrl.aspx?urli ...

  8. 【转】3D之神JohnCarmack

    John Carmack, 如果你问比尔.盖茨,"你最欣赏的程式师有哪些?",在他的回答中,肯定会出现JohnCarmack(卡马克)的名字.(PS:论坛争论很凶的DX和OPENG ...

  9. 【历史上的今天】8 月 20 日:两位传奇程序员的诞生日!

    透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 8 月 20 日,在科技历史上,有两位对着后世软件工程和电子游戏行业影响深远的人诞生,谷歌也在去年发布了 Pixel ...

最新文章

  1. MySQL 关于毫秒的处理
  2. 数位dp:Educational Codeforces Round 53 (Rated for Div. 2) E. Segment Sum
  3. MSEG和EKBE的区别在哪里
  4. 【bzoj2245】[SDOI2011]工作安排 费用流
  5. 前端面试常见HTML问题(一)
  6. 端智能揭秘|促使双十一GMV大幅提升,手淘用了什么秘密武器?
  7. javaweb成长之路:SSM框架搭建
  8. python表单_python-基于添加表单的Django编辑表单?
  9. pom中导入spingside包
  10. windows远程Linux
  11. scala 函数定义
  12. Stata 16(统计学软件) v16.0中文版安装教程
  13. 高低压配电柜温度在线监测系统解决方案
  14. Python计算中国GDP在那一年超越美国GDP(假设)
  15. Illustrator CS6中文版从新手到高手pdf
  16. dotnet core error 0x80070057
  17. 使用google.zxing制作条形码和二维码
  18. 计算机网络工程的话术,话术工具电脑版
  19. 维基解密网店被封,呼吁全球抵制Coinbase
  20. ide 与 leetcode 运行结果不一样

热门文章

  1. python 异常 ValueError setting an array element with a sequence
  2. APM 学习 13 --- ArduPilot 遥控器 RC 发射器和接收器
  3. 四轴飞行器F450+Futaba 14SG+好盈电调油门行程校准
  4. python json.dumps()有中文时乱码
  5. 智慧厂务能源管理系统(FMCS)
  6. mysql flaskalchemy_Flask使用Flask-SQLAlchemy操作MySQL数据库
  7. html 设置最小宽度,总结css中最小宽度min-width和最大宽度max-width属性的使用方法...
  8. led可见光通信直方图均衡matlab,基于高通滤波和直方图均衡的钢轨裂纹红外图像增强技术...
  9. Python入门程序【十】
  10. 成都信息工程大学计算机学院复试指南二