| /* Generated from ../../../git/cloog/test/vivien2.cloog by CLooG 0.14.0-76-gef19709 gmp bits in 0.58s. */ | 
 | 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 n) | 
 | { | 
 |   /* Scattering iterators. */ | 
 |   int p1, p2, p3; | 
 |   /* Original iterators. */ | 
 |   int i, j, k; | 
 |   for (p1=-54*n+4;p1<=4;p1++) { | 
 |     if (p1%2 == 0) { | 
 |       i = (p1-2)/2 ; | 
 |       S1((p1-2)/2) ; | 
 |     } | 
 |   } | 
 |   S3(1) ; | 
 |   S4(1,2) ; | 
 |   S1(2) ; | 
 |   S6(1,2) ; | 
 |   for (p1=7;p1<=9;p1++) { | 
 |     for (p2=ceild(-p1+2,4);p2<=-1;p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       i = (p1-2)/2 ; | 
 |       S1((p1-2)/2) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       j = (p1-2)/2 ; | 
 |       S6(1,(p1-2)/2) ; | 
 |     } | 
 |     if ((p1+1)%2 == 0) { | 
 |       i = (p1-3)/2 ; | 
 |       S2((p1-3)/2,1) ; | 
 |     } | 
 |   } | 
 |   S4(2,3) ; | 
 |   S4(1,4) ; | 
 |   S5(2,3,1) ; | 
 |   S6(2,3) ; | 
 |   S1(4) ; | 
 |   S6(1,4) ; | 
 |   for (p1=11;p1<=12;p1++) { | 
 |     p2 = floord(-p1+5,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     for (p2=ceild(-p1+6,4);p2<=-1;p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       j = (p1-4)/2 ; | 
 |       S6(2,(p1-4)/2) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       i = (p1-2)/2 ; | 
 |       S1((p1-2)/2) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       j = (p1-2)/2 ; | 
 |       S6(1,(p1-2)/2) ; | 
 |     } | 
 |     if ((p1+1)%2 == 0) { | 
 |       i = (p1-3)/2 ; | 
 |       S2((p1-3)/2,1) ; | 
 |     } | 
 |     for (p2=2;p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   S3(3) ; | 
 |   S2(5,1) ; | 
 |   S2(4,2) ; | 
 |   for (p1=14;p1<=2*n+2;p1++) { | 
 |     p2 = floord(-p1+5,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     p2 = floord(-p1+9,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     for (p3=1;p3<=-p2;p3++) { | 
 |       i = -p2+1 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-2)/2 ; | 
 |         S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |       } | 
 |     } | 
 |     for (p2=ceild(-p1+10,4);p2<=-1;p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |       i = -p2+2 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-4)/2 ; | 
 |         S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       j = (p1-4)/2 ; | 
 |       S6(2,(p1-4)/2) ; | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       i = (p1-2)/2 ; | 
 |       S1((p1-2)/2) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       j = (p1-2)/2 ; | 
 |       S6(1,(p1-2)/2) ; | 
 |     } | 
 |     if ((p1+1)%2 == 0) { | 
 |       i = (p1-3)/2 ; | 
 |       S2((p1-3)/2,1) ; | 
 |     } | 
 |     for (p2=2;p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   p1 = 2*n+3 ; | 
 |   if ((n+1)%2 == 0) { | 
 |     i = (n+1)/2 ; | 
 |     S3((n+1)/2) ; | 
 |   } | 
 |   S2(n,1) ; | 
 |   for (p2=2;p2<=floord(n,2);p2++) { | 
 |     i = -p2+n+1 ; | 
 |     S2(-p2+n+1,p2) ; | 
 |   } | 
 |   p1 = 2*n+4 ; | 
 |   for (p2=ceild(-n-1,2);p2<=floord(-2*n+1,4);p2++) { | 
 |     j = p2+n+2 ; | 
 |     S4(-p2,p2+n+2) ; | 
 |   } | 
 |   for (p2=ceild(-n+1,2);p2<=floord(-2*n+5,4);p2++) { | 
 |     j = p2+n+2 ; | 
 |     S4(-p2,p2+n+2) ; | 
 |     for (p3=1;p3<=-p2;p3++) { | 
 |       i = -p2+1 ; | 
 |       j = p2+n+1 ; | 
 |       S5(-p2+1,p2+n+1,p3) ; | 
 |     } | 
 |   } | 
 |   for (p2=ceild(-n+3,2);p2<=-2;p2++) { | 
 |     j = p2+n+2 ; | 
 |     S4(-p2,p2+n+2) ; | 
 |     i = -p2+2 ; | 
 |     j = p2+n ; | 
 |     S6(-p2+2,p2+n) ; | 
 |     for (p3=1;p3<=-p2;p3++) { | 
 |       i = -p2+1 ; | 
 |       j = p2+n+1 ; | 
 |       S5(-p2+1,p2+n+1,p3) ; | 
 |     } | 
 |   } | 
 |   j = n-1 ; | 
 |   S6(3,n-1) ; | 
 |   S5(2,n,1) ; | 
 |   S6(2,n) ; | 
 |   i = n+1 ; | 
 |   S1(n+1) ; | 
 |   for (p1=2*n+5;p1<=min(4*n-10,2*n+58);p1++) { | 
 |     p2 = floord(-p1+5,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     p2 = floord(-p1+9,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     for (p3=1;p3<=-p2;p3++) { | 
 |       i = -p2+1 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-2)/2 ; | 
 |         S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |       } | 
 |     } | 
 |     for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |       i = -p2+2 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-4)/2 ; | 
 |         S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     p2 = floord(-p1+2*n+2,2) ; | 
 |     i = -p2+2 ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2-4)/2 ; | 
 |       S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |     } | 
 |     for (p3=1;p3<=-p2;p3++) { | 
 |       i = -p2+1 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-2)/2 ; | 
 |         S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |       } | 
 |     } | 
 |     for (p2=ceild(-p1+2*n+3,2);p2<=min(floord(-p1+2*n+4,2),-1);p2++) { | 
 |       i = -p2+2 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-4)/2 ; | 
 |         S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |       } | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       i = (p1-2)/2 ; | 
 |       S1((p1-2)/2) ; | 
 |     } | 
 |     for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   for (p1=4*n-9;p1<=min(4*n-8,2*n+58);p1++) { | 
 |     p2 = floord(-p1+5,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     p2 = floord(-p1+2*n+2,2) ; | 
 |     i = -p2+2 ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2-4)/2 ; | 
 |       S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |     } | 
 |     for (p3=1;p3<=-p2;p3++) { | 
 |       i = -p2+1 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-2)/2 ; | 
 |         S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |       } | 
 |     } | 
 |     p2 = floord(-p1+2*n+4,2) ; | 
 |     i = -p2+2 ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2-4)/2 ; | 
 |       S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       i = (p1-2)/2 ; | 
 |       S1((p1-2)/2) ; | 
 |     } | 
 |     for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   for (p1=4*n-7;p1<=min(4*n-6,2*n+58);p1++) { | 
 |     p2 = floord(-p1+5,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     for (p2=ceild(-p1+2*n+1,2);p2<=floord(-p1+9,4);p2++) { | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n+2,2);p2++) { | 
 |       i = -p2+2 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-4)/2 ; | 
 |         S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     p2 = floord(-p1+2*n+4,2) ; | 
 |     i = -p2+2 ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2-4)/2 ; | 
 |       S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       i = (p1-2)/2 ; | 
 |       S1((p1-2)/2) ; | 
 |     } | 
 |     for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   for (p1=4*n-5;p1<=2*n+58;p1++) { | 
 |     for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |     } | 
 |     for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=floord(-p1+2*n+2,2);p2++) { | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     for (p2=max(ceild(-p1+2*n+3,2),ceild(-p1+10,4));p2<=floord(-p1+2*n+4,2);p2++) { | 
 |       i = -p2+2 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-4)/2 ; | 
 |         S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |       } | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     if (p1%2 == 0) { | 
 |       i = (p1-2)/2 ; | 
 |       S1((p1-2)/2) ; | 
 |     } | 
 |     for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   for (p1=2*n+59;p1<=4*n-10;p1++) { | 
 |     p2 = floord(-p1+5,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     p2 = floord(-p1+9,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     for (p3=1;p3<=-p2;p3++) { | 
 |       i = -p2+1 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-2)/2 ; | 
 |         S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |       } | 
 |     } | 
 |     for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |       i = -p2+2 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-4)/2 ; | 
 |         S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     p2 = floord(-p1+2*n+2,2) ; | 
 |     i = -p2+2 ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2-4)/2 ; | 
 |       S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |     } | 
 |     for (p3=1;p3<=-p2;p3++) { | 
 |       i = -p2+1 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-2)/2 ; | 
 |         S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |       } | 
 |     } | 
 |     p2 = floord(-p1+2*n+4,2) ; | 
 |     i = -p2+2 ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2-4)/2 ; | 
 |       S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   for (p1=max(4*n-9,2*n+59);p1<=4*n-8;p1++) { | 
 |     p2 = floord(-p1+5,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     p2 = floord(-p1+2*n+2,2) ; | 
 |     i = -p2+2 ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2-4)/2 ; | 
 |       S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |     } | 
 |     for (p3=1;p3<=-p2;p3++) { | 
 |       i = -p2+1 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-2)/2 ; | 
 |         S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |       } | 
 |     } | 
 |     p2 = floord(-p1+2*n+4,2) ; | 
 |     i = -p2+2 ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2-4)/2 ; | 
 |       S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   for (p1=max(4*n-7,2*n+59);p1<=4*n-6;p1++) { | 
 |     p2 = floord(-p1+5,4) ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2)/2 ; | 
 |       S4(-p2,(p1+2*p2)/2) ; | 
 |     } | 
 |     for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     for (p2=ceild(-p1+2*n+1,2);p2<=floord(-p1+9,4);p2++) { | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n+2,2);p2++) { | 
 |       i = -p2+2 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-4)/2 ; | 
 |         S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |       } | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     p2 = floord(-p1+2*n+4,2) ; | 
 |     i = -p2+2 ; | 
 |     if (p1%2 == 0) { | 
 |       j = (p1+2*p2-4)/2 ; | 
 |       S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   for (p1=max(4*n-5,2*n+59);p1<=4*n-2;p1++) { | 
 |     for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2)/2 ; | 
 |         S4(-p2,(p1+2*p2)/2) ; | 
 |       } | 
 |     } | 
 |     for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=floord(-p1+2*n+2,2);p2++) { | 
 |       for (p3=1;p3<=-p2;p3++) { | 
 |         i = -p2+1 ; | 
 |         if (p1%2 == 0) { | 
 |           j = (p1+2*p2-2)/2 ; | 
 |           S5(-p2+1,(p1+2*p2-2)/2,p3) ; | 
 |         } | 
 |       } | 
 |     } | 
 |     for (p2=max(ceild(-p1+10,4),ceild(-p1+2*n+3,2));p2<=floord(-p1+2*n+4,2);p2++) { | 
 |       i = -p2+2 ; | 
 |       if (p1%2 == 0) { | 
 |         j = (p1+2*p2-4)/2 ; | 
 |         S6(-p2+2,(p1+2*p2-4)/2) ; | 
 |       } | 
 |     } | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |     for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { | 
 |       if ((p1+1)%2 == 0) { | 
 |         i = (p1-2*p2-1)/2 ; | 
 |         S2((p1-2*p2-1)/2,p2) ; | 
 |       } | 
 |     } | 
 |   } | 
 |   p1 = 4*n-1 ; | 
 |   p2 = n-1 ; | 
 |   j = n-1 ; | 
 |   S2(n,n-1) ; | 
 |   for (p1=4*n;p1<=4*n+1;p1++) { | 
 |     if ((p1+3)%4 == 0) { | 
 |       i = (p1-1)/4 ; | 
 |       S3((p1-1)/4) ; | 
 |     } | 
 |   } | 
 | } |