【发布时间】:2013-11-05 22:48:34
【问题描述】:
我有一个 for 循环来做索引:
for (int i=0; i<N; i++){
a[i] = b[c[i]]
}
c 是感兴趣的索引,是 int *,而 b 和 a 是 float * 和操纵值。
但是,这需要很长时间(而且不能花那么长时间)。我想要一些矢量化版本,很可能在 BLAS/LAPLACK/etc 中找到。
我正在寻找nested_indexing(float * output_vector, float * input_vector, int * input_indices)。
我试过查看docs,但没有找到任何东西。
【问题讨论】:
-
您需要的是收集指令 - stackoverflow.com/questions/16193434/…。不确定是否有支持库
-
你看过 LAPACK 的
?lapmt和?laswp吗?他们做了类似的事情(如果您不介意矩阵是就地置换而不是复制的事实。)
标签: c performance indexing lapack blas