精華區beta C_Chat 關於我們 聯絡資訊
※ 引述《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 , 或是數學最佳化技巧都很邪門阿 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.235.116 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1674720308.A.9CD.html
emptie: Fast InvSqrt() 以原理來說就內插法近似 01/26 16:08
HotDogCC: 因為電腦科學是一群人不斷堆疊的成果,越遠離底層越是 01/26 16:13
HotDogCC: 難以根究問題 01/26 16:13
hanmas: 第一條看起來就線性近似? 01/26 16:13
kaj1983: 不明覺厲 01/26 16:22
Gwaewluin: 第一個就是牛頓法逼近,只要有個不錯的起始點就能用很 01/26 16:22
Gwaewluin: 少的迭代算出很接近的點,問題是那個詭異的數字不知道 01/26 16:23
Gwaewluin: 怎樣來的,而且算起來還超準,連第二次迭代都不需要 01/26 16:23
dklash: 第一個屌是屌在神秘數字到底哪來的 01/26 16:34
LeeXX: threading 和沒有threading 的寫法根本兩個世界 01/26 16:40
johnny3: 第一個的作者我記得有解釋那個數字怎麼算出來的 01/26 16:45
lovelylion2: 那行程式碼註解直接寫wtf lol 01/26 16:47
SPDY: // evil floating point bit level hacking 01/26 16:49
SPDY: // what the fuck? 01/26 16:49
b325019: 註解的wtf應該是後人接受的時候加的 01/26 17:02
class30183: 好厲害 01/26 17:26
qd6590: 這個最厲害的真的是數字哪裏蹦出來的 01/26 17:31
seaEPC: 第一個還有後人出論文去推這數字怎麼算的,以及暴力法找是 01/26 17:42
seaEPC: 否有更好的數字 01/26 17:42
zball: 1/sqrt(x) 那註解的WTF可是有千言萬語在裡面啊... 01/26 19:18
speedingriot: 魔術數字最屌的在於它不是最精確解,很像隨手抓的值 01/26 19:51
speedingriot: 但最精確解要暴力解才抓得到,沒人知道魔術數字是怎 01/26 19:52
speedingriot: 麼決定的 01/26 19:52
AIRWAY1021: 要隨手搞出這數字比被隕石打到小指頭還難 01/26 19:53
SPDY: 來源已難釐清 應該是算出來的 只是當事人 沒意願公佈或留名 01/26 19:57
rickphyman42: 真的好猛 01/27 03:34