1

我有一个 for 循环来做索引:

for (int i=0; i<N; i++){
    a[i] = b[c[i]]
}

c是感兴趣的指标,并且是int *,而bafloat *以及操纵值。

但是,这需要很长时间(而且不能花那么长时间)。我想要一些矢量化版本,很可能在 BLAS/LAPLACK/etc 中找到。

我正在寻找nested_indexing(float * output_vector, float * input_vector, int * input_indices)

我试过浏览文档,但没有找到任何东西。

4

1 回答 1

1

vDSP_vgathr正是这样做的。它需要两个float *和一个int *。它相当于for (i=0; i<N; i++) a[i] = b[c[i]].

他们使用的措辞是

使用向量 B 的元素作为索引,将向量 A 的选定元素复制到向量 C 中的顺序位置

也许它也可能是顺序索引。我注意到找到这些晦涩的功能最困难的部分是找到在搜索中使用的正确单词。

于 2013-11-06T15:22:56.640 回答