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