哪些Android软件包可用于矢量,标量,矩阵和FP数学?

时间:2012-09-10 23:45:29

标签: android math

建议使用哪些软件包在Android平台上执行复杂的数学运算,如向量乘法,向量转换(int到FP)等。它看起来不像java.lang.math足够坚固。有人建议我查看NDK和一个好的c / c ++ lib或siglib。还有其他建议吗?感谢...

1 个答案:

答案 0 :(得分:1)

去年,我正在阅读a book,其中包括有关SIMD数学的主题。您可能知道,SIMD数学用于加速向量乘法和向量转换过程,我研究了索尼的VectorMath库。

虽然我无意构建处理器昂贵的应用程序,但它使用方便且易于使用。我认为问题在于它实际上是为索尼PS3处理器架构设计的,我不确定它是否可用于ARM芯片组。

以下是链接: Bullet SIMDMath库:http://bullet.svn.sourceforge.net/viewvc/bullet/trunk/Extras/simdmathlibrary/

Bullet VectorMath Library: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相比,Tegra 3中的ARM Cortex-A9现在支持ARM的SIMD扩展-NEON。