是否可以将结果存储在vDSP框架中的一个输入向量中

use*_*607 5 objective-c accelerate-framework vdsp

在Accelerate Framework的vDSP功能中,所有功能都要求您输入结果向量.如果我不再需要原始输入向量中的任何内容,将输入向量(或其中一个输入向量)作为结果向量传递是否正确?

我的意思是:

vDSP_vsadd(input_vector,1,scalar_addition,input_vector,1,length);
Run Code Online (Sandbox Code Playgroud)

这将采用input_vector并向所有元素添加scalar_addition.结果将存储在input_vector中.

Ste*_*non 5

vDSP 中的简单向量操作都可以就地正常工作(只要它们是严格就地的;例如,您不能&input_vector[length/2]用于输出并期望获得有意义的结果)。事实上,就地使用它们通常会提供更好的性能,因为它可以减少缓存压力。

一些更复杂的 vDSP 操作不支持带有一个或多个参数的就地操作;这应该在 vDSP 参考指南中提到。

  • 是的,“就地”是指您所描述的;它应该为简单的函数明确记录,但不是。 (2认同)