目前分類:常見關於數 (5)
- Jul 13 Fri 2012 02:18
[數值分析] 數值查詢網站
- Apr 26 Thu 2012 21:11
[C&++] 完全數問題
- Jul 27 Wed 2011 13:52
[C&++] 分數化循環小數
- Apr 29 Fri 2011 12:12
[C] InvSqrt (平方根倒數)
這是個讓 CS 領域驚豔的計算方式,同時裡面使用的 magic number - 0x5f3759df 拿去 google 可得到一狗票的東西,本文並不進行 magic number 之推導,整個推導最詳盡的,應是 這篇pdf 。一開始的原始碼長得像這樣 (轉自 wiki)
float Q_rsqrt( float number ) { long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; // evil floating point bit level hacking [sic] i = 0x5f3759df - ( i >> 1 ); // what the fuck? [sic] y = * ( float * ) &i; y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed return y; }
- Dec 06 Mon 2010 16:20
[C數] 優化版math.h
這陣子研究 math.h 與 bitwise 優化問題,找了很多資料後,發現其實別人寫好的 library 實在也很多,原本是要優化三角函式,最後還是只把觀念帶走,下次有空的時候再實際 coding 吧。以下為我找到的參考資料。
(1) Bit Twiddling Hacks