4

如果我想对向量做一些代数或计算 ffts,Accelerate 框架很好。但是,除非我遗漏了什么,否则如果我想计算向量中值的余弦(或任何其他三角函数),则无法通过加速来做到这一点。此外,vecLib 在 iphone 上被标记为不可用,并且 vDSP 缺少诸如平方根、对数、三角函数之类的东西......

我真的正确吗?o_O

如果我是,如何加快这些缺失函数的计算并利用加速正在使用的设施?


答案:

正如 MrMage 下面所说,vv...Accelerate 中有一系列可用的功能。这些包括三角、对数、根等。但不支持复数。谢谢MrMage!

4

2 回答 2

3

根据 iOS 5.1 文档,至少vvsinf(以及来自 vecLib 的类似功能)在 iOS 5.0 及更高版本中可用。我想这应该可以满足您的需求。

于 2012-03-18T11:53:36.067 回答
0

我对文档的阅读告诉我 Accelerate/vfp.h 存在于 iOS 上,并且 trig 函数在那里。但是我没有尝试使用它,所以我会继续假设我错了。

事实证明,快速触发实现并不是很聪明。有一个数学东西叫做泰勒展开式,大致上说:

sin(theta+epsilon) = sin(theta) + x*epsilon + small corrections

所以这意味着你可以建立一个查找表,对于 theta 的键值,记录 sin(theta) 和 x。然后你做上面的等式,这真的很快(看看 Accelerate 的 Fused Add and Multiply)。

于 2012-03-18T09:56:26.717 回答