查看“︁Testwiki:优良条目/平方根倒數速算法”︁的源代码
←
Testwiki:优良条目/平方根倒數速算法
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[File:Reflection for Semicircular Mirror.svg|left|border|190x190px]] '''[[平方根倒数速算法|-{zh-cn:平方根倒数速算法; zh-hk:反平方根快速演算法; zh-tw:反平方根快速演算法;}-]]'''是用于快速计算<math>\scriptstyle x^{-1/2}</math>(即<math>\scriptstyle x</math>的[[平方根]]的[[倒数]],在此<math>\scriptstyle x</math>需取符合[[IEEE 754]]标准格式的32位[[浮点数]])的一种[[算法]]。此算法最早可能是于90年代前期由[[硅谷图形公司|SGI]]所发明,后来则于1999年在《[[雷神之锤III竞技场]]》的源代码中应用,但直到2002-2003年间才在[[Usenet]]一类的公共论坛上出现。这一算法的优势在于减少了求平方根倒数时浮点运算操作带来的巨大的[[算法#复杂度|运算耗费]],而在[[计算机图形学|-{zh-cn:计算机图形学; zh-hk:電腦圖學; zh-tw:電腦圖學;}-]]领域,若要求取[[照明]]和[[浓淡处理|投影]]的[[波动角度]]与[[反射 (计算机图形学)|反射]]效果,就常需计算平方根倒数。此算法首先接收一个32位带符浮点数,然后将之作为一个32位整数看待,以将其向右进行一次[[逻辑移位]]的方式将之取半,并用[[十六进制|十六-{zh-cn:进制; zh-hk:進制; zh-tw:進位;}-]]“-{zh-hans:魔术数字;zh-hant:魔術數字}-”<tt>0x5f3759df</tt>减之,如此即可得对输入的浮点数的平方根倒数的首次近似值;而后重新将其作为浮点数,以[[牛顿法]]反复迭代,以求出更精确的近似值,直至求出符合精确度要求的近似值。在计算浮点数的平方根倒数的同一精度的近似值时,此算法比直接使用浮点数除法要快四倍。此算法最早被认为是由[[约翰·卡马克]]所发明,但后来的调查显示,该算法在这之前就于计算机图形学的-{zh-cn:硬件; zh-hk:硬件; zh-tw:硬體;}-与-{zh-cn:軟件; zh-hk:軟件; zh-tw:軟體;}-领域有所应用,如SGI和[[3dfx Interactive|3dfx]]就曾在产品中应用此算法。而就现在所知,此算法最早由Gary Tarolli在SGI Indigo的开发中使用。虽说随后的相关研究也提出了一些可能的来源,但至今为止仍未能确切知晓算法中所使用的特殊常数的起源。
返回
Testwiki:优良条目/平方根倒數速算法
。
导航菜单
个人工具
登录
命名空间
项目页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息