-1
我正在尋找一種最佳實踐解決方案,以優化嵌套數組的代碼。來自一個數組的值作爲第二個索引。我認爲目前的代碼不是CPU緩存友好的代碼。我可以使用openmp來優化此代碼的性能嗎?如果是,如果PICK不是很好,那麼最好使用「for」或「sections」10?爲嵌套數組值優化代碼
#define bino4d(a,b,c,d) (base1[a]+base2[b]+base3[c]+base4[d])
static unsigned char _bits_[8] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 };
#define TSTBIT(ch,i) (ch[(i)>>3] & _bits_[(i) & 0x07])
lpmax = (PICK*(PICK - 1)*(PICK - 2)*(PICK - 3))/24;
for (lp = 0; lp < lpmax; lp++)
{
j0 = I[LP4_0[lp]];
j1 = I[LP4_1[lp]];
j2 = I[LP4_2[lp]];
j3 = I[LP4_3[lp]];
ul = j0 + j1 + j2 + j3;
//j0 = LP4_0[lp];
//j1 = LP4_1[lp];
//j2 = LP4_2[lp];
//j3 = LP4_3[lp];
//ul = bino4d(I[j0], I[j1], I[j2], I[j3]);
if (TSTBIT(ToCover, ul)) s4++;
}
什麼I的大小,什麼是LP4_ * – user3528438
LP4_的範圍*範圍等於210爲使該代碼例如PICK = 5 –