加速框架ios:最快的毕达哥伦计算

加速框架ios:最快的毕达哥伦计算,ios,matrix,accelerate-framework,pythagorean,Ios,Matrix,Accelerate Framework,Pythagorean,所以我有两个矩阵:每个是100x100 我希望计算第三个矩阵:M3[I]=sqrt(M1[I]^2+M2[I]^2) 很明显,我可以做FORLOPS,但我肯定会有更快的 我深入研究了accelerate框架,在Linpack世界中迷失了方向 有什么能帮我走上正轨的吗 谢谢加速框架是个好主意 您可以使用类似于一次对矩阵的一列进行操作的函数,将结果放入相应的M3列中。您可能需要生成两个结果矩阵(一个是M1^2,另一个是M2^2),然后通过添加具有调用的列来添加它们,从而形成正确的M3结果矩阵,同样,

所以我有两个矩阵:每个是100x100

我希望计算第三个矩阵:M3[I]=sqrt(M1[I]^2+M2[I]^2)

很明显,我可以做FORLOPS,但我肯定会有更快的

我深入研究了accelerate框架,在Linpack世界中迷失了方向

有什么能帮我走上正轨的吗


谢谢

加速框架是个好主意

您可以使用类似于一次对矩阵的一列进行操作的函数,将结果放入相应的M3列中。您可能需要生成两个结果矩阵(一个是M1^2,另一个是M2^2),然后通过添加具有调用的列来添加它们,从而形成正确的M3结果矩阵,同样,每次可以操作一列


有一些示例代码(显示如何添加两个向量等)。

加速框架是一个好主意

您可以使用类似于一次对矩阵的一列进行操作的函数,将结果放入相应的M3列中。您可能需要生成两个结果矩阵(一个是M1^2,另一个是M2^2),然后通过添加具有调用的列来添加它们,从而形成正确的M3结果矩阵,同样,每次可以操作一列


有示例代码(显示如何添加两个向量等)。

我认为最快的方法是使用

VDSPvpythG 向量毕达哥拉斯;单精度

从A中减去向量C并将差值平方,从B中减去向量D并将差值平方,将两组差值平方相加,然后将和的平方根写入向量E


显然,对于C和D,要传递零向量。

我认为最快的方法是使用

VDSPvpythG 向量毕达哥拉斯;单精度

从A中减去向量C并将差值平方,从B中减去向量D并将差值平方,将两组差值平方相加,然后将和的平方根写入向量E


显然,C和D的向量为零。

谢谢你给我指出了正确的方向。似乎任何vDSP函数都不能在int上工作,我必须进行到float的转换。是这样吗?是这样-您可以使用另一个vDSP函数(如vDSP_vflt32)来进行转换。感谢您为我指明了正确的方向。似乎任何vDSP函数都不能在int上工作,我必须进行到float的转换。对吗?没错-您可以使用另一个vDSP函数(如vDSP_vflt32)来进行转换。