作者:
SkyPlus (Sky)
2023-01-26 16:05:05※ 引述《STAV72 (刁民黨黨務主委)》之銘言:
: https://i.imgur.com/NLPJc6B.jpg
: 科學家:讚啦!有用了!
: 教授:很好,讓我們看看是如何作用跟怎麼作用!
: 碼農:讚啦!跑起來了!
: 主管:別再碰它,沒人知道會不會無預警當掉。
: 寫程式真的這麼邪門嗎?
:
https://liuslog.wordpress.com/2014/06/20/0x5f3759df/
1/sqrt(x) 用神秘的數字y=0x5f3759df 帶入:
y+y*(1.5-(x*y^2)/2) 後直接算出來
或是:
https://github.com/golang/go/issues/57741
加入一條特別 instruction 改變 thread 優先等級:
or r1,r1,r1
就可以讓速度快三倍
很多遇到底層 cache / instruction , 或是數學最佳化技巧都很邪門阿
作者:
emptie ([ ])
2023-01-26 16:08:00Fast InvSqrt() 以原理來說就內插法近似
作者:
HotDogCC (0.38別騙)
2023-01-26 16:13:00因為電腦科學是一群人不斷堆疊的成果,越遠離底層越是難以根究問題
作者:
hanmas 2023-01-26 16:13:00第一條看起來就線性近似?
第一個就是牛頓法逼近,只要有個不錯的起始點就能用很少的迭代算出很接近的點,問題是那個詭異的數字不知道怎樣來的,而且算起來還超準,連第二次迭代都不需要
作者:
dklash (劉翰肥宅‧油膩boy)
2023-01-26 16:34:00第一個屌是屌在神秘數字到底哪來的
作者:
LeeXX (理性 但不一定中立)
2023-01-26 16:40:00threading 和沒有threading 的寫法根本兩個世界
作者:
johnny3 (キラ☆)
2023-01-26 16:45:00第一個的作者我記得有解釋那個數字怎麼算出來的
作者:
SPDY (Alex)
2023-01-26 16:49:00// evil floating point bit level hacking// what the fuck?
作者:
b325019 (望月)
2023-01-26 17:02:00註解的wtf應該是後人接受的時候加的
作者: class30183 2023-01-26 17:26:00
好厲害
作者:
qd6590 (說好吃)
2023-01-26 17:31:00這個最厲害的真的是數字哪裏蹦出來的
作者:
seaEPC (沒看見,我沒看見 >_<)
2023-01-26 17:42:00第一個還有後人出論文去推這數字怎麼算的,以及暴力法找是否有更好的數字
作者:
zball (QQ)
2023-01-26 19:18:001/sqrt(x) 那註解的WTF可是有千言萬語在裡面啊...
魔術數字最屌的在於它不是最精確解,很像隨手抓的值但最精確解要暴力解才抓得到,沒人知道魔術數字是怎麼決定的
作者:
SPDY (Alex)
2023-01-26 19:57:00來源已難釐清 應該是算出來的 只是當事人 沒意願公佈或留名