1 /* Generated from ../../../git/cloog/test/vivien.cloog by CLooG 0.14.0-76-gef19709 gmp bits in 0.78s. */
5 #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d))
6 #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d))
7 #define max(x,y) ((x) > (y) ? (x) : (y))
8 #define min(x,y) ((x) < (y) ? (x) : (y))
10 #define S1(i) { hash(1); hash(i); }
11 #define S2(i,j) { hash(2); hash(i); hash(j); }
12 #define S3(i) { hash(3); hash(i); }
13 #define S4(i,j) { hash(4); hash(i); hash(j); }
14 #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); }
15 #define S6(i,j) { hash(6); hash(i); hash(j); }
19 /* Scattering iterators. */
21 /* Original iterators. */
23 for (p1
=-54*n
+4;p1
<=min(4,4*n
+1);p1
++) {
37 for (p1
=max(-54*n
+4,4*n
+2);p1
<=6;p1
++) {
43 for (p1
=7;p1
<=min(min(2*n
+2,9),floord(4*n
+12,3));p1
++) {
44 for (p2
=ceild(-p1
+2,4);p2
<=-1;p2
++) {
67 for (p1
=2*n
+3;p1
<=min(9,4*n
-2);p1
++) {
68 for (p2
=ceild(-p1
+2,4);p2
<=floord(-p1
+2*n
,2);p2
++) {
82 for (p2
=ceild(p1
-2*n
-1,2);p2
<=floord(p1
-3,4);p2
++) {
85 S2((p1
-2*p2
-1)/2,p2
) ;
103 for (p1
=11;p1
<=min(12,2*n
+2);p1
++) {
104 p2
= floord(-p1
+5,4) ;
107 S4(-p2
,(p1
+2*p2
)/2) ;
109 for (p2
=ceild(-p1
+6,4);p2
<=-1;p2
++) {
112 S4(-p2
,(p1
+2*p2
)/2) ;
114 for (p3
=1;p3
<=-p2
;p3
++) {
118 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
138 for (p2
=2;p2
<=floord(p1
-3,4);p2
++) {
141 S2((p1
-2*p2
-1)/2,p2
) ;
159 if ((n
<= 4) && (n
>= 4)) {
161 for (p2
=ceild(-n
-1,2);p2
<=-2;p2
++) {
165 for (p2
=ceild(-n
+1,2);p2
<=-1;p2
++) {
166 for (p3
=1;p3
<=-p2
;p3
++) {
169 S5(-p2
+1,p2
+n
+1,p3
) ;
176 for (p1
=14;p1
<=2*n
+2;p1
++) {
177 p2
= floord(-p1
+5,4) ;
180 S4(-p2
,(p1
+2*p2
)/2) ;
182 p2
= floord(-p1
+9,4) ;
185 S4(-p2
,(p1
+2*p2
)/2) ;
187 for (p3
=1;p3
<=-p2
;p3
++) {
191 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
194 for (p2
=ceild(-p1
+10,4);p2
<=-1;p2
++) {
197 S4(-p2
,(p1
+2*p2
)/2) ;
202 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
204 for (p3
=1;p3
<=-p2
;p3
++) {
208 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
232 for (p2
=2;p2
<=floord(p1
-3,4);p2
++) {
235 S2((p1
-2*p2
-1)/2,p2
) ;
239 if ((n
<= 4) && (n
>= 4)) {
241 for (p2
=-n
+6;p2
<=2;p2
++) {
253 for (p2
=2;p2
<=floord(n
,2);p2
++) {
258 if ((n
<= 6) && (n
>= 6)) {
265 for (p2
=2;p2
<=floord(n
,2);p2
++) {
272 for (p2
=ceild(-n
-1,2);p2
<=floord(-2*n
+1,4);p2
++) {
276 for (p2
=ceild(-n
+1,2);p2
<=floord(-2*n
+5,4);p2
++) {
279 for (p3
=1;p3
<=-p2
;p3
++) {
282 S5(-p2
+1,p2
+n
+1,p3
) ;
285 for (p2
=ceild(-n
+3,2);p2
<=-2;p2
++) {
291 for (p3
=1;p3
<=-p2
;p3
++) {
294 S5(-p2
+1,p2
+n
+1,p3
) ;
304 if ((n
<= 5) && (n
>= 5)) {
306 for (p2
=ceild(-n
-1,2);p2
<=floord(-2*n
+1,4);p2
++) {
310 for (p2
=ceild(-n
+1,2);p2
<=-2;p2
++) {
313 for (p3
=1;p3
<=-p2
;p3
++) {
316 S5(-p2
+1,p2
+n
+1,p3
) ;
319 for (p2
=-1;p2
<=floord(-2*n
+5,4);p2
++) {
320 for (p3
=1;p3
<=-p2
;p3
++) {
323 S5(-p2
+1,p2
+n
+1,p3
) ;
326 for (p2
=ceild(-n
+3,2);p2
<=-1;p2
++) {
330 for (p3
=1;p3
<=-p2
;p3
++) {
333 S5(-p2
+1,p2
+n
+1,p3
) ;
340 if ((n
<= 6) && (n
>= 6)) {
342 for (p2
=ceild(-n
-1,2);p2
<=floord(-2*n
+1,4);p2
++) {
346 for (p2
=ceild(-n
+1,2);p2
<=-2;p2
++) {
349 for (p3
=1;p3
<=-p2
;p3
++) {
352 S5(-p2
+1,p2
+n
+1,p3
) ;
362 for (p1
=2*n
+5;p1
<=min(4*n
-10,2*n
+58);p1
++) {
363 p2
= floord(-p1
+5,4) ;
366 S4(-p2
,(p1
+2*p2
)/2) ;
368 p2
= floord(-p1
+9,4) ;
371 S4(-p2
,(p1
+2*p2
)/2) ;
373 for (p3
=1;p3
<=-p2
;p3
++) {
377 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
380 for (p2
=ceild(-p1
+10,4);p2
<=floord(-p1
+2*n
,2);p2
++) {
383 S4(-p2
,(p1
+2*p2
)/2) ;
388 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
390 for (p3
=1;p3
<=-p2
;p3
++) {
394 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
398 p2
= floord(-p1
+2*n
+2,2) ;
402 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
404 for (p3
=1;p3
<=-p2
;p3
++) {
408 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
411 for (p2
=ceild(-p1
+2*n
+3,2);p2
<=min(floord(-p1
+2*n
+4,2),-1);p2
++) {
415 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
426 for (p2
=ceild(p1
-2*n
-1,2);p2
<=floord(p1
-3,4);p2
++) {
429 S2((p1
-2*p2
-1)/2,p2
) ;
433 for (p1
=max(4*n
-9,2*n
+5);p1
<=min(4*n
-8,2*n
+58);p1
++) {
434 p2
= floord(-p1
+5,4) ;
437 S4(-p2
,(p1
+2*p2
)/2) ;
439 for (p2
=ceild(-p1
+6,4);p2
<=floord(-p1
+2*n
,2);p2
++) {
442 S4(-p2
,(p1
+2*p2
)/2) ;
444 for (p3
=1;p3
<=-p2
;p3
++) {
448 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
452 p2
= floord(-p1
+2*n
+2,2) ;
456 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
458 for (p3
=1;p3
<=-p2
;p3
++) {
462 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
465 for (p2
=ceild(-p1
+2*n
+3,2);p2
<=min(floord(-p1
+2*n
+4,2),-1);p2
++) {
469 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
480 for (p2
=ceild(p1
-2*n
-1,2);p2
<=floord(p1
-3,4);p2
++) {
483 S2((p1
-2*p2
-1)/2,p2
) ;
487 for (p1
=max(4*n
-7,2*n
+5);p1
<=min(4*n
-6,2*n
+58);p1
++) {
488 p2
= floord(-p1
+5,4) ;
491 S4(-p2
,(p1
+2*p2
)/2) ;
493 for (p2
=ceild(-p1
+6,4);p2
<=floord(-p1
+2*n
,2);p2
++) {
496 S4(-p2
,(p1
+2*p2
)/2) ;
498 for (p3
=1;p3
<=-p2
;p3
++) {
502 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
506 for (p2
=ceild(-p1
+2*n
+1,2);p2
<=floord(-p1
+9,4);p2
++) {
507 for (p3
=1;p3
<=-p2
;p3
++) {
511 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
515 for (p2
=ceild(-p1
+10,4);p2
<=floord(-p1
+2*n
+2,2);p2
++) {
519 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
521 for (p3
=1;p3
<=-p2
;p3
++) {
525 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
529 for (p2
=ceild(-p1
+2*n
+3,2);p2
<=min(floord(-p1
+2*n
+4,2),-1);p2
++) {
533 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
544 for (p2
=ceild(p1
-2*n
-1,2);p2
<=floord(p1
-3,4);p2
++) {
547 S2((p1
-2*p2
-1)/2,p2
) ;
551 for (p1
=max(max(4*n
-5,14),2*n
+5);p1
<=min(4*n
-2,2*n
+58);p1
++) {
552 for (p2
=ceild(-p1
+2,4);p2
<=floord(-p1
+2*n
,2);p2
++) {
555 S4(-p2
,(p1
+2*p2
)/2) ;
558 for (p2
=max(ceild(-p1
+2*n
+1,2),ceild(-p1
+6,4));p2
<=floord(-p1
+2*n
+2,2);p2
++) {
559 for (p3
=1;p3
<=-p2
;p3
++) {
563 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
567 for (p2
=max(ceild(-p1
+10,4),ceild(-p1
+2*n
+3,2));p2
<=min(floord(-p1
+2*n
+4,2),-1);p2
++) {
571 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
582 for (p2
=ceild(p1
-2*n
-1,2);p2
<=floord(p1
-3,4);p2
++) {
585 S2((p1
-2*p2
-1)/2,p2
) ;
589 if ((n
>= 2) && (n
<= 29)) {
595 for (p1
=2*n
+59;p1
<=4*n
-10;p1
++) {
596 p2
= floord(-p1
+5,4) ;
599 S4(-p2
,(p1
+2*p2
)/2) ;
601 p2
= floord(-p1
+9,4) ;
604 S4(-p2
,(p1
+2*p2
)/2) ;
606 for (p3
=1;p3
<=-p2
;p3
++) {
610 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
613 for (p2
=ceild(-p1
+10,4);p2
<=floord(-p1
+2*n
,2);p2
++) {
616 S4(-p2
,(p1
+2*p2
)/2) ;
621 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
623 for (p3
=1;p3
<=-p2
;p3
++) {
627 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
631 p2
= floord(-p1
+2*n
+2,2) ;
635 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
637 for (p3
=1;p3
<=-p2
;p3
++) {
641 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
644 p2
= floord(-p1
+2*n
+4,2) ;
648 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
654 for (p2
=ceild(p1
-2*n
-1,2);p2
<=floord(p1
-3,4);p2
++) {
657 S2((p1
-2*p2
-1)/2,p2
) ;
661 for (p1
=max(4*n
-9,2*n
+59);p1
<=4*n
-8;p1
++) {
662 p2
= floord(-p1
+5,4) ;
665 S4(-p2
,(p1
+2*p2
)/2) ;
667 for (p2
=ceild(-p1
+6,4);p2
<=floord(-p1
+2*n
,2);p2
++) {
670 S4(-p2
,(p1
+2*p2
)/2) ;
672 for (p3
=1;p3
<=-p2
;p3
++) {
676 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
680 p2
= floord(-p1
+2*n
+2,2) ;
684 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
686 for (p3
=1;p3
<=-p2
;p3
++) {
690 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
693 p2
= floord(-p1
+2*n
+4,2) ;
697 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
703 for (p2
=ceild(p1
-2*n
-1,2);p2
<=floord(p1
-3,4);p2
++) {
706 S2((p1
-2*p2
-1)/2,p2
) ;
710 for (p1
=max(4*n
-7,2*n
+59);p1
<=4*n
-6;p1
++) {
711 p2
= floord(-p1
+5,4) ;
714 S4(-p2
,(p1
+2*p2
)/2) ;
716 for (p2
=ceild(-p1
+6,4);p2
<=floord(-p1
+2*n
,2);p2
++) {
719 S4(-p2
,(p1
+2*p2
)/2) ;
721 for (p3
=1;p3
<=-p2
;p3
++) {
725 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
729 for (p2
=ceild(-p1
+2*n
+1,2);p2
<=floord(-p1
+9,4);p2
++) {
730 for (p3
=1;p3
<=-p2
;p3
++) {
734 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
738 for (p2
=ceild(-p1
+10,4);p2
<=floord(-p1
+2*n
+2,2);p2
++) {
742 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
744 for (p3
=1;p3
<=-p2
;p3
++) {
748 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
752 p2
= floord(-p1
+2*n
+4,2) ;
756 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
762 for (p2
=ceild(p1
-2*n
-1,2);p2
<=floord(p1
-3,4);p2
++) {
765 S2((p1
-2*p2
-1)/2,p2
) ;
769 for (p1
=max(4*n
-5,2*n
+59);p1
<=4*n
-2;p1
++) {
770 for (p2
=ceild(-p1
+2,4);p2
<=floord(-p1
+2*n
,2);p2
++) {
773 S4(-p2
,(p1
+2*p2
)/2) ;
776 for (p2
=max(ceild(-p1
+2*n
+1,2),ceild(-p1
+6,4));p2
<=floord(-p1
+2*n
+2,2);p2
++) {
777 for (p3
=1;p3
<=-p2
;p3
++) {
781 S5(-p2
+1,(p1
+2*p2
-2)/2,p3
) ;
785 for (p2
=max(ceild(-p1
+10,4),ceild(-p1
+2*n
+3,2));p2
<=floord(-p1
+2*n
+4,2);p2
++) {
789 S6(-p2
+2,(p1
+2*p2
-4)/2) ;
796 for (p2
=ceild(p1
-2*n
-1,2);p2
<=floord(p1
-3,4);p2
++) {
799 S2((p1
-2*p2
-1)/2,p2
) ;
803 for (p1
=max(4*n
,7);p1
<=min(4*n
+1,2*n
+58);p1
++) {
819 for (p1
=max(max(-54*n
+4,4*n
+2),7);p1
<=2*n
+58;p1
++) {
825 for (p1
=max(4*n
,2*n
+59);p1
<=4*n
+1;p1
++) {