楼主:
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来源已难厘清 应该是算出来的 只是当事人 没意愿公布或留名