<分区>
我这里有这个小循环,我想知道我是否犯了一些大错误,性能明智。
例如,有没有办法以不同的方式重写部分内容,使矢量化成为可能(假设 GCC4.8.1 和所有矢量化友好标志都已启用)?
这是向列表传递数字 (const float name_of_var[]) 的最佳方式吗?
代码的想法是获取一个 vector (在数学意义上,不一定是 std::vector)(未排序的数字)y
和两个绑定(bind)值 ( ox[0]<=ox[1]
) 并存储在整数 vector 中 rdx
索引i
y
的条目满足 ox[0]<=y[i]<=ox[1].
rdx
可以包含 m
元素和 y
有能力n
和 n>m
.如果超过m
y[i]
的值满足 ox[0]<=y[i]<=ox[1] 那么代码应该返回第一个 m
提前致谢
void foo(const int n,const int m,const float y[],const float ox[],int rdx[]){
int d0,j=0,i=0;
for(;;){
i++;
d0=((y[i]>=ox[0])+(y[i]<=ox[1]))/2;
if(d0==1){
rdx[j]=i;
j++;
}
if(j==m) break;
if(i==n-1) break;
}
}