【发布时间】:2013-11-09 18:49:02
【问题描述】:
循环很简单,但我似乎无法使用 STL 算法来给出下面相同的嵌套循环。
const int a_size = 5; // input
const int c_size = 2; // output
const int b_size = a_size * c_size; // multipliers
std::vector<float> a(a_size);
std::vector<float> b(b_size);
std::vector<float> c(c_size);
// fill a and b with data
// this nested loop
for(int i = 0; i<c_size; i++) {
c[i] = 0.0;
for(int k = 0; k<a_size; k++) {
c[i] += (a[k] * b[i*a_size+k]);
}
c[i] = sigmoid(c[i]);
}
我想这样做的原因是为了 Boost.Compute 库,它会使用类似 STL 的算法(std::transform、std::for_each 等)在 GPU 上进行计算。
【问题讨论】:
标签: c++ algorithm for-loop vector stl