我有一个for循环来做索引:
for (int i=0; i<N; i++){
a[i] = b[c[i]]
}
c
是感兴趣的指数,是int *
的,而b
和a
是float *
和操纵的值。
但是,这需要很长时间(而且不会花那么长时间)。我想要一些矢量化版本,最有可能在 BLAS/LAPLACK/等中找到。
我正在寻找nested_indexing(float * output_vector, float * input_vector, int * input_indices)
.
我尝试查看文档,但没有找到任何东西。
vDSP_vgathr
正是这样做的。它需要两个float *
和一个int *
。它相当于 for (i=0; i<N; i++) a[i] = b[c[i]]
.
他们使用的措辞是
使用向量 B 的元素作为索引,将向量 A 的选定元素复制到向量 C 中的顺序位置
也许也可以是顺序索引。我注意到,找到这些晦涩难懂的功能最困难的部分是找到在搜索中使用的正确单词。