我有一个程序处理多个嵌套循环,在3D域上运行:
unsigned int sX(m_sizeZ*m_sizeY);
unsigned int b(sX+m_sizeZ);
for(unsigned int i(1);i<m_sizeX-1;i++){
for(unsigned int j(1);j<m_sizeY-1;j++){
for(unsigned int k(1);k<m_sizeZ-1;k++){
m_r[b+k]=m_func[b+k]-m_cX*(m_data[b+k-sX]+m_data[b+k+sX]-2.0*m_data[b+k])
-m_cY*(m_data[b+k-m_sizeZ]+m_data[b+k+m_sizeZ]-2.0*m_data[b+k])
-m_cZ*(m_data[b+k-1]+m_data[b+k+1]-2.0*m_data[b+k]);
}
b+=m_sizeZ;
}
b+=2*m_sizeZ;
}
Run Code Online (Sandbox Code Playgroud)
我的数组大小是m_sizeX*m_sizeY*m_sizeZ的两倍.
我以这种方式迭代,因为我不想触及域的边界.
当用(g ++)-msse2 -ftree-vectorizer-verbose = 2编译时,我当然得到多个嵌套循环注释.
有没有办法在没有(或多或少)复杂的检查操作的情况下使用单个循环?
谢谢!
我想使用优化我的代码进行矢量化
-msse2 -ftree-vectorizer-verbose=2.
Run Code Online (Sandbox Code Playgroud)
我有以下简单的代码:
int main(){
int a[2048], b[2048], c[2048];
int i;
for (i=0; i<2048; i++){
b[i]=0;
c[i]=0;
}
for (i=0; i<2048; i++){
a[i] = b[i] + c[i];
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么我会收到这个说明
test.cpp:10: note: not vectorized: not enough data-refs in basic block.
Run Code Online (Sandbox Code Playgroud)
谢谢!
因此,我试图在Laravel 5中获得分页,localhost/ads/1其中包括1代表页面的漂亮网址.
根据我的理解,这样的操作将需要超载AbstractPaginator,或者LengthAwarePaginator,旨在修改Database\Query\Builder.
我是否遗漏了某些内容,绑定或依赖注入,或者是否有可能更改我们想要使用的分页器?