PTT推薦

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

看板C_Chat標題Re: [閒聊] 寫程式真的這麼邪門嗎?作者
SkyPlus
(Sky)
時間推噓15 推:15 噓:0 →:11

※ 引述《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 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.235.116 (臺灣)
PTT 網址

emptie01/26 16:08Fast InvSqrt() 以原理來說就內插法近似

HotDogCC01/26 16:13因為電腦科學是一群人不斷堆疊的成果,越遠離底層越是

HotDogCC01/26 16:13難以根究問題

hanmas01/26 16:13第一條看起來就線性近似?

kaj198301/26 16:22不明覺厲

Gwaewluin01/26 16:22第一個就是牛頓法逼近,只要有個不錯的起始點就能用很

Gwaewluin01/26 16:23少的迭代算出很接近的點,問題是那個詭異的數字不知道

Gwaewluin01/26 16:23怎樣來的,而且算起來還超準,連第二次迭代都不需要

dklash01/26 16:34第一個屌是屌在神秘數字到底哪來的

LeeXX01/26 16:40threading 和沒有threading 的寫法根本兩個世界

johnny301/26 16:45第一個的作者我記得有解釋那個數字怎麼算出來的

lovelylion201/26 16:47那行程式碼註解直接寫wtf lol

SPDY01/26 16:49// evil floating point bit level hacking

SPDY01/26 16:49// what the fuck?

b32501901/26 17:02註解的wtf應該是後人接受的時候加的

class3018301/26 17:26好厲害

qd659001/26 17:31這個最厲害的真的是數字哪裏蹦出來的

seaEPC01/26 17:42第一個還有後人出論文去推這數字怎麼算的,以及暴力法找是

seaEPC01/26 17:42否有更好的數字

zball01/26 19:181/sqrt(x) 那註解的WTF可是有千言萬語在裡面啊...

speedingriot01/26 19:51魔術數字最屌的在於它不是最精確解,很像隨手抓的值

speedingriot01/26 19:52但最精確解要暴力解才抓得到,沒人知道魔術數字是怎

speedingriot01/26 19:52麼決定的

AIRWAY102101/26 19:53要隨手搞出這數字比被隕石打到小指頭還難

SPDY01/26 19:57來源已難釐清 應該是算出來的 只是當事人 沒意願公佈或留名

rickphyman4201/27 03:34真的好猛