Objective c 高效的NSArray和浮点*转换

Objective c 高效的NSArray和浮点*转换,objective-c,floating-point,nsarray,Objective C,Floating Point,Nsarray,我知道可以使用 for (int i=0; i<[array count]; i++) x[i] = [[array objectAtIndex:i] floatValue]; for (int i=0; i<N; i++) [array addObject:[NSNumber numberWithFloat:x[i]]]; 但这两种方法都用于速度慢且效率低的循环。我想看看x=[array toFloatArray]。几乎任何使用图像/任何与iOS相关且需要较低级别库BLAS、L

我知道可以使用

for (int i=0; i<[array count]; i++) x[i] = [[array objectAtIndex:i] floatValue];

for (int i=0; i<N; i++) [array addObject:[NSNumber numberWithFloat:x[i]]];

但这两种方法都用于速度慢且效率低的循环。我想看看x=[array toFloatArray]。几乎任何使用图像/任何与iOS相关且需要较低级别库BLAS、LAPACK等的内容都需要此转换,最好加快转换速度。

无论您做什么,或涉及哪个库,都可以从NSArray中的NSNumbers获取浮动,没有办法绕过或多或少与您已经展示的代码类似的代码

如果您想提高速度,请使用原始C阵列并自己管理它们


如果您正在使用的代码提供或要求NSArrays的NSNUMBERES包含浮点数,而不是原始C数组,那么您无能为力。

那么您认为x=[array toFloatArray]不会在数组上迭代吗?似乎你更想节省键入。我知道矢量化代码(如BLAS)有好处,我猜这样的函数也会矢量化。矢量化代码不是编译器优化吗?如果这样做对任意数组没有帮助,只针对循环等进行编码。如果是编译器优化,为什么存在BLAS和LAPACK等库?这就是我想要模仿的。我对他们一无所知。我认为最好的方法是快速枚举。