我理解的GCD是如何工作的,如下一个简单的例子:GCD测试 - 测试循环语句之间的依赖关系
for(i=1; i<=100; i++)
{
X[2*i+3] = X[2*i] + 50;
}
我们首先将其转换为以下形式: X[a*i + b]
和X[c*i + d]
a=2
,b=3
,c=2
,d=0
和GCD(a,c)=2
和(d-b)
是-3
。由于2
不会将-3
分开,所以不存在依赖关系。
但是我们怎么能在双重嵌套循环上做这个GCD测试呢?
例如:
for (i=0; i<10; i++){
for (j=0; j<10; j++){
A[1+2*i + 20*j] = A[2+20*i + 2*j);
}
}