/* Generated from ../../../git/cloog/test/cholesky2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.11s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i) { hash(3); hash(i); } #define S4(i,j) { hash(4); hash(i); hash(j); } #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } #define S6(i,j) { hash(6); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c1, c2, c3; /* Original iterators. */ int i, j, k; if (M >= 2) { for (c2=1;c2<=M-1;c2++) { S1(c2) ; for (c3=c2+1;c3<=M;c3++) { S4(c2,c3) ; } } S1(M) ; } if (M == 1) { S1(1) ; } if (M >= 2) { S3(1) ; } if (M >= 3) { S6(1,2) ; for (c2=3;c2<=M;c2++) { S6(1,c2) ; for (i=2;i<=c2-1;i++) { S5(i,c2,1) ; } } } if (M == 2) { S6(1,2) ; } for (c1=3;c1<=3*M-7;c1++) { if ((c1+2)%3 == 0) { i = (c1+2)/3 ; S3((c1+2)/3) ; } if (c1%3 == 0) { c2 = (c1+3)/3 ; i = (c1+3)/3 ; S2((c1+3)/3,c1/3) ; } c2 = floord(c1+6,3) ; if ((c1+1)%3 == 0) { i = (c1+1)/3 ; S6((c1+1)/3,c2) ; } if (c1%3 == 0) { S2(c2,c1/3) ; } for (c2=ceild(c1+7,3);c2<=M;c2++) { if ((c1+1)%3 == 0) { i = (c1+1)/3 ; S6((c1+1)/3,c2) ; } if (c1%3 == 0) { S2(c2,c1/3) ; } if ((c1+1)%3 == 0) { c3 = (c1+1)/3 ; for (i=ceild(c1+4,3);i<=c2-1;i++) { k = (c1+1)/3 ; S5(i,c2,(c1+1)/3) ; } } } } for (c1=max(3*M-6,3);c1<=3*M-4;c1++) { if ((c1+2)%3 == 0) { i = (c1+2)/3 ; S3((c1+2)/3) ; } if (c1%3 == 0) { c2 = (c1+3)/3 ; i = (c1+3)/3 ; S2((c1+3)/3,c1/3) ; } for (c2=ceild(c1+4,3);c2<=M;c2++) { if ((c1+1)%3 == 0) { i = (c1+1)/3 ; S6((c1+1)/3,c2) ; } if (c1%3 == 0) { S2(c2,c1/3) ; } } } if (M >= 2) { c1 = 3*M-3 ; j = M-1 ; S2(M,M-1) ; } if (M >= 1) { c1 = 3*M-2 ; S3(M) ; } }