看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《tropical72 (藍影)》之銘言: : 本身是用 C language, 近期一些特殊需求, 開始翻 paper, : 將一些數學函式 - 三角,反三角.幕次..etc 想寫得較快, : 目前是用高精度計時器去跑1000次計時,但有時出來效果很不穩 : ( 有時用 math.h 比較快,有時用我寫的比較快) : 後來查一些網頁,大多是從編出來的組語去分析 cycle time. : 謝謝各位的不吝指教,感激不盡! 最近一直在研究 bitwise, math.h 加速等問題 歷經了3天的研究, 最後發現,原來線上都有提供一些 free 的 library, 針對 math.h 在做改善 (也包含提供一些裡面原本沒有的函式, 如 gamma) 雖最後不是用自己寫的 (去測別人寫的和 math.h 裡面的) 不過數值分析的東西倒是看了不少 (power series, nonliear root) 最後附上查閱之相關網址資料供日後有類似需求之版友參考 (1) Bit Twiddling Hacks http://www-graphics.stanford.edu/~seander/bithacks.html 這篇文章在探討 bitwise 操作,裡面有提出許多平常運算加速之方式, 但建議要用的話還是包成 function 或 marco 再使用, 不然會看不懂。 (2) Fast and accurate sine/cosine http://www.devmaster.net/forums/showthread.php?t=5784 這篇原po主要討論 sin/cos 之加速,裡面的回文內容我覺得相當充實, 其中 1F-Nick 說明包含了以 taylor series 做分析。 (22F-tbp 是用什麼指令我又看不懂了..) 另 29F-Groove 也提供了他用的數學函式連結 - OpenGL (Open GL 裡的數學函式會比 math.h 快嗎?會的話可以只裝裡面的數學函式嗎?) 其餘的怕流水帳過長, 就不一一列表了。 (3) A Guide to Approximations http://www.ganssle.com/approx/approx.pdf 這篇文章我覺得寫得相當淺顯易懂, 適合初學者看, 裡面也有分析精度之問題。 (4) fdlibm http://www.netlib.org/fdlibm/ 這裡幾乎包含所有 math.h 的實做, 甚至優化 最後我幾乎只看這裡 (5) 其它相關文獻介紹 再列二個我覺得質量還不錯的研究 Elementary Functions and Calculators http://0rz.tw/35BdF (這個太長不得不用縮的,pdf檔) A Fast, Vectorizable Algorithm for Producing Single-Precision Sine-Cosine Pairs http://arxiv.org/PS_cache/cs/pdf/0406/0406049v1.pdf 最後奉上十二萬分謝意 感謝 purpose 與 ericinttu 協助 感激不盡。 -- YouLoveMe() ? LetItBe() : LetMeFree(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.142
purpose:你一下就找到這麼多資料,也蠻厲害的。 12/06 15:56
tropical72:是您方向給得好 :) 12/06 15:57
※ 編輯: tropical72 來自: 180.177.76.142 (12/06 15:58)
ericinttu:變高手了 XD 12/06 17:02
cutecpu:推 12/06 17:32
xatier:push! 12/06 19:29