次のネストされたループ計算があります。
int aY=a*Y,aX=a*X;
for(int i=0; i<aY; i+=a)
{
for(int j=0; j<aX; j+=a)
{
xInd=i-j+offX;
yInd=i+j+offY;
if ((xInd>=0) && (xInd<X) &&
(yInd>=0) && (yInd<Y) )
{
z=yInd*X+xInd;
//use z
}
}
}
i
、、j
への依存xInd
をできるだけなくしたいyInd
。言い換えると、ループの実行中に受け取るすべての値を「トラバース」したいのですが、変数、、、および-z
を支援する必要はありません。または、少なくとも最小限の数の計算が必要です(最も重要なのは乗算がないことです)。どうやってやるの?ループをより効率的にするための可能な方法に関する他のヒントを歓迎します。ありがとう!i
j
xInd
yInd