建議在Android平臺上執行復雜的數學運算,如向量乘法,向量轉換(int到FP)等。它看起來不像java.lang.math足夠強壯。有人建議我看看NDK和一個好的c/C++ lib或siglib。還有其他建議嗎?謝謝...什麼Android包可用於矢量,標量,矩陣和FP數學?
回答
去年,我讀a book,其中包括一個關於SIMD數學的話題。正如你可能知道的,SIMD數學用於加速矢量乘法和矢量轉換過程,我查看了Sony的VectorMath庫。
雖然我沒有打算構建處理器昂貴的應用程序,但它使用起來很方便,也很容易。我認爲問題在於它實際上是爲索尼PS3處理器架構設計的,我不確定它是否可用於ARM芯片組。
這裏是鏈接: 子彈SIMDMath庫:http://bullet.svn.sourceforge.net/viewvc/bullet/trunk/Extras/simdmathlibrary/
子彈VectorMath庫:http://bullet.svn.sourceforge.net/viewvc/bullet/trunk/Extras/vectormathlibrary/
編輯
從維基百科的ARM架構頁面直接引用:
高級SIMD (NEON) 先進的SIMD擴展(又名NEON或MPE媒體處理引擎)是一種組合的64位和128位單指令多數據(SIMD)指令集,爲媒體和信號處理應用程序提供標準化加速。 NEON包含在所有Cortex-A8器件中,但在Cortex-A9器件中是可選的[33]。 NEON可以在運行頻率爲10 MHz的CPU上執行MP3音頻解碼,並且可以以不超過13 MHz的頻率運行GSM自適應多速率(AMR)語音編解碼器。它具有全面的指令集,獨立的寄存器文件和獨立的執行硬件。[34] NEON支持8位,16位,32位和64位整數和單精度(32位)浮點數據,並可在SIMD操作中處理音頻和視頻處理以及圖形和遊戲處理。在NEON中,SIMD同時支持多達16個操作。 NEON硬件共享與VFP中使用的相同的浮點寄存器。諸如ARM Cortex-A8和Cortex-A9等設備支持128位向量,但一次只能執行64位,[32]而較新的Cortex-A15設備可以一次執行128位。
這意味着即使沒有SIMD指令的擔保,他們可能會有。
而且Tegra系列:
相比Tegra 2的,在ARM Cortex-A9s中的Tegra 3現在支持ARM的SIMD擴展明麗。
- 1. 基於矩陣和矢量
- 2. 矢量數學和矩形
- 3. 矢量爲矩陣座標
- 4. 用於矩陣和矢量操作的快速,便攜式,C++數學庫
- 5. 矩陣是否包含矢量?
- 6. C遊戲中最快的矢量/矩陣數學庫是什麼?
- 7. 使用R數學獨立庫的C++中的矩陣/矢量?
- 8. SAS相當於R矢量到矩陣
- 9. 用於向量和矩陣計算的高性能數學庫
- 10. 用矢量乘以矩陣陣列
- 11. 矢量化矩陣乘法
- 12. MATLAB:矩陣到矢量行
- 13. 矢量矩陣乘法
- 14. 2d矩陣到矢量
- 15. 矩陣乘矢量乘法
- 16. 矢量分塊矩陣
- 17. 從矢量矩陣生成
- 18. XNA,矢量數學和GPU
- 19. 選擇從矩陣和矢量
- 20. 矢量或和矩陣運算
- 21. 矢量和嵌套矩陣乘法
- 22. iOS矩陣和矢量操作
- 23. Opencv乘標量和矩陣
- 24. OpenCV乘標量和矩陣
- 25. 如何實現矢量(矢量數學)?
- 26. 從MATLAB中的矩陣和矢量創建三維矩陣
- 27. 矩陣*向量與向量*矩陣相比意味着什麼
- 28. 用矢量乘以矩陣的行嗎?
- 29. 在犰狳中用矢量除矩陣
- 30. 什麼是Matlab矩陣矢量化的C#等效?
謝謝穆罕默德 - 我會看看這些庫... –
再次感謝穆罕默德您的答案 - 這需要時間給這種完整和徹底的評論,我感謝您的服務。 –