Re: [閒聊] 寫程式真的這麼邪門嗎?

作者: 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:00
Fast InvSqrt() 以原理來說就內插法近似
作者: HotDogCC (0.38別騙)   2023-01-26 16:13:00
因為電腦科學是一群人不斷堆疊的成果,越遠離底層越是難以根究問題
作者: hanmas   2023-01-26 16:13:00
第一條看起來就線性近似?
作者: kaj1983   2023-01-26 16:22:00
不明覺厲
作者: Gwaewluin (神無月 孝臣)   2023-01-26 16:22:00
第一個就是牛頓法逼近,只要有個不錯的起始點就能用很少的迭代算出很接近的點,問題是那個詭異的數字不知道怎樣來的,而且算起來還超準,連第二次迭代都不需要
作者: dklash (劉翰肥宅‧油膩boy)   2023-01-26 16:34:00
第一個屌是屌在神秘數字到底哪來的
作者: LeeXX (理性 但不一定中立)   2023-01-26 16:40:00
threading 和沒有threading 的寫法根本兩個世界
作者: johnny3 (キラ☆)   2023-01-26 16:45:00
第一個的作者我記得有解釋那個數字怎麼算出來的
作者: lovelylion2 (麻署鼠)   2023-01-26 16:47:00
那行程式碼註解直接寫wtf lol
作者: 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:00
1/sqrt(x) 那註解的WTF可是有千言萬語在裡面啊...
作者: speedingriot (純樸島民)   2023-01-26 19:51:00
魔術數字最屌的在於它不是最精確解,很像隨手抓的值但最精確解要暴力解才抓得到,沒人知道魔術數字是怎麼決定的
作者: AIRWAY1021 (哇啦嗚嘎阿喔)   2023-01-26 19:53:00
要隨手搞出這數字比被隕石打到小指頭還難
作者: SPDY (Alex)   2023-01-26 19:57:00
來源已難釐清 應該是算出來的 只是當事人 沒意願公佈或留名

Links booklink

Contact Us: admin [ a t ] ucptt.com