summaryrefslogtreecommitdiff
path: root/test/reservoir
diff options
context:
space:
mode:
Diffstat (limited to 'test/reservoir')
-rw-r--r--test/reservoir/QR.c.polylib183
-rw-r--r--test/reservoir/QR.c.ppl172
-rwxr-xr-xtest/reservoir/QR.cloog228
-rw-r--r--test/reservoir/bastoul3.c.polylib10
-rw-r--r--test/reservoir/bastoul3.c.ppl9
-rw-r--r--test/reservoir/bastoul3.cloog33
-rw-r--r--test/reservoir/cholesky2.c.polylib54
-rw-r--r--test/reservoir/cholesky2.c.ppl53
-rwxr-xr-xtest/reservoir/cholesky2.cloog79
-rw-r--r--test/reservoir/fusion1.c.polylib11
-rw-r--r--test/reservoir/fusion1.c.ppl10
-rwxr-xr-xtest/reservoir/fusion1.cloog65
-rw-r--r--test/reservoir/fusion2.c.polylib24
-rw-r--r--test/reservoir/fusion2.c.ppl23
-rwxr-xr-xtest/reservoir/fusion2.cloog56
-rw-r--r--test/reservoir/jacobi2.c.polylib7
-rw-r--r--test/reservoir/jacobi2.c.ppl6
-rwxr-xr-xtest/reservoir/jacobi2.cloog37
-rw-r--r--test/reservoir/jacobi3.c.polylib36
-rw-r--r--test/reservoir/jacobi3.c.ppl35
-rwxr-xr-xtest/reservoir/jacobi3.cloog64
-rw-r--r--test/reservoir/lim-lam1.c.polylib39
-rw-r--r--test/reservoir/lim-lam1.c.ppl38
-rw-r--r--test/reservoir/lim-lam1.cloog54
-rw-r--r--test/reservoir/lim-lam2.c.polylib19
-rw-r--r--test/reservoir/lim-lam2.c.ppl18
-rwxr-xr-xtest/reservoir/lim-lam2.cloog76
-rw-r--r--test/reservoir/lim-lam3.c.polylib47
-rw-r--r--test/reservoir/lim-lam3.c.ppl46
-rwxr-xr-xtest/reservoir/lim-lam3.cloog101
-rw-r--r--test/reservoir/lim-lam4.c.polylib22
-rw-r--r--test/reservoir/lim-lam4.c.ppl21
-rwxr-xr-xtest/reservoir/lim-lam4.cloog62
-rw-r--r--test/reservoir/lim-lam5.c.polylib17
-rw-r--r--test/reservoir/lim-lam5.c.ppl16
-rwxr-xr-xtest/reservoir/lim-lam5.cloog76
-rw-r--r--test/reservoir/lim-lam6.c.polylib16
-rw-r--r--test/reservoir/lim-lam6.c.ppl15
-rwxr-xr-xtest/reservoir/lim-lam6.cloog56
-rw-r--r--test/reservoir/liu-zhuge1.c.polylib150
-rw-r--r--test/reservoir/liu-zhuge1.c.ppl149
-rwxr-xr-xtest/reservoir/liu-zhuge1.cloog76
-rw-r--r--test/reservoir/loechner3.c.polylib10
-rw-r--r--test/reservoir/loechner3.c.ppl9
-rwxr-xr-xtest/reservoir/loechner3.cloog39
-rw-r--r--test/reservoir/loechner4.c.polylib12
-rw-r--r--test/reservoir/loechner4.c.ppl11
-rwxr-xr-xtest/reservoir/loechner4.cloog44
-rw-r--r--test/reservoir/loechner5.c.polylib11
-rw-r--r--test/reservoir/loechner5.c.ppl10
-rwxr-xr-xtest/reservoir/loechner5.cloog44
-rw-r--r--test/reservoir/long.c.polylib20
-rw-r--r--test/reservoir/long.c.ppl20
-rw-r--r--test/reservoir/long.cloog127
-rw-r--r--test/reservoir/makefile79
-rw-r--r--test/reservoir/mg-interp.c.polylib288
-rw-r--r--test/reservoir/mg-interp.c.ppl311
-rwxr-xr-xtest/reservoir/mg-interp.cloog376
-rw-r--r--test/reservoir/mg-interp2.c.polylib38
-rw-r--r--test/reservoir/mg-interp2.c.ppl37
-rwxr-xr-xtest/reservoir/mg-interp2.cloog112
-rw-r--r--test/reservoir/mg-psinv.c.polylib53
-rw-r--r--test/reservoir/mg-psinv.c.ppl52
-rwxr-xr-xtest/reservoir/mg-psinv.cloog88
-rw-r--r--test/reservoir/mg-resid.c.polylib53
-rw-r--r--test/reservoir/mg-resid.c.ppl52
-rwxr-xr-xtest/reservoir/mg-resid.cloog88
-rw-r--r--test/reservoir/mg-rprj3.c.polylib143
-rw-r--r--test/reservoir/mg-rprj3.c.ppl142
-rwxr-xr-xtest/reservoir/mg-rprj3.cloog136
-rw-r--r--test/reservoir/pingali1.c.polylib27
-rw-r--r--test/reservoir/pingali1.c.ppl26
-rwxr-xr-xtest/reservoir/pingali1.cloog61
-rw-r--r--test/reservoir/pingali2.c.polylib12
-rw-r--r--test/reservoir/pingali2.c.ppl11
-rwxr-xr-xtest/reservoir/pingali2.cloog56
-rw-r--r--test/reservoir/pingali3.c.polylib14
-rw-r--r--test/reservoir/pingali3.c.ppl13
-rwxr-xr-xtest/reservoir/pingali3.cloog62
-rw-r--r--test/reservoir/pingali4.c.polylib12
-rw-r--r--test/reservoir/pingali4.c.ppl11
-rwxr-xr-xtest/reservoir/pingali4.cloog57
-rw-r--r--test/reservoir/pingali5.c.polylib26
-rw-r--r--test/reservoir/pingali5.c.ppl25
-rwxr-xr-xtest/reservoir/pingali5.cloog81
-rw-r--r--test/reservoir/pingali6.c.polylib36
-rw-r--r--test/reservoir/pingali6.c.ppl35
-rwxr-xr-xtest/reservoir/pingali6.cloog66
-rw-r--r--test/reservoir/stride.c.polylib6
-rw-r--r--test/reservoir/stride.c.ppl5
-rw-r--r--test/reservoir/stride.cloog45
-rw-r--r--test/reservoir/stride2.c.polylib6
-rw-r--r--test/reservoir/stride2.c.ppl5
-rw-r--r--test/reservoir/stride2.cloog45
-rw-r--r--test/reservoir/tang-xue1.c.polylib18
-rw-r--r--test/reservoir/tang-xue1.c.ppl17
-rw-r--r--test/reservoir/tang-xue1.cloog80
-rw-r--r--test/reservoir/two.c.polylib9
-rw-r--r--test/reservoir/two.c.ppl8
-rw-r--r--test/reservoir/two.cloog26
100 files changed, 5615 insertions, 0 deletions
diff --git a/test/reservoir/QR.c.polylib b/test/reservoir/QR.c.polylib
new file mode 100644
index 0000000..512b046
--- /dev/null
+++ b/test/reservoir/QR.c.polylib
@@ -0,0 +1,183 @@
+/* Generated from QR.cloog by CLooG v0.14.0 64 bits in 0.06s. */
+/* CLooG asked for 288 KBytes. */
+if ((M <= -1) && (N >= 1)) {
+ S1(i = 0) ;
+}
+if ((M >= 0) && (N >= 1)) {
+ S1(i = 0) ;
+}
+if ((M >= 1) && (N >= 2)) {
+ for (c4=0;c4<=M-1;c4++) {
+ S2(i = 0,j = c4) ;
+ }
+ S3(i = 0) ;
+ for (c4=0;c4<=M-1;c4++) {
+ S4(i = 0,j = c4) ;
+ }
+ S10(i = 0) ;
+ S1(i = 1) ;
+ S5(i = 0) ;
+}
+if ((M <= 0) && (N >= 2)) {
+ S3(i = 0) ;
+ S10(i = 0) ;
+ S1(i = 1) ;
+ S5(i = 0) ;
+}
+if ((M >= 1) && (N == 1)) {
+ for (c4=0;c4<=M-1;c4++) {
+ S2(i = 0,j = c4) ;
+ }
+ S3(i = 0) ;
+ for (c4=0;c4<=M-1;c4++) {
+ S4(i = 0,j = c4) ;
+ }
+ S10(i = 0) ;
+ S5(i = 0) ;
+}
+if ((M <= 0) && (N == 1)) {
+ S3(i = 0) ;
+ S10(i = 0) ;
+ S5(i = 0) ;
+}
+for (c2=2;c2<=min(N-1,M);c2++) {
+ for (c4=c2-1;c4<=N-1;c4++) {
+ i = c2-2 ;
+ S6(j = c4) ;
+ for (c6=c2-2;c6<=M-1;c6++) {
+ i = c2-2 ;
+ S7(j = c4,k = c6) ;
+ }
+ i = c2-2 ;
+ S8(j = c4) ;
+ for (c6=c2-2;c6<=M-1;c6++) {
+ i = c2-2 ;
+ S9(j = c4,k = c6) ;
+ }
+ }
+ for (c4=c2-1;c4<=M-1;c4++) {
+ i = c2-1 ;
+ S2(j = c4) ;
+ }
+ i = c2-1 ;
+ S3 ;
+ for (c4=c2-1;c4<=M-1;c4++) {
+ i = c2-1 ;
+ S4(j = c4) ;
+ }
+ i = c2-1 ;
+ S10 ;
+ S1(i = c2) ;
+ i = c2-1 ;
+ S5 ;
+}
+if ((M >= 1) && (M <= N-2)) {
+ c2 = M+1 ;
+ for (c4=M;c4<=N-1;c4++) {
+ i = M-1 ;
+ S6(j = c4) ;
+ c6 = M-1 ;
+ i = M-1 ;
+ k = M-1 ;
+ S7(j = c4) ;
+ i = M-1 ;
+ S8(j = c4) ;
+ c6 = M-1 ;
+ i = M-1 ;
+ k = M-1 ;
+ S9(j = c4) ;
+ }
+ S3(i = M) ;
+ S10(i = M) ;
+ i = M+1 ;
+ S1 ;
+ S5(i = M) ;
+}
+if ((M >= N) && (N >= 2)) {
+ c4 = N-1 ;
+ i = N-2 ;
+ j = N-1 ;
+ S6 ;
+ for (c6=N-2;c6<=M-1;c6++) {
+ i = N-2 ;
+ j = N-1 ;
+ S7(k = c6) ;
+ }
+ i = N-2 ;
+ j = N-1 ;
+ S8 ;
+ for (c6=N-2;c6<=M-1;c6++) {
+ i = N-2 ;
+ j = N-1 ;
+ S9(k = c6) ;
+ }
+ for (c4=N-1;c4<=M-1;c4++) {
+ i = N-1 ;
+ S2(j = c4) ;
+ }
+ i = N-1 ;
+ S3 ;
+ for (c4=N-1;c4<=M-1;c4++) {
+ i = N-1 ;
+ S4(j = c4) ;
+ }
+ i = N-1 ;
+ S10 ;
+ i = N-1 ;
+ S5 ;
+}
+if ((M == N-1) && (N >= 2)) {
+ c4 = N-1 ;
+ i = N-2 ;
+ j = N-1 ;
+ S6 ;
+ c6 = N-2 ;
+ i = N-2 ;
+ j = N-1 ;
+ k = N-2 ;
+ S7 ;
+ i = N-2 ;
+ j = N-1 ;
+ S8 ;
+ c6 = N-2 ;
+ i = N-2 ;
+ j = N-1 ;
+ k = N-2 ;
+ S9 ;
+ i = N-1 ;
+ S3 ;
+ i = N-1 ;
+ S10 ;
+ i = N-1 ;
+ S5 ;
+}
+for (c2=max(M+2,2);c2<=N-1;c2++) {
+ for (c4=c2-1;c4<=N-1;c4++) {
+ i = c2-2 ;
+ S6(j = c4) ;
+ i = c2-2 ;
+ S8(j = c4) ;
+ }
+ i = c2-1 ;
+ S3 ;
+ i = c2-1 ;
+ S10 ;
+ S1(i = c2) ;
+ i = c2-1 ;
+ S5 ;
+}
+if ((M <= N-2) && (N >= 2)) {
+ c4 = N-1 ;
+ i = N-2 ;
+ j = N-1 ;
+ S6 ;
+ i = N-2 ;
+ j = N-1 ;
+ S8 ;
+ i = N-1 ;
+ S3 ;
+ i = N-1 ;
+ S10 ;
+ i = N-1 ;
+ S5 ;
+}
diff --git a/test/reservoir/QR.c.ppl b/test/reservoir/QR.c.ppl
new file mode 100644
index 0000000..91fa0ff
--- /dev/null
+++ b/test/reservoir/QR.c.ppl
@@ -0,0 +1,172 @@
+/* Generated from ././reservoir/QR.cloog by CLooG 0.15 64 bits in 0.28s. */
+if (N >= 1) {
+ S1(i = 0) ;
+}
+if ((M <= 0) && (N >= 2)) {
+ S3(i = 0) ;
+ S10(i = 0) ;
+ S1(i = 1) ;
+ S5(i = 0) ;
+}
+if ((M >= 1) && (N == 1)) {
+ for (c4=0;c4<=M-1;c4++) {
+ S2(i = 0,j = c4) ;
+ }
+ S3(i = 0) ;
+ for (c4=0;c4<=M-1;c4++) {
+ S4(i = 0,j = c4) ;
+ }
+ S10(i = 0) ;
+ S5(i = 0) ;
+}
+if ((M <= 0) && (N == 1)) {
+ S3(i = 0) ;
+ S10(i = 0) ;
+ S5(i = 0) ;
+}
+if ((M >= 1) && (N >= 2)) {
+ for (c4=0;c4<=M-1;c4++) {
+ S2(i = 0,j = c4) ;
+ }
+ S3(i = 0) ;
+ for (c4=0;c4<=M-1;c4++) {
+ S4(i = 0,j = c4) ;
+ }
+ S10(i = 0) ;
+ S1(i = 1) ;
+ S5(i = 0) ;
+}
+for (c2=2;c2<=min(M,N-1);c2++) {
+ for (c4=c2-1;c4<=N-1;c4++) {
+ i = c2-2 ;
+ S6(j = c4) ;
+ for (c6=c2-2;c6<=M-1;c6++) {
+ i = c2-2 ;
+ S7(j = c4,k = c6) ;
+ }
+ i = c2-2 ;
+ S8(j = c4) ;
+ for (c6=c2-2;c6<=M-1;c6++) {
+ i = c2-2 ;
+ S9(j = c4,k = c6) ;
+ }
+ }
+ for (c4=c2-1;c4<=M-1;c4++) {
+ i = c2-1 ;
+ S2(j = c4) ;
+ }
+ i = c2-1 ;
+ S3 ;
+ for (c4=c2-1;c4<=M-1;c4++) {
+ i = c2-1 ;
+ S4(j = c4) ;
+ }
+ i = c2-1 ;
+ S10 ;
+ S1(i = c2) ;
+ i = c2-1 ;
+ S5 ;
+}
+if ((M >= 1) && (M <= N-2)) {
+ c2 = M+1 ;
+ for (c4=M;c4<=N-1;c4++) {
+ i = M-1 ;
+ S6(j = c4) ;
+ c6 = M-1 ;
+ i = M-1 ;
+ k = M-1 ;
+ S7(j = c4) ;
+ i = M-1 ;
+ S8(j = c4) ;
+ c6 = M-1 ;
+ i = M-1 ;
+ k = M-1 ;
+ S9(j = c4) ;
+ }
+ S3(i = M) ;
+ S10(i = M) ;
+ i = M+1 ;
+ S1 ;
+ S5(i = M) ;
+}
+for (c2=max(M+2,2);c2<=N-1;c2++) {
+ for (c4=c2-1;c4<=N-1;c4++) {
+ i = c2-2 ;
+ S6(j = c4) ;
+ i = c2-2 ;
+ S8(j = c4) ;
+ }
+ i = c2-1 ;
+ S3 ;
+ i = c2-1 ;
+ S10 ;
+ S1(i = c2) ;
+ i = c2-1 ;
+ S5 ;
+}
+if ((M >= N) && (N >= 2)) {
+ c4 = N-1 ;
+ i = N-2 ;
+ j = N-1 ;
+ S6 ;
+ for (c6=N-2;c6<=M-1;c6++) {
+ i = N-2 ;
+ j = N-1 ;
+ S7(k = c6) ;
+ }
+ i = N-2 ;
+ j = N-1 ;
+ S8 ;
+ for (c6=N-2;c6<=M-1;c6++) {
+ i = N-2 ;
+ j = N-1 ;
+ S9(k = c6) ;
+ }
+ for (c4=N-1;c4<=M-1;c4++) {
+ i = N-1 ;
+ S2(j = c4) ;
+ }
+ i = N-1 ;
+ S3 ;
+ for (c4=N-1;c4<=M-1;c4++) {
+ i = N-1 ;
+ S4(j = c4) ;
+ }
+ i = N-1 ;
+ S10 ;
+ i = N-1 ;
+ S5 ;
+}
+if ((M == N-1) && (N >= 2)) {
+ c2 = M+1 ;
+ i = M-1 ;
+ S6(j = M) ;
+ c6 = M-1 ;
+ i = M-1 ;
+ k = M-1 ;
+ S7(j = M) ;
+ i = M-1 ;
+ S8(j = M) ;
+ c6 = M-1 ;
+ i = M-1 ;
+ k = M-1 ;
+ S9(j = M) ;
+ S3(i = M) ;
+ S10(i = M) ;
+ S5(i = M) ;
+}
+if ((M <= N-2) && (N >= 2)) {
+ c4 = N-1 ;
+ i = N-2 ;
+ j = N-1 ;
+ S6 ;
+ i = N-2 ;
+ j = N-1 ;
+ S8 ;
+ i = N-1 ;
+ S3 ;
+ i = N-1 ;
+ S10 ;
+ i = N-1 ;
+ S5 ;
+}
diff --git a/test/reservoir/QR.cloog b/test/reservoir/QR.cloog
new file mode 100755
index 0000000..8baed20
--- /dev/null
+++ b/test/reservoir/QR.cloog
@@ -0,0 +1,228 @@
+# Language
+c
+
+# Context
+
+ 1 4
+ 1 0 0 1
+0
+
+# Number of statments
+10
+
+1
+# { (i,j,k) | i >= 0, -i+k-1 >= 0, 1 >= 0 }
+
+ 3 5
+ 1 1 0 0 0
+ 1 -1 0 1 -1
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i >= 0, -i+l-1 >= 0, -i+j >= 0, -j+k-1 >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 0
+ 1 -1 0 0 1 -1
+ 1 -1 1 0 0 0
+ 1 0 -1 1 0 -1
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | i >= 0, -i+k-1 >= 0, 1 >= 0 }
+
+ 3 5
+ 1 1 0 0 0
+ 1 -1 0 1 -1
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i >= 0, -i+l-1 >= 0, -i+j >= 0, -j+k-1 >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 0
+ 1 -1 0 0 1 -1
+ 1 -1 1 0 0 0
+ 1 0 -1 1 0 -1
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | i >= 0, -i+k-1 >= 0, 1 >= 0 }
+
+ 3 5
+ 1 1 0 0 0
+ 1 -1 0 1 -1
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i >= 0, -i+j-1 >= 0, -j+l-1 >= 0, 1 >= 0 }
+
+ 4 6
+ 1 1 0 0 0 0
+ 1 -1 1 0 0 -1
+ 1 0 -1 0 1 -1
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m) | i >= 0, -i+j-1 >= 0, -j+m-1 >= 0, -i+k >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 6 7
+ 1 1 0 0 0 0 0
+ 1 -1 1 0 0 0 -1
+ 1 0 -1 0 0 1 -1
+ 1 -1 0 1 0 0 0
+ 1 0 0 -1 1 0 -1
+ 1 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i >= 0, -i+j-1 >= 0, -j+l-1 >= 0, 1 >= 0 }
+
+ 4 6
+ 1 1 0 0 0 0
+ 1 -1 1 0 0 -1
+ 1 0 -1 0 1 -1
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m) | i >= 0, -i+j-1 >= 0, -j+m-1 >= 0, -i+k >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 6 7
+ 1 1 0 0 0 0 0
+ 1 -1 1 0 0 0 -1
+ 1 0 -1 0 0 1 -1
+ 1 -1 0 1 0 0 0
+ 1 0 0 -1 1 0 -1
+ 1 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | i >= 0, -i+k-1 >= 0, 1 >= 0 }
+
+ 3 5
+ 1 1 0 0 0
+ 1 -1 0 1 -1
+ 1 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+10
+
+ 8 12
+ 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 -5
+ 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 -1
+ 0 0 0 1 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 12
+ 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 -1
+ 0 0 0 1 0 0 0 0 0 0 0 -2
+ 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 -1
+ 0 0 0 1 0 0 0 0 0 0 0 0 -3
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 12
+ 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 -1
+ 0 0 0 1 0 0 0 0 0 0 0 -6
+ 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 -2
+ 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 14
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 -2
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 -2
+ 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 -2
+ 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 14
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 -2
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 -3
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 12
+ 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 -1
+ 0 0 0 1 0 0 0 0 0 0 0 -4
+ 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/bastoul3.c.polylib b/test/reservoir/bastoul3.c.polylib
new file mode 100644
index 0000000..254eeea
--- /dev/null
+++ b/test/reservoir/bastoul3.c.polylib
@@ -0,0 +1,10 @@
+/* Generated from test/reservoir/bastoul3.cloog by CLooG v0.14.0 gmp bits in 0.00s. */
+/* CLooG asked for 60 KBytes. */
+for (i=3;i<=9;i++) {
+ for (j=max(1,i-6);j<=min(i-2,3);j++) {
+ if ((i+j)%2 == 0) {
+ k = (i-j)/2 ;
+ S1 ;
+ }
+ }
+}
diff --git a/test/reservoir/bastoul3.c.ppl b/test/reservoir/bastoul3.c.ppl
new file mode 100644
index 0000000..5de1578
--- /dev/null
+++ b/test/reservoir/bastoul3.c.ppl
@@ -0,0 +1,9 @@
+/* Generated from ./reservoir/bastoul3.cloog by CLooG 0.15 64 bits in 0.00s. */
+for (i=3;i<=9;i++) {
+ for (j=max(i-6,1);j<=min(i-2,3);j++) {
+ if ((i+j)%2 == 0) {
+ k = (i-j)/2 ;
+ S1 ;
+ }
+ }
+}
diff --git a/test/reservoir/bastoul3.cloog b/test/reservoir/bastoul3.cloog
new file mode 100644
index 0000000..8437226
--- /dev/null
+++ b/test/reservoir/bastoul3.cloog
@@ -0,0 +1,33 @@
+# Figure 4 from "Efficient code generation for automatic parallelization
+# and optimization".
+#
+# Language
+c
+
+# Context
+
+ 1 2
+ 1 1
+0
+
+# Number of statements
+1
+
+1
+
+# i' i j 1
+ 6 5
+ 0 1 -1 -2 0
+ 1 0 1 0 -1
+ 1 0 -1 0 3
+ 1 0 0 1 -1
+ 1 0 0 -1 3
+ 1 0 0 0 1
+
+0 0 0
+
+0
+0
+
+
+
diff --git a/test/reservoir/cholesky2.c.polylib b/test/reservoir/cholesky2.c.polylib
new file mode 100644
index 0000000..fc762df
--- /dev/null
+++ b/test/reservoir/cholesky2.c.polylib
@@ -0,0 +1,54 @@
+/* Generated from ./reservoir/cholesky2.cloog by CLooG v0.14.0 gmp bits in 0.04s. */
+/* CLooG asked for 268 KBytes. */
+for (c2=2;c2<=min(3,3*M-4);c2++) {
+ if ((c2+1)%3 == 0) {
+ i = (c2+1)/3 ;
+ S1 ;
+ }
+ for (c4=ceild(c2+4,3);c4<=min(c2,M);c4++) {
+ if ((c2+c4)%2 == 0) {
+ i = (c2-c4+2)/2 ;
+ S2(j = c4) ;
+ }
+ }
+}
+for (c2=4;c2<=3*M-4;c2++) {
+ if ((c2+1)%3 == 0) {
+ i = (c2+1)/3 ;
+ S1 ;
+ }
+ for (c4=ceild(c2+2,3);c4<=min(c2-2,M);c4++) {
+ for (c6=ceild(c2-c4+2,2);c6<=min(c2-c4,c4);c6++) {
+ i = c2-c4-c6+1 ;
+ S3(j = c4,k = c6) ;
+ }
+ }
+ for (c4=ceild(c2+4,3);c4<=min(M,c2);c4++) {
+ if ((c2+c4)%2 == 0) {
+ i = (c2-c4+2)/2 ;
+ S2(j = c4) ;
+ }
+ }
+}
+for (c2=max(2,3*M-3);c2<=min(3,3*M-2);c2++) {
+ if ((c2+1)%3 == 0) {
+ i = (c2+1)/3 ;
+ S1 ;
+ }
+}
+for (c2=max(3*M-3,4);c2<=3*M-2;c2++) {
+ if ((c2+1)%3 == 0) {
+ i = (c2+1)/3 ;
+ S1 ;
+ }
+ for (c4=ceild(c2+2,3);c4<=min(M,c2-2);c4++) {
+ for (c6=ceild(c2-c4+2,2);c6<=min(c2-c4,c4);c6++) {
+ i = c2-c4-c6+1 ;
+ S3(j = c4,k = c6) ;
+ }
+ }
+}
+if (M >= 1) {
+ c2 = 3*M-1 ;
+ S1(i = M) ;
+}
diff --git a/test/reservoir/cholesky2.c.ppl b/test/reservoir/cholesky2.c.ppl
new file mode 100644
index 0000000..3a99561
--- /dev/null
+++ b/test/reservoir/cholesky2.c.ppl
@@ -0,0 +1,53 @@
+/* Generated from ././reservoir/cholesky2.cloog by CLooG 0.15 64 bits in 0.04s. */
+for (c2=2;c2<=min(3*M-4,3);c2++) {
+ if ((c2+1)%3 == 0) {
+ i = (c2+1)/3 ;
+ S1 ;
+ }
+ for (c4=ceild(c2+4,3);c4<=min(c2,M);c4++) {
+ if ((c2+c4)%2 == 0) {
+ i = (c2-c4+2)/2 ;
+ S2(j = c4) ;
+ }
+ }
+}
+for (c2=max(3*M-3,2);c2<=min(3*M-1,3);c2++) {
+ if ((c2+1)%3 == 0) {
+ i = (c2+1)/3 ;
+ S1 ;
+ }
+}
+for (c2=4;c2<=3*M-4;c2++) {
+ if ((c2+1)%3 == 0) {
+ i = (c2+1)/3 ;
+ S1 ;
+ }
+ for (c4=ceild(c2+2,3);c4<=min(c2-2,M);c4++) {
+ for (c6=ceild(c2-c4+2,2);c6<=min(c2-c4,c4);c6++) {
+ i = c2-c4-c6+1 ;
+ S3(j = c4,k = c6) ;
+ }
+ }
+ for (c4=ceild(c2+4,3);c4<=min(c2,M);c4++) {
+ if ((c2+c4)%2 == 0) {
+ i = (c2-c4+2)/2 ;
+ S2(j = c4) ;
+ }
+ }
+}
+for (c2=max(3*M-3,4);c2<=3*M-2;c2++) {
+ if ((c2+1)%3 == 0) {
+ i = (c2+1)/3 ;
+ S1 ;
+ }
+ for (c4=ceild(c2+2,3);c4<=min(c2-2,M);c4++) {
+ for (c6=ceild(c2-c4+2,2);c6<=min(c2-c4,c4);c6++) {
+ i = c2-c4-c6+1 ;
+ S3(j = c4,k = c6) ;
+ }
+ }
+}
+if (M >= 2) {
+ c2 = 3*M-1 ;
+ S1(i = M) ;
+}
diff --git a/test/reservoir/cholesky2.cloog b/test/reservoir/cholesky2.cloog
new file mode 100755
index 0000000..7317c6a
--- /dev/null
+++ b/test/reservoir/cholesky2.cloog
@@ -0,0 +1,79 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+3
+
+1
+# { (i,j) | i-1 >= 0, -i+j >= 0, 1 >= 0 }
+
+ 3 4
+ 1 1 0 -1
+ 1 -1 1 0
+ 1 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | i-1 >= 0, -i+j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 4 5
+ 1 1 0 0 -1
+ 1 -1 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i-1 >= 0, -j+l >= 0, -i+k-1 >= 0, j-k >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 -1
+ 1 0 -1 0 1 0
+ 1 -1 0 1 0 -1
+ 1 0 1 -1 0 0
+ 1 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+3
+
+ 8 11
+ 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -3 0 1
+ 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 12
+ 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -2 -1 0 2
+ 0 0 0 1 0 0 0 0 0 0 0 -2
+ 0 0 0 0 1 0 0 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 -1 -1 0 1
+ 0 0 0 1 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/fusion1.c.polylib b/test/reservoir/fusion1.c.polylib
new file mode 100644
index 0000000..150aeb0
--- /dev/null
+++ b/test/reservoir/fusion1.c.polylib
@@ -0,0 +1,11 @@
+/* Generated from fusion1.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=0;c2<=M;c2++) {
+ S1(i = c2) ;
+}
+for (c2=1;c2<=M;c2++) {
+ S2(i = c2) ;
+}
+for (c2=0;c2<=M;c2++) {
+ S3(i = c2) ;
+}
diff --git a/test/reservoir/fusion1.c.ppl b/test/reservoir/fusion1.c.ppl
new file mode 100644
index 0000000..50d373c
--- /dev/null
+++ b/test/reservoir/fusion1.c.ppl
@@ -0,0 +1,10 @@
+/* Generated from ././reservoir/fusion1.cloog by CLooG 0.15 64 bits in 0.00s. */
+for (c2=0;c2<=M;c2++) {
+ S1(i = c2) ;
+}
+for (c2=1;c2<=M;c2++) {
+ S2(i = c2) ;
+}
+for (c2=0;c2<=M;c2++) {
+ S3(i = c2) ;
+}
diff --git a/test/reservoir/fusion1.cloog b/test/reservoir/fusion1.cloog
new file mode 100755
index 0000000..3aea334
--- /dev/null
+++ b/test/reservoir/fusion1.cloog
@@ -0,0 +1,65 @@
+# Language
+c
+
+# Context
+
+ 2 3
+ 1 1 -1
+ 1 0 1
+0
+
+# Number of statments
+3
+
+1
+# { (i,j) | i >= 0, -i+j >= 0, 1 >= 0 }
+
+ 3 4
+ 1 1 0 0
+ 1 -1 1 0
+ 1 0 0 1
+
+0 0 0
+1
+# { (i,j) | i-1 >= 0, -i+j >= 0, 1 >= 0 }
+
+ 3 4
+ 1 1 0 -1
+ 1 -1 1 0
+ 1 0 0 1
+
+0 0 0
+1
+# { (i,j) | i >= 0, -i+j >= 0, 1 >= 0 }
+
+ 3 4
+ 1 1 0 0
+ 1 -1 1 0
+ 1 0 0 1
+
+0 0 0
+0
+# Scattering functions
+3
+
+ 4 7
+ 0 1 0 0 0 0 0
+ 0 0 1 0 -1 0 0
+ 0 0 0 1 0 0 0
+ 1 0 0 0 0 0 1
+
+
+ 4 7
+ 0 1 0 0 0 0 -1
+ 0 0 1 0 -1 0 0
+ 0 0 0 1 0 0 0
+ 1 0 0 0 0 0 1
+
+
+ 4 7
+ 0 1 0 0 0 0 -2
+ 0 0 1 0 -1 0 0
+ 0 0 0 1 0 0 0
+ 1 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/fusion2.c.polylib b/test/reservoir/fusion2.c.polylib
new file mode 100644
index 0000000..1357f61
--- /dev/null
+++ b/test/reservoir/fusion2.c.polylib
@@ -0,0 +1,24 @@
+/* Generated from fusion2.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+if ((M >= 1) && (N >= 1)) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = 1,j = c4) ;
+ }
+}
+if (M >= 1) {
+ for (c2=2;c2<=N;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ i = c2-1 ;
+ S2(j = c4) ;
+ }
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+ }
+}
+if ((M >= 1) && (N >= 1)) {
+ c2 = N+1 ;
+ for (c4=1;c4<=M;c4++) {
+ S2(i = N,j = c4) ;
+ }
+}
diff --git a/test/reservoir/fusion2.c.ppl b/test/reservoir/fusion2.c.ppl
new file mode 100644
index 0000000..fe2937c
--- /dev/null
+++ b/test/reservoir/fusion2.c.ppl
@@ -0,0 +1,23 @@
+/* Generated from ././reservoir/fusion2.cloog by CLooG 0.15 64 bits in 0.01s. */
+if ((M >= 1) && (N >= 1)) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = 1,j = c4) ;
+ }
+}
+if (M >= 1) {
+ for (c2=2;c2<=N;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ i = c2-1 ;
+ S2(j = c4) ;
+ }
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+ }
+}
+if ((M >= 1) && (N >= 1)) {
+ c2 = N+1 ;
+ for (c4=1;c4<=M;c4++) {
+ S2(i = N,j = c4) ;
+ }
+}
diff --git a/test/reservoir/fusion2.cloog b/test/reservoir/fusion2.cloog
new file mode 100755
index 0000000..dad8353
--- /dev/null
+++ b/test/reservoir/fusion2.cloog
@@ -0,0 +1,56 @@
+# Language
+c
+
+# Context
+
+ 1 4
+ 1 0 0 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j,k,l) | i-1 >= 0, -i+l >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 -1
+ 1 -1 0 0 1 0
+ 1 0 1 0 0 -1
+ 1 0 -1 1 0 0
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i-1 >= 0, -i+l >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 -1
+ 1 -1 0 0 1 0
+ 1 0 1 0 0 -1
+ 1 0 -1 1 0 0
+ 1 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 6 11
+ 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+
+ 6 11
+ 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0 -1
+ 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/jacobi2.c.polylib b/test/reservoir/jacobi2.c.polylib
new file mode 100644
index 0000000..493c622
--- /dev/null
+++ b/test/reservoir/jacobi2.c.polylib
@@ -0,0 +1,7 @@
+/* Generated from jacobi2.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=0;c2<=M-1;c2++) {
+ for (c4=0;c4<=M-1;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
diff --git a/test/reservoir/jacobi2.c.ppl b/test/reservoir/jacobi2.c.ppl
new file mode 100644
index 0000000..1039cba
--- /dev/null
+++ b/test/reservoir/jacobi2.c.ppl
@@ -0,0 +1,6 @@
+/* Generated from ././reservoir/jacobi2.cloog by CLooG 0.15 64 bits in 0.00s. */
+for (c2=0;c2<=M-1;c2++) {
+ for (c4=0;c4<=M-1;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
diff --git a/test/reservoir/jacobi2.cloog b/test/reservoir/jacobi2.cloog
new file mode 100755
index 0000000..7352362
--- /dev/null
+++ b/test/reservoir/jacobi2.cloog
@@ -0,0 +1,37 @@
+# Language
+c
+
+# Context
+
+ 2 3
+ 1 1 -1
+ 1 0 1
+0
+
+# Number of statments
+1
+
+1
+# { (i,j,k) | i >= 0, -i+k-1 >= 0, j >= 0, -j+k-1 >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 0
+ 1 -1 0 1 -1
+ 1 0 1 0 0
+ 1 0 -1 1 -1
+ 1 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+1
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/jacobi3.c.polylib b/test/reservoir/jacobi3.c.polylib
new file mode 100644
index 0000000..cafae37
--- /dev/null
+++ b/test/reservoir/jacobi3.c.polylib
@@ -0,0 +1,36 @@
+/* Generated from ./reservoir/jacobi3.cloog by CLooG v0.14.0 gmp bits in 0.04s. */
+/* CLooG asked for 204 KBytes. */
+if ((M >= 1) && (N >= 3)) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ S1(i = 1,j = c4,k = c6) ;
+ }
+ }
+}
+if (N >= 3) {
+ for (c2=3;c2<=2*M;c2++) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if (c2%2 == 0) {
+ S1(i = c2/2,j = c4,k = c6) ;
+ }
+ }
+ }
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if ((c2+1)%2 == 0) {
+ i = (c2-1)/2 ;
+ S2(j = c4,k = c6) ;
+ }
+ }
+ }
+ }
+}
+if ((M >= 1) && (N >= 3)) {
+ c2 = 2*M+1 ;
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ S2(i = M,j = c4,k = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/jacobi3.c.ppl b/test/reservoir/jacobi3.c.ppl
new file mode 100644
index 0000000..2e17c82
--- /dev/null
+++ b/test/reservoir/jacobi3.c.ppl
@@ -0,0 +1,35 @@
+/* Generated from ././reservoir/jacobi3.cloog by CLooG 0.15 64 bits in 0.04s. */
+if ((M >= 1) && (N >= 3)) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ S1(i = 1,j = c4,k = c6) ;
+ }
+ }
+}
+if (N >= 3) {
+ for (c2=3;c2<=2*M;c2++) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if (c2%2 == 0) {
+ S1(i = c2/2,j = c4,k = c6) ;
+ }
+ }
+ }
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if ((c2+1)%2 == 0) {
+ i = (c2-1)/2 ;
+ S2(j = c4,k = c6) ;
+ }
+ }
+ }
+ }
+}
+if ((M >= 1) && (N >= 3)) {
+ c2 = 2*M+1 ;
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ S2(i = M,j = c4,k = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/jacobi3.cloog b/test/reservoir/jacobi3.cloog
new file mode 100755
index 0000000..dff32ff
--- /dev/null
+++ b/test/reservoir/jacobi3.cloog
@@ -0,0 +1,64 @@
+# Language
+c
+
+# Context
+
+ 1 4
+ 1 0 0 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+m-1 >= 0, 1 >= 0 }
+
+ 7 7
+ 1 1 0 0 0 0 -1
+ 1 -1 0 0 1 0 0
+ 1 0 1 0 0 0 -2
+ 1 0 -1 0 0 1 -1
+ 1 0 0 1 0 0 -2
+ 1 0 0 -1 0 1 -1
+ 1 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+m-1 >= 0, 1 >= 0 }
+
+ 7 7
+ 1 1 0 0 0 0 -1
+ 1 -1 0 0 1 0 0
+ 1 0 1 0 0 0 -2
+ 1 0 -1 0 0 1 -1
+ 1 0 0 1 0 0 -2
+ 1 0 0 -1 0 1 -1
+ 1 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 8 14
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -2 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 14
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -2 0 0 0 0 -1
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/lim-lam1.c.polylib b/test/reservoir/lim-lam1.c.polylib
new file mode 100644
index 0000000..676d47f
--- /dev/null
+++ b/test/reservoir/lim-lam1.c.polylib
@@ -0,0 +1,39 @@
+/* Generated from ./reservoir/lim-lam1.cloog by CLooG v0.14.0 gmp bits in 0.02s. */
+/* CLooG asked for 188 KBytes. */
+S1(i = 1,j = 100) ;
+for (c2=-98;c2<=0;c2++) {
+ c4 = -2*c2+2 ;
+ j = -c2+1 ;
+ S1(i = 1) ;
+ for (c4=-2*c2+3;c4<=199;c4++) {
+ if (c4%2 == 0) {
+ i = (2*c2+c4)/2 ;
+ S1(j = c4/2) ;
+ }
+ if ((c4+1)%2 == 0) {
+ i = (2*c2+c4-1)/2 ;
+ j = (c4+1)/2 ;
+ S2 ;
+ }
+ }
+ i = c2+100 ;
+ S1(j = 100) ;
+}
+for (c2=1;c2<=99;c2++) {
+ S2(i = c2,j = 1) ;
+ for (c4=2;c4<=-2*c2+200;c4++) {
+ if (c4%2 == 0) {
+ i = (2*c2+c4)/2 ;
+ S1(j = c4/2) ;
+ }
+ if ((c4+1)%2 == 0) {
+ i = (2*c2+c4-1)/2 ;
+ j = (c4+1)/2 ;
+ S2 ;
+ }
+ }
+ c4 = -2*c2+201 ;
+ j = -c2+101 ;
+ S2(i = 100) ;
+}
+S2(i = 100,j = 1) ;
diff --git a/test/reservoir/lim-lam1.c.ppl b/test/reservoir/lim-lam1.c.ppl
new file mode 100644
index 0000000..5326e44
--- /dev/null
+++ b/test/reservoir/lim-lam1.c.ppl
@@ -0,0 +1,38 @@
+/* Generated from ././reservoir/lim-lam1.cloog by CLooG 0.15 64 bits in 0.02s. */
+S1(i = 1,j = 100) ;
+for (c2=-98;c2<=0;c2++) {
+ c4 = -2*c2+2 ;
+ j = -c2+1 ;
+ S1(i = 1) ;
+ for (c4=-2*c2+3;c4<=199;c4++) {
+ if (c4%2 == 0) {
+ i = (2*c2+c4)/2 ;
+ S1(j = c4/2) ;
+ }
+ if ((c4+1)%2 == 0) {
+ i = (2*c2+c4-1)/2 ;
+ j = (c4+1)/2 ;
+ S2 ;
+ }
+ }
+ i = c2+100 ;
+ S1(j = 100) ;
+}
+for (c2=1;c2<=99;c2++) {
+ S2(i = c2,j = 1) ;
+ for (c4=2;c4<=-2*c2+200;c4++) {
+ if (c4%2 == 0) {
+ i = (2*c2+c4)/2 ;
+ S1(j = c4/2) ;
+ }
+ if ((c4+1)%2 == 0) {
+ i = (2*c2+c4-1)/2 ;
+ j = (c4+1)/2 ;
+ S2 ;
+ }
+ }
+ c4 = -2*c2+201 ;
+ j = -c2+101 ;
+ S2(i = 100) ;
+}
+S2(i = 100,j = 1) ;
diff --git a/test/reservoir/lim-lam1.cloog b/test/reservoir/lim-lam1.cloog
new file mode 100644
index 0000000..7a7c684
--- /dev/null
+++ b/test/reservoir/lim-lam1.cloog
@@ -0,0 +1,54 @@
+# Language
+c
+
+# Context
+
+ 1 2
+ 1 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j) | i-1 >= 0, -i+100 >= 0, j-1 >= 0, -j+100 >= 0 }
+
+ 4 4
+ 1 1 0 -1
+ 1 -1 0 100
+ 1 0 1 -1
+ 1 0 -1 100
+
+0 0 0
+1
+# { (i,j) | i-1 >= 0, -i+100 >= 0, j-1 >= 0, -j+100 >= 0 }
+
+ 4 4
+ 1 1 0 -1
+ 1 -1 0 100
+ 1 0 1 -1
+ 1 0 -1 100
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 6 9
+ 0 1 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 1 0
+ 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 1 0 0 -2 0
+ 0 0 0 0 0 1 0 0 0
+ 1 0 0 0 0 0 0 0 1
+
+
+ 6 9
+ 0 1 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 1 -1
+ 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 1 0 0 -2 1
+ 0 0 0 0 0 1 0 0 -1
+ 1 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/lim-lam2.c.polylib b/test/reservoir/lim-lam2.c.polylib
new file mode 100644
index 0000000..ae4670d
--- /dev/null
+++ b/test/reservoir/lim-lam2.c.polylib
@@ -0,0 +1,19 @@
+/* Generated from lim-lam2.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=1;c2<=M;c2++) {
+ S1(i = c2) ;
+}
+if (N >= 2) {
+ for (c2=1;c2<=M;c2++) {
+ for (c4=2;c4<=N;c4++) {
+ S2(i = c2,j = c4) ;
+ }
+ }
+}
+if (N >= 2) {
+ for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ S3(i = c2,j = c4) ;
+ }
+ }
+}
diff --git a/test/reservoir/lim-lam2.c.ppl b/test/reservoir/lim-lam2.c.ppl
new file mode 100644
index 0000000..6c7b915
--- /dev/null
+++ b/test/reservoir/lim-lam2.c.ppl
@@ -0,0 +1,18 @@
+/* Generated from ././reservoir/lim-lam2.cloog by CLooG 0.15 64 bits in 0.01s. */
+for (c2=1;c2<=M;c2++) {
+ S1(i = c2) ;
+}
+if (N >= 2) {
+ for (c2=1;c2<=M;c2++) {
+ for (c4=2;c4<=N;c4++) {
+ S2(i = c2,j = c4) ;
+ }
+ }
+}
+if (N >= 2) {
+ for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ S3(i = c2,j = c4) ;
+ }
+ }
+}
diff --git a/test/reservoir/lim-lam2.cloog b/test/reservoir/lim-lam2.cloog
new file mode 100755
index 0000000..db50b74
--- /dev/null
+++ b/test/reservoir/lim-lam2.cloog
@@ -0,0 +1,76 @@
+# Language
+c
+
+# Context
+
+ 3 4
+ 1 1 0 -1
+ 1 0 1 -1
+ 1 0 0 1
+0
+
+# Number of statments
+3
+
+1
+# { (i,j,k) | i-1 >= 0, -i+j >= 0, 1 >= 0 }
+
+ 3 5
+ 1 1 0 0 -1
+ 1 -1 1 0 0
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i-1 >= 0, -i+k >= 0, j-2 >= 0, -j+l >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 -1
+ 1 -1 0 1 0 0
+ 1 0 1 0 0 -2
+ 1 0 -1 0 1 0
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+l-1 >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 -1
+ 1 -1 0 1 0 0
+ 1 0 1 0 0 -1
+ 1 0 -1 0 1 -1
+ 1 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+3
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+
+ 6 11
+ 0 1 0 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 -1 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+
+ 6 11
+ 0 1 0 0 0 0 0 0 0 0 -2
+ 0 0 1 0 0 0 -1 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 -2
+ 0 0 0 0 1 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/lim-lam3.c.polylib b/test/reservoir/lim-lam3.c.polylib
new file mode 100644
index 0000000..1f7ad4d
--- /dev/null
+++ b/test/reservoir/lim-lam3.c.polylib
@@ -0,0 +1,47 @@
+/* Generated from ./reservoir/lim-lam3.cloog by CLooG v0.14.0 gmp bits in 0.04s. */
+/* CLooG asked for 304 KBytes. */
+for (c2=5;c2<=min(5*M,8);c2++) {
+ if (c2%5 == 0) {
+ S4(i = c2/5) ;
+ }
+}
+for (c2=9;c2<=min(13,5*M-1);c2++) {
+ for (c4=max(1,ceild(c2-M-3,4));c4<=floord(c2-4,5);c4++) {
+ i = c2-4*c4-3 ;
+ S2(j = c4) ;
+ }
+ if (c2%5 == 0) {
+ S4(i = c2/5) ;
+ }
+ for (c4=max(1,ceild(c2-3*M-1,2));c4<=floord(c2-4,5);c4++) {
+ if ((c2+c4+2)%3 == 0) {
+ i = (c2-2*c4-1)/3 ;
+ S3(j = c4) ;
+ }
+ }
+}
+for (c2=14;c2<=5*M-1;c2++) {
+ for (c4=max(2,ceild(c2-M-3,4));c4<=min(M-1,floord(c2-8,3));c4++) {
+ for (c6=max(1,ceild(c2-2*c4-M-5,2));c6<=min(c4-1,floord(c2-3*c4-6,2));c6++) {
+ i = c2-2*c4-2*c6-5 ;
+ S1(j = c4,k = c6) ;
+ }
+ }
+ for (c4=max(ceild(c2-M-3,4),1);c4<=floord(c2-4,5);c4++) {
+ i = c2-4*c4-3 ;
+ S2(j = c4) ;
+ }
+ if (c2%5 == 0) {
+ S4(i = c2/5) ;
+ }
+ for (c4=max(ceild(c2-3*M-1,2),1);c4<=floord(c2-4,5);c4++) {
+ if ((c2+c4+2)%3 == 0) {
+ i = (c2-2*c4-1)/3 ;
+ S3(j = c4) ;
+ }
+ }
+}
+if (M >= 2) {
+ c2 = 5*M ;
+ S4(i = M) ;
+}
diff --git a/test/reservoir/lim-lam3.c.ppl b/test/reservoir/lim-lam3.c.ppl
new file mode 100644
index 0000000..86b6e7b
--- /dev/null
+++ b/test/reservoir/lim-lam3.c.ppl
@@ -0,0 +1,46 @@
+/* Generated from ././reservoir/lim-lam3.cloog by CLooG 0.15 64 bits in 0.04s. */
+for (c2=5;c2<=min(5*M,8);c2++) {
+ if (c2%5 == 0) {
+ S4(i = c2/5) ;
+ }
+}
+for (c2=9;c2<=min(5*M-1,13);c2++) {
+ for (c4=max(ceild(c2-M-3,4),1);c4<=floord(c2-4,5);c4++) {
+ i = c2-4*c4-3 ;
+ S2(j = c4) ;
+ }
+ if (c2%5 == 0) {
+ S4(i = c2/5) ;
+ }
+ for (c4=max(ceild(c2-3*M-1,2),1);c4<=floord(c2-4,5);c4++) {
+ if ((c2+c4+2)%3 == 0) {
+ i = (c2-2*c4-1)/3 ;
+ S3(j = c4) ;
+ }
+ }
+}
+for (c2=14;c2<=5*M-1;c2++) {
+ for (c4=max(ceild(c2-M-3,4),2);c4<=min(floord(c2-8,3),M-1);c4++) {
+ for (c6=max(ceild(c2-2*c4-M-5,2),1);c6<=min(floord(c2-3*c4-6,2),c4-1);c6++) {
+ i = c2-2*c4-2*c6-5 ;
+ S1(j = c4,k = c6) ;
+ }
+ }
+ for (c4=max(ceild(c2-M-3,4),1);c4<=floord(c2-4,5);c4++) {
+ i = c2-4*c4-3 ;
+ S2(j = c4) ;
+ }
+ if (c2%5 == 0) {
+ S4(i = c2/5) ;
+ }
+ for (c4=max(ceild(c2-3*M-1,2),1);c4<=floord(c2-4,5);c4++) {
+ if ((c2+c4+2)%3 == 0) {
+ i = (c2-2*c4-1)/3 ;
+ S3(j = c4) ;
+ }
+ }
+}
+if (M >= 2) {
+ c2 = 5*M ;
+ S4(i = M) ;
+}
diff --git a/test/reservoir/lim-lam3.cloog b/test/reservoir/lim-lam3.cloog
new file mode 100755
index 0000000..0d3d4a5
--- /dev/null
+++ b/test/reservoir/lim-lam3.cloog
@@ -0,0 +1,101 @@
+# Language
+c
+
+# Context
+
+ 2 3
+ 1 1 -1
+ 1 0 1
+0
+
+# Number of statments
+4
+
+1
+# { (i,j,k,l) | -i+l >= 0, i-j-1 >= 0, k-1 >= 0, j-k-1 >= 0, 1 >= 0 }
+
+ 5 6
+ 1 -1 0 0 1 0
+ 1 1 -1 0 0 -1
+ 1 0 0 1 0 -1
+ 1 0 1 -1 0 -1
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | -i+k >= 0, j-1 >= 0, i-j-1 >= 0, 1 >= 0 }
+
+ 4 5
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 1 -1 0 -1
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | -i+k >= 0, j-1 >= 0, i-j-1 >= 0, 1 >= 0 }
+
+ 4 5
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 1 -1 0 -1
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j) | i-1 >= 0, -i+j >= 0, 1 >= 0 }
+
+ 3 4
+ 1 1 0 -1
+ 1 -1 1 0
+ 1 0 0 1
+
+0 0 0
+0
+# Scattering functions
+4
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 -2 -2 0 -5
+ 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 12
+ 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 -4 0 -3
+ 0 0 0 1 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 12
+ 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -3 -2 0 -1
+ 0 0 0 1 0 0 0 0 0 0 0 -2
+ 0 0 0 0 1 0 0 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 11
+ 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -5 0 0
+ 0 0 0 1 0 0 0 0 0 0 -2
+ 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/lim-lam4.c.polylib b/test/reservoir/lim-lam4.c.polylib
new file mode 100644
index 0000000..c53f54b
--- /dev/null
+++ b/test/reservoir/lim-lam4.c.polylib
@@ -0,0 +1,22 @@
+/* Generated from lim-lam4.cloog by CLooG v0.14.0 64 bits in 0.01s. */
+/* CLooG asked for 160 KBytes. */
+if (M >= 2) {
+ S1(i = 1,j = 0,k = 0) ;
+}
+for (c2=2;c2<=2*M-2;c2++) {
+ for (c4=max(-M+1,-c2+1);c4<=-1;c4++) {
+ for (i=max(1,c2-M+1);i<=min(c2+c4,M-1);i++) {
+ j = c2+c4-i ;
+ S1(k = -c4) ;
+ }
+ for (c6=max(-c4,c2-M+1);c6<=min(c2-1,M-1);c6++) {
+ i = c2-c6 ;
+ j = c4+c6 ;
+ S2(k = c6) ;
+ }
+ }
+ for (i=max(1,c2-M+1);i<=min(M-1,c2);i++) {
+ j = c2-i ;
+ S1(k = 0) ;
+ }
+}
diff --git a/test/reservoir/lim-lam4.c.ppl b/test/reservoir/lim-lam4.c.ppl
new file mode 100644
index 0000000..e15c7be
--- /dev/null
+++ b/test/reservoir/lim-lam4.c.ppl
@@ -0,0 +1,21 @@
+/* Generated from ././reservoir/lim-lam4.cloog by CLooG 0.15 64 bits in 0.03s. */
+if (M >= 2) {
+ S1(i = 1,j = 0,k = 0) ;
+}
+for (c2=2;c2<=2*M-2;c2++) {
+ for (c4=max(-c2+1,-M+1);c4<=-1;c4++) {
+ for (i=max(c2-M+1,1);i<=min(c2+c4,M-1);i++) {
+ j = c2+c4-i ;
+ S1(k = -c4) ;
+ }
+ for (c6=max(c2-M+1,-c4);c6<=min(c2-1,M-1);c6++) {
+ i = c2-c6 ;
+ j = c4+c6 ;
+ S2(k = c6) ;
+ }
+ }
+ for (i=max(c2-M+1,1);i<=min(c2,M-1);i++) {
+ j = c2-i ;
+ S1(k = 0) ;
+ }
+}
diff --git a/test/reservoir/lim-lam4.cloog b/test/reservoir/lim-lam4.cloog
new file mode 100755
index 0000000..0aa66e3
--- /dev/null
+++ b/test/reservoir/lim-lam4.cloog
@@ -0,0 +1,62 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j,k,l) | i-1 >= 0, -i+l-1 >= 0, j >= 0, k >= 0, -j-k+l-1 >= 0, 1 >= 0 }
+
+ 6 6
+ 1 1 0 0 0 -1
+ 1 -1 0 0 1 -1
+ 1 0 1 0 0 0
+ 1 0 0 1 0 0
+ 1 0 -1 -1 1 -1
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i-1 >= 0, -i+l-1 >= 0, j >= 0, -j+k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 6 6
+ 1 1 0 0 0 -1
+ 1 -1 0 0 1 -1
+ 1 0 1 0 0 0
+ 1 0 -1 1 0 -1
+ 1 0 0 -1 1 -1
+ 1 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 -1 -1 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 0 1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 -1 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/lim-lam5.c.polylib b/test/reservoir/lim-lam5.c.polylib
new file mode 100644
index 0000000..01b43cf
--- /dev/null
+++ b/test/reservoir/lim-lam5.c.polylib
@@ -0,0 +1,17 @@
+/* Generated from lim-lam5.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S2(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S3(i = c2,j = c4) ;
+ }
+}
diff --git a/test/reservoir/lim-lam5.c.ppl b/test/reservoir/lim-lam5.c.ppl
new file mode 100644
index 0000000..96c3898
--- /dev/null
+++ b/test/reservoir/lim-lam5.c.ppl
@@ -0,0 +1,16 @@
+/* Generated from ././reservoir/lim-lam5.cloog by CLooG 0.15 64 bits in 0.01s. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S2(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S3(i = c2,j = c4) ;
+ }
+}
diff --git a/test/reservoir/lim-lam5.cloog b/test/reservoir/lim-lam5.cloog
new file mode 100755
index 0000000..c5d6ef9
--- /dev/null
+++ b/test/reservoir/lim-lam5.cloog
@@ -0,0 +1,76 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+3
+
+1
+# { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 -1
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 -1
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 -1
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+3
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 -2
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/lim-lam6.c.polylib b/test/reservoir/lim-lam6.c.polylib
new file mode 100644
index 0000000..139fef0
--- /dev/null
+++ b/test/reservoir/lim-lam6.c.polylib
@@ -0,0 +1,16 @@
+/* Generated from lim-lam6.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+if (M >= 1) {
+ for (c2=0;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+ }
+}
+if (M >= 1) {
+ for (c2=0;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S2(i = c4,j = c2) ;
+ }
+ }
+}
diff --git a/test/reservoir/lim-lam6.c.ppl b/test/reservoir/lim-lam6.c.ppl
new file mode 100644
index 0000000..727838b
--- /dev/null
+++ b/test/reservoir/lim-lam6.c.ppl
@@ -0,0 +1,15 @@
+/* Generated from ././reservoir/lim-lam6.cloog by CLooG 0.15 64 bits in 0.00s. */
+if (M >= 1) {
+ for (c2=0;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+ }
+}
+if (M >= 1) {
+ for (c2=0;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S2(i = c4,j = c2) ;
+ }
+ }
+}
diff --git a/test/reservoir/lim-lam6.cloog b/test/reservoir/lim-lam6.cloog
new file mode 100755
index 0000000..a1bf181
--- /dev/null
+++ b/test/reservoir/lim-lam6.cloog
@@ -0,0 +1,56 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j,k) | i >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 0
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | i-1 >= 0, -i+k >= 0, j >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 -1
+ 1 -1 0 1 0
+ 1 0 1 0 0
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 0 -1 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/liu-zhuge1.c.polylib b/test/reservoir/liu-zhuge1.c.polylib
new file mode 100644
index 0000000..2a99902
--- /dev/null
+++ b/test/reservoir/liu-zhuge1.c.polylib
@@ -0,0 +1,150 @@
+/* Generated from ./reservoir/liu-zhuge1.cloog by CLooG v0.14.0 gmp bits in 0.07s. */
+/* CLooG asked for 276 KBytes. */
+if ((M >= 0) && (N >= 0)) {
+ for (c2=-4;c2<=min(-1,3*M+N-4);c2++) {
+ for (c4=max(0,c2-3*M+4);c4<=min(c2+4,N);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ }
+}
+if ((M <= 1) && (M >= 0)) {
+ for (c2=0;c2<=3*M+N-4;c2++) {
+ for (c4=max(c2-3*M,0);c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ }
+ for (c4=c2-3*M+4;c4<=min(c2+4,N);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=max(0,c2-3*M);c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+ }
+}
+for (c2=0;c2<=min(3*M-4,N-1);c2++) {
+ for (c4=0;c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=c2+1;c4<=min(c2+4,N);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=0;c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+}
+if (M >= 2) {
+ for (c2=3*M-3;c2<=N-1;c2++) {
+ for (c4=max(c2-3*M,0);c4<=c2-3*M+3;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ }
+ for (c4=c2-3*M+4;c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=c2+1;c4<=min(c2+4,N);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=max(0,c2-3*M);c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+ }
+}
+if (N >= 0) {
+ for (c2=N;c2<=3*M-4;c2++) {
+ for (c4=0;c4<=N;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=0;c4<=N;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+ }
+}
+for (c2=max(3*M-3,N);c2<=3*M+N-4;c2++) {
+ for (c4=max(c2-3*M,0);c4<=c2-3*M+3;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ }
+ for (c4=c2-3*M+4;c4<=N;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=max(0,c2-3*M);c4<=N;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+}
+if ((M >= 0) && (N >= 0)) {
+ for (c2=max(3*M+N-3,0);c2<=3*M+N;c2++) {
+ for (c4=max(0,c2-3*M);c4<=min(c2,N);c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ }
+ for (c4=max(0,c2-3*M);c4<=min(c2,N);c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/liu-zhuge1.c.ppl b/test/reservoir/liu-zhuge1.c.ppl
new file mode 100644
index 0000000..221dda6
--- /dev/null
+++ b/test/reservoir/liu-zhuge1.c.ppl
@@ -0,0 +1,149 @@
+/* Generated from ././reservoir/liu-zhuge1.cloog by CLooG 0.15 64 bits in 0.08s. */
+if ((M >= 0) && (N >= 0)) {
+ for (c2=-4;c2<=min(3*M+N-4,-1);c2++) {
+ for (c4=max(c2-3*M+4,0);c4<=min(c2+4,N);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ }
+}
+if ((M >= 0) && (M <= 1)) {
+ for (c2=0;c2<=3*M+N-4;c2++) {
+ for (c4=max(c2-3*M,0);c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ }
+ for (c4=c2-3*M+4;c4<=min(c2+4,N);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=max(c2-3*M,0);c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+ }
+}
+for (c2=0;c2<=min(3*M-4,N-1);c2++) {
+ for (c4=0;c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=c2+1;c4<=min(c2+4,N);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=0;c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+}
+if (N >= 0) {
+ for (c2=N;c2<=3*M-4;c2++) {
+ for (c4=0;c4<=N;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=0;c4<=N;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+ }
+}
+if (M >= 2) {
+ for (c2=3*M-3;c2<=N-1;c2++) {
+ for (c4=max(c2-3*M,0);c4<=c2-3*M+3;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ }
+ for (c4=c2-3*M+4;c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=c2+1;c4<=min(c2+4,N);c4++) {
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=max(c2-3*M,0);c4<=c2;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+ }
+}
+for (c2=max(3*M-3,N);c2<=3*M+N-4;c2++) {
+ for (c4=max(c2-3*M,0);c4<=c2-3*M+3;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ }
+ for (c4=c2-3*M+4;c4<=N;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ if ((c2+2*c4+1)%3 == 0) {
+ i = (c2-c4+4)/3 ;
+ S1(j = c4) ;
+ }
+ }
+ for (c4=max(c2-3*M,0);c4<=N;c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+}
+if ((M >= 0) && (N >= 0)) {
+ for (c2=max(3*M+N-3,0);c2<=3*M+N;c2++) {
+ for (c4=max(c2-3*M,0);c4<=min(c2,N);c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S2(j = c4) ;
+ }
+ }
+ for (c4=max(c2-3*M,0);c4<=min(c2,N);c4++) {
+ if ((c2+2*c4)%3 == 0) {
+ i = (c2-c4)/3 ;
+ S3(j = c4) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/liu-zhuge1.cloog b/test/reservoir/liu-zhuge1.cloog
new file mode 100755
index 0000000..e28cb4b
--- /dev/null
+++ b/test/reservoir/liu-zhuge1.cloog
@@ -0,0 +1,76 @@
+# Language
+c
+
+# Context
+
+ 1 4
+ 1 0 0 1
+0
+
+# Number of statments
+3
+
+1
+# { (i,j,k,l) | i >= 0, -i+k >= 0, j >= 0, -j+l >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 0
+ 1 -1 0 1 0 0
+ 1 0 1 0 0 0
+ 1 0 -1 0 1 0
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i >= 0, -i+k >= 0, j >= 0, -j+l >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 0
+ 1 -1 0 1 0 0
+ 1 0 1 0 0 0
+ 1 0 -1 0 1 0
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i >= 0, -i+k >= 0, j >= 0, -j+l >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 0
+ 1 -1 0 1 0 0
+ 1 0 1 0 0 0
+ 1 0 -1 0 1 0
+ 1 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+3
+
+ 6 11
+ 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -3 -1 0 0 4
+ 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+
+ 6 11
+ 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -3 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+
+ 6 11
+ 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -3 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/loechner3.c.polylib b/test/reservoir/loechner3.c.polylib
new file mode 100644
index 0000000..18d8a5c
--- /dev/null
+++ b/test/reservoir/loechner3.c.polylib
@@ -0,0 +1,10 @@
+/* Generated from loechner3.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=2;c4<=c2+M;c4++) {
+ for (c6=max(1,-c2+c4);c6<=min(M,c4-1);c6++) {
+ k = c4-c6 ;
+ S1(i = c2,j = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/loechner3.c.ppl b/test/reservoir/loechner3.c.ppl
new file mode 100644
index 0000000..e06f1f4
--- /dev/null
+++ b/test/reservoir/loechner3.c.ppl
@@ -0,0 +1,9 @@
+/* Generated from ././reservoir/loechner3.cloog by CLooG 0.15 64 bits in 0.00s. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=2;c4<=c2+M;c4++) {
+ for (c6=max(-c2+c4,1);c6<=min(c4-1,M);c6++) {
+ k = c4-c6 ;
+ S1(i = c2,j = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/loechner3.cloog b/test/reservoir/loechner3.cloog
new file mode 100755
index 0000000..04b34cb
--- /dev/null
+++ b/test/reservoir/loechner3.cloog
@@ -0,0 +1,39 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+1
+
+1
+# { (i,j,k,l) | -i+l >= 0, j-1 >= 0, -j+l >= 0, k-1 >= 0, i-k >= 0, 1 >= 0 }
+
+ 6 6
+ 1 -1 0 0 1 0
+ 1 0 1 0 0 -1
+ 1 0 -1 0 1 0
+ 1 0 0 1 0 -1
+ 1 1 0 -1 0 0
+ 1 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+1
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 -1 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/loechner4.c.polylib b/test/reservoir/loechner4.c.polylib
new file mode 100644
index 0000000..63a2f3a
--- /dev/null
+++ b/test/reservoir/loechner4.c.polylib
@@ -0,0 +1,12 @@
+/* Generated from loechner4.cloog by CLooG v0.14.0 64 bits in 0.01s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=2;c2<=2*M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ for (c8=max(1,c2-M);c8<=min(c2-1,M);c8++) {
+ l = c2-c8 ;
+ S1(i = c6,j = c4,k = c8) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/loechner4.c.ppl b/test/reservoir/loechner4.c.ppl
new file mode 100644
index 0000000..f4bf9ef
--- /dev/null
+++ b/test/reservoir/loechner4.c.ppl
@@ -0,0 +1,11 @@
+/* Generated from ././reservoir/loechner4.cloog by CLooG 0.15 64 bits in 0.02s. */
+for (c2=2;c2<=2*M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ for (c8=max(c2-M,1);c8<=min(c2-1,M);c8++) {
+ l = c2-c8 ;
+ S1(i = c6,j = c4,k = c8) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/loechner4.cloog b/test/reservoir/loechner4.cloog
new file mode 100755
index 0000000..503f56a
--- /dev/null
+++ b/test/reservoir/loechner4.cloog
@@ -0,0 +1,44 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+1
+
+1
+# { (i,j,k,l,m) | i-1 >= 0, -i+m >= 0, j-1 >= 0, -j+m >= 0, k-1 >= 0, -k+m >= 0, l-1 >= 0, -l+m >= 0, 1 >= 0 }
+
+ 9 7
+ 1 1 0 0 0 0 -1
+ 1 -1 0 0 0 1 0
+ 1 0 1 0 0 0 -1
+ 1 0 -1 0 0 1 0
+ 1 0 0 1 0 0 -1
+ 1 0 0 -1 0 1 0
+ 1 0 0 0 1 0 -1
+ 1 0 0 0 -1 1 0
+ 1 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+1
+
+ 10 16
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 0 0 0 0 -1 -1 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/loechner5.c.polylib b/test/reservoir/loechner5.c.polylib
new file mode 100644
index 0000000..4968cf0
--- /dev/null
+++ b/test/reservoir/loechner5.c.polylib
@@ -0,0 +1,11 @@
+/* Generated from loechner5.cloog by CLooG v0.14.0 64 bits in 0.01s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ for (c8=1;c8<=M;c8++) {
+ S1(i = c4,j = c6,k = c2,l = c8) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/loechner5.c.ppl b/test/reservoir/loechner5.c.ppl
new file mode 100644
index 0000000..9c05d30
--- /dev/null
+++ b/test/reservoir/loechner5.c.ppl
@@ -0,0 +1,10 @@
+/* Generated from ././reservoir/loechner5.cloog by CLooG 0.15 64 bits in 0.02s. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ for (c8=1;c8<=M;c8++) {
+ S1(i = c4,j = c6,k = c2,l = c8) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/loechner5.cloog b/test/reservoir/loechner5.cloog
new file mode 100755
index 0000000..f208435
--- /dev/null
+++ b/test/reservoir/loechner5.cloog
@@ -0,0 +1,44 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+1
+
+1
+# { (i,j,k,l,m) | i-1 >= 0, -i+m >= 0, j-1 >= 0, -j+m >= 0, k-1 >= 0, -k+m >= 0, l-1 >= 0, -l+m >= 0, 1 >= 0 }
+
+ 9 7
+ 1 1 0 0 0 0 -1
+ 1 -1 0 0 0 1 0
+ 1 0 1 0 0 0 -1
+ 1 0 -1 0 0 1 0
+ 1 0 0 1 0 0 -1
+ 1 0 0 -1 0 1 0
+ 1 0 0 0 1 0 -1
+ 1 0 0 0 -1 1 0
+ 1 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+1
+
+ 10 16
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 0 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0
+ 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/long.c.polylib b/test/reservoir/long.c.polylib
new file mode 100644
index 0000000..54f1f59
--- /dev/null
+++ b/test/reservoir/long.c.polylib
@@ -0,0 +1,20 @@
+/* Generated from long.cloog by CLooG v0.14.0 64 bits in 11.58s. */
+/* CLooG asked for 1888 KBytes. */
+for (c2=1;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S1(i = c2,j = c4,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S2(i = c2,j = c4,k = c6) ;
+ }
+ }
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S3(i = c2,j = c4,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S4(i = c2,j = c4,k = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/long.c.ppl b/test/reservoir/long.c.ppl
new file mode 100644
index 0000000..54f1f59
--- /dev/null
+++ b/test/reservoir/long.c.ppl
@@ -0,0 +1,20 @@
+/* Generated from long.cloog by CLooG v0.14.0 64 bits in 11.58s. */
+/* CLooG asked for 1888 KBytes. */
+for (c2=1;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S1(i = c2,j = c4,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S2(i = c2,j = c4,k = c6) ;
+ }
+ }
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S3(i = c2,j = c4,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S4(i = c2,j = c4,k = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/long.cloog b/test/reservoir/long.cloog
new file mode 100644
index 0000000..aae4a18
--- /dev/null
+++ b/test/reservoir/long.cloog
@@ -0,0 +1,127 @@
+# Language
+c
+
+# Context
+
+ 15 11
+ 1 1 0 0 0 0 0 0 0 0 -10
+ 1 0 1 0 0 0 0 0 0 0 -10
+ 1 0 0 1 0 0 0 0 0 0 -10
+ 1 0 0 0 1 0 0 0 0 0 -1
+ 1 0 0 0 -1 0 0 0 0 0 2
+ 1 0 0 0 0 1 0 0 0 0 -1
+ 1 0 0 0 0 -1 0 0 0 0 2
+ 1 0 0 0 0 0 1 0 0 0 -1
+ 1 0 0 0 0 0 -1 0 0 0 2
+ 1 0 0 0 0 0 0 1 0 0 0
+ 1 0 0 0 0 0 0 -1 0 0 1
+ 1 0 0 0 0 0 0 0 1 0 0
+ 1 0 0 0 0 0 0 0 -1 0 1
+ 1 0 0 0 0 0 0 0 0 1 0
+ 1 0 0 0 0 0 0 0 0 -1 1
+0
+
+# Number of statments
+4
+
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 -1 0 0 0 0 0
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 -1 0 0 0 0 0 0
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 -1 0 0 0 0 0
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 -1 0 0 0 0 0 0
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+4
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
+
diff --git a/test/reservoir/makefile b/test/reservoir/makefile
new file mode 100644
index 0000000..2d33fb6
--- /dev/null
+++ b/test/reservoir/makefile
@@ -0,0 +1,79 @@
+#
+# /**-------------------------------------------------------------------**
+# ** CLooG **
+# **-------------------------------------------------------------------**
+# ** makefile **
+# **-------------------------------------------------------------------**
+# ** First version: march 6th 2003 **
+# **-------------------------------------------------------------------**/
+#
+# makefile for checking.
+
+#/*****************************************************************************
+# * CLooG : the Chunky Loop Generator (experimental) *
+# *****************************************************************************
+# * *
+# * Copyright (C) 2003 Cedric Bastoul *
+# * *
+# * This is free software; you can redistribute it and/or modify it under the *
+# * terms of the GNU General Public License as published by the Free Software *
+# * Foundation; either version 2 of the License, or (at your option) any *
+# * later version. *
+# * *
+# * This software is distributed in the hope that it will be useful, but *
+# * WITHOUT ANY WARRANTY; without even the implied warranty of *
+# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General *
+# * Public License for more details. *
+# * *
+# * You should have received a copy of the GNU General Public License along *
+# * with software; if not, write to the Free Software Foundation, Inc., *
+# * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
+# * *
+# * CLooG, the Chunky Loop Generator *
+# * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr *
+# * This file has been written with the help of the Bart Kienhuis's checking *
+# * makefile for PipLib. *
+# * *
+# *****************************************************************************/
+
+CLOOGTEST_C = \
+ cholesky2 \
+ fusion1 \
+ fusion2 \
+ jacobi2 \
+ jacobi3 \
+ lim-lam1 \
+ lim-lam2 \
+ lim-lam3 \
+ lim-lam4 \
+ lim-lam5 \
+ lim-lam6 \
+ liu-zhuge1 \
+ loechner3 \
+ loechner4 \
+ loechner5 \
+ long \
+ mg-interp2 \
+ mg-interp \
+ mg-psinv \
+ mg-resid \
+ mg-rprj3 \
+ pingali1 \
+ pingali2 \
+ pingali3 \
+ pingali4 \
+ pingali5 \
+ pingali6 \
+ QR \
+ tang-xue1 \
+ two
+
+
+generate:
+ @echo " /*-----------------------------------------------*"
+ @echo " * Generate files *"
+ @echo " *-----------------------------------------------*/"
+ for x in $(CLOOGTEST_C) ; do \
+ echo "Generate $$x.c" ; \
+ ../../obj_i686-pc-linux-gnu/cloog $$x.cloog -o $$x.c ; \
+ done
diff --git a/test/reservoir/mg-interp.c.polylib b/test/reservoir/mg-interp.c.polylib
new file mode 100644
index 0000000..df7820e
--- /dev/null
+++ b/test/reservoir/mg-interp.c.polylib
@@ -0,0 +1,288 @@
+/* Generated from ./reservoir/mg-interp.cloog by CLooG v0.14.0 gmp bits in 0.96s. */
+/* CLooG asked for 3476 KBytes. */
+if ((M >= 2) && (N >= 4)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 1,k = c6) ;
+ S7(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ S3(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ S1(i = c2,j = 2,k = M) ;
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 2,k = c6) ;
+ S7(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S11(i = c2,j = 1,k = c6) ;
+ }
+ for (c4=3;c4<=2*N-5;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4-1)/2 ;
+ S10(i = c2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S3(i = c2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ j = (c4+2)/2 ;
+ S6(i = c2,k = c6) ;
+ S7(i = c2,k = c6) ;
+ }
+ if ((c4+1)%2 == 0) {
+ j = (c4+3)/2 ;
+ S1(i = c2,k = c6) ;
+ }
+ }
+ if ((c4+1)%2 == 0) {
+ j = (c4+3)/2 ;
+ S1(i = c2,k = M) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ S11(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ }
+ c4 = 2*N-4 ;
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-1 ;
+ S6(i = c2,k = c6) ;
+ S7(i = c2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-2 ;
+ S11(i = c2,k = c6) ;
+ }
+ c4 = 2*N-3 ;
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-2 ;
+ S10(i = c2,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ j = N-1 ;
+ S3(i = c2,k = c6) ;
+ }
+ c4 = 2*N-2 ;
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-1 ;
+ S11(i = c2,k = c6) ;
+ }
+ c4 = 2*N-1 ;
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-1 ;
+ S10(i = c2,k = c6) ;
+ }
+ }
+}
+if ((M >= 2) && (N == 3)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 1,k = c6) ;
+ S7(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ S3(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ S1(i = c2,j = 2,k = M) ;
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 2,k = c6) ;
+ S7(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S11(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S10(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ S3(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S11(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S10(i = c2,j = 2,k = c6) ;
+ }
+ }
+}
+if ((M >= 2) && (N == 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 1,k = c6) ;
+ S7(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ S3(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S11(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S10(i = c2,j = 1,k = c6) ;
+ }
+ }
+}
+if ((M == 1) && (N >= 3)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=-1;c4<=0;c4++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+3)/2 ;
+ S1(i = c2,k = 1) ;
+ }
+ }
+ for (c4=1;c4<=2*N-5;c4++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S3(i = c2,k = 1) ;
+ }
+ if ((c4+1)%2 == 0) {
+ j = (c4+3)/2 ;
+ S1(i = c2,k = 1) ;
+ }
+ }
+ for (c4=2*N-4;c4<=2*N-3;c4++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S3(i = c2,k = 1) ;
+ }
+ }
+ }
+}
+if ((M == 1) && (N == 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ S1(i = c2,j = 1,k = 1) ;
+ S3(i = c2,j = 1,k = 1) ;
+ }
+}
+if ((M >= 2) && (N >= 3)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S2(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S8(i = c2,j = 1,k = c6) ;
+ }
+ for (c4=3;c4<=2*N-2;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if (c4%2 == 0) {
+ S2(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ S8(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4-1)/2 ;
+ S9(i = c2,k = c6) ;
+ }
+ }
+ }
+ c4 = 2*N-1 ;
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-1 ;
+ S9(i = c2,k = c6) ;
+ }
+ }
+}
+if ((M >= 2) && (N == 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S2(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S8(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S9(i = c2,j = 1,k = c6) ;
+ }
+ }
+}
+if ((M == 1) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=2;c4<=2*N-2;c4++) {
+ if (c4%2 == 0) {
+ S2(i = c2,j = c4/2,k = 1) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S4(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S5(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= P+1) && (N >= Q+1)) {
+ for (c2=R;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S12(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= Q+1)) {
+ for (c2=R;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S13(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= P+1) && (N >= 2)) {
+ for (c2=R;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S14(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= 2)) {
+ for (c2=R;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S15(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/mg-interp.c.ppl b/test/reservoir/mg-interp.c.ppl
new file mode 100644
index 0000000..4c891c3
--- /dev/null
+++ b/test/reservoir/mg-interp.c.ppl
@@ -0,0 +1,311 @@
+/* Generated from ././reservoir/mg-interp.cloog by CLooG 0.15 64 bits in 1.58s. */
+if ((M >= 2) && (N == 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 1,k = c6) ;
+ S7(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ S3(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S11(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S10(i = c2,j = 1,k = c6) ;
+ }
+ }
+}
+if ((M >= 2) && (N == 3)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 1,k = c6) ;
+ S7(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ S3(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ S1(i = c2,j = 2,k = M) ;
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 2,k = c6) ;
+ S7(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S11(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S10(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ S3(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S11(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S10(i = c2,j = 2,k = c6) ;
+ }
+ }
+}
+if ((M >= 2) && (N >= 4)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 1,k = c6) ;
+ S7(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ S3(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ S1(i = c2,j = 2,k = M) ;
+ for (c6=1;c6<=M-1;c6++) {
+ S6(i = c2,j = 2,k = c6) ;
+ S7(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S11(i = c2,j = 1,k = c6) ;
+ }
+ for (c4=3;c4<=2*N-5;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4-1)/2 ;
+ S10(i = c2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S3(i = c2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ j = (c4+2)/2 ;
+ S6(i = c2,k = c6) ;
+ S7(i = c2,k = c6) ;
+ }
+ if ((c4+1)%2 == 0) {
+ j = (c4+3)/2 ;
+ S1(i = c2,k = c6) ;
+ }
+ }
+ if ((c4+1)%2 == 0) {
+ j = (c4+3)/2 ;
+ S1(i = c2,k = M) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ S11(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ }
+ c4 = 2*N-4 ;
+ for (c6=1;c6<=M-1;c6++) {
+ if (1%2 == 0) {
+ j = (2*N-5)/2 ;
+ S10(i = c2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M;c6++) {
+ if (1%2 == 0) {
+ j = (2*N-3)/2 ;
+ S3(i = c2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-1 ;
+ S6(i = c2,k = c6) ;
+ S7(i = c2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-2 ;
+ S11(i = c2,k = c6) ;
+ }
+ c4 = 2*N-3 ;
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-2 ;
+ S10(i = c2,k = c6) ;
+ }
+ for (c6=1;c6<=M;c6++) {
+ j = N-1 ;
+ S3(i = c2,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (1%2 == 0) {
+ j = (2*N-3)/2 ;
+ S11(i = c2,k = c6) ;
+ }
+ }
+ c4 = 2*N-2 ;
+ for (c6=1;c6<=M-1;c6++) {
+ if (1%2 == 0) {
+ j = (2*N-3)/2 ;
+ S10(i = c2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-1 ;
+ S11(i = c2,k = c6) ;
+ }
+ c4 = 2*N-1 ;
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-1 ;
+ S10(i = c2,k = c6) ;
+ }
+ }
+}
+if ((M == 1) && (N >= 3)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=-1;c4<=0;c4++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+3)/2 ;
+ S1(i = c2,k = 1) ;
+ }
+ }
+ for (c4=1;c4<=2*N-5;c4++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S3(i = c2,k = 1) ;
+ }
+ if ((c4+1)%2 == 0) {
+ j = (c4+3)/2 ;
+ S1(i = c2,k = 1) ;
+ }
+ }
+ for (c4=2*N-4;c4<=2*N-3;c4++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S3(i = c2,k = 1) ;
+ }
+ }
+ }
+}
+if ((M == 1) && (N == 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ S1(i = c2,j = 1,k = 1) ;
+ S3(i = c2,j = 1,k = 1) ;
+ }
+}
+if ((M >= 2) && (N >= 3)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S2(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S8(i = c2,j = 1,k = c6) ;
+ }
+ for (c4=3;c4<=2*N-2;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if (c4%2 == 0) {
+ S2(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ S8(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4-1)/2 ;
+ S9(i = c2,k = c6) ;
+ }
+ }
+ }
+ c4 = 2*N-1 ;
+ for (c6=1;c6<=M-1;c6++) {
+ j = N-1 ;
+ S9(i = c2,k = c6) ;
+ }
+ }
+}
+if ((M >= 2) && (N == 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S2(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S8(i = c2,j = 1,k = c6) ;
+ }
+ for (c6=1;c6<=M-1;c6++) {
+ S9(i = c2,j = 1,k = c6) ;
+ }
+ }
+}
+if ((M == 1) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=2;c4<=2*N-2;c4++) {
+ if (c4%2 == 0) {
+ S2(i = c2,j = c4/2,k = 1) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S4(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S5(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= P+1) && (N >= Q+1)) {
+ for (c2=R;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S12(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= Q+1)) {
+ for (c2=R;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S13(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= P+1) && (N >= 2)) {
+ for (c2=R;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S14(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= 2)) {
+ for (c2=R;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S15(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/mg-interp.cloog b/test/reservoir/mg-interp.cloog
new file mode 100755
index 0000000..9d08463
--- /dev/null
+++ b/test/reservoir/mg-interp.cloog
@@ -0,0 +1,376 @@
+# Language
+c
+
+# Context
+
+ 1 11
+ 1 0 0 0 0 0 0 0 0 0 1
+0
+
+# Number of statments
+15
+
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-q >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 -1 0 0 0 0
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 -1 0 0 0 0 0
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 -1 0 0 0 0 0 0
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-q >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 -1 0 0 0 0
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 -1 0 0 0 0 0
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-q >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 -1 0 0 0 0
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 -1 0 0 0 0 0 0
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-q >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 -1 0 0 0 0
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+15
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 3
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -2
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 2
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 2
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/mg-interp2.c.polylib b/test/reservoir/mg-interp2.c.polylib
new file mode 100644
index 0000000..a19c581
--- /dev/null
+++ b/test/reservoir/mg-interp2.c.polylib
@@ -0,0 +1,38 @@
+/* Generated from mg-interp2.cloog by CLooG v0.14.0 64 bits in 0.02s. */
+/* CLooG asked for 160 KBytes. */
+if ((M >= P+1) && (N >= Q+1)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S1(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= Q+1)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S2(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= P+1) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S3(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S4(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/mg-interp2.c.ppl b/test/reservoir/mg-interp2.c.ppl
new file mode 100644
index 0000000..0b455ad
--- /dev/null
+++ b/test/reservoir/mg-interp2.c.ppl
@@ -0,0 +1,37 @@
+/* Generated from ././reservoir/mg-interp2.cloog by CLooG 0.15 64 bits in 0.06s. */
+if ((M >= P+1) && (N >= Q+1)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S1(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= Q+1)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=Q;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S2(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= P+1) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=P;c6<=M-1;c6++) {
+ S3(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
+if ((M >= 2) && (N >= 2)) {
+ for (c2=1;c2<=O-1;c2++) {
+ for (c4=1;c4<=N-1;c4++) {
+ for (c6=1;c6<=M-1;c6++) {
+ S4(i = c2,j = c4,k = c6) ;
+ }
+ }
+ }
+}
diff --git a/test/reservoir/mg-interp2.cloog b/test/reservoir/mg-interp2.cloog
new file mode 100755
index 0000000..d1218bc
--- /dev/null
+++ b/test/reservoir/mg-interp2.cloog
@@ -0,0 +1,112 @@
+# Language
+c
+
+# Context
+
+ 1 11
+ 1 0 0 0 0 0 0 0 0 0 1
+0
+
+# Number of statments
+4
+
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 -1 0 0 0 0 0
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 -1 0 0 0 0 0 0
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 -1 0 0 0 0 0
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 -1 0 0 0 0 0 0
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 14
+ 1 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+4
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 21
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/mg-psinv.c.polylib b/test/reservoir/mg-psinv.c.polylib
new file mode 100644
index 0000000..89abd98
--- /dev/null
+++ b/test/reservoir/mg-psinv.c.polylib
@@ -0,0 +1,53 @@
+/* Generated from ./reservoir/mg-psinv.cloog by CLooG v0.14.0 gmp bits in 0.06s. */
+/* CLooG asked for 300 KBytes. */
+if ((M >= 3) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ for (c4=4;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S1(i = c2,k = c6) ;
+ S2(i = c2,k = c6) ;
+ }
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ S3(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ }
+ c4 = 2*N-2 ;
+ for (c6=2;c6<=M-1;c6++) {
+ j = N-1 ;
+ S3(i = c2,k = c6) ;
+ }
+ }
+}
+if ((M >= 3) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ S3(i = c2,j = 2,k = c6) ;
+ }
+ }
+}
+if ((M >= 1) && (M <= 2) && (N >= 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c4=3;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S1(i = c2,k = c6) ;
+ S2(i = c2,k = c6) ;
+ }
+ }
+ }
+ }
+}
diff --git a/test/reservoir/mg-psinv.c.ppl b/test/reservoir/mg-psinv.c.ppl
new file mode 100644
index 0000000..5179314
--- /dev/null
+++ b/test/reservoir/mg-psinv.c.ppl
@@ -0,0 +1,52 @@
+/* Generated from ././reservoir/mg-psinv.cloog by CLooG 0.15 64 bits in 0.05s. */
+if ((M >= 3) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ for (c4=4;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S1(i = c2,k = c6) ;
+ S2(i = c2,k = c6) ;
+ }
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ S3(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ }
+ c4 = 2*N-2 ;
+ for (c6=2;c6<=M-1;c6++) {
+ j = N-1 ;
+ S3(i = c2,k = c6) ;
+ }
+ }
+}
+if ((M >= 3) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ S3(i = c2,j = 2,k = c6) ;
+ }
+ }
+}
+if ((M >= 1) && (M <= 2) && (N >= 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c4=3;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S1(i = c2,k = c6) ;
+ S2(i = c2,k = c6) ;
+ }
+ }
+ }
+ }
+}
diff --git a/test/reservoir/mg-psinv.cloog b/test/reservoir/mg-psinv.cloog
new file mode 100755
index 0000000..7f0dd2c
--- /dev/null
+++ b/test/reservoir/mg-psinv.cloog
@@ -0,0 +1,88 @@
+# Language
+c
+
+# Context
+
+ 1 5
+ 1 0 0 0 1
+0
+
+# Number of statments
+3
+
+1
+# { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 8
+ 1 1 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 -1
+ 1 0 1 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 -1
+ 1 0 0 1 0 0 0 -1
+ 1 0 0 -1 1 0 0 0
+ 1 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 8
+ 1 1 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 -1
+ 1 0 1 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 -1
+ 1 0 0 1 0 0 0 -1
+ 1 0 0 -1 1 0 0 0
+ 1 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 8
+ 1 1 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 -1
+ 1 0 1 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 -1
+ 1 0 0 1 0 0 0 -2
+ 1 0 0 -1 1 0 0 -1
+ 1 0 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+3
+
+ 8 15
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 15
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 15
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/mg-resid.c.polylib b/test/reservoir/mg-resid.c.polylib
new file mode 100644
index 0000000..3d0ec6f
--- /dev/null
+++ b/test/reservoir/mg-resid.c.polylib
@@ -0,0 +1,53 @@
+/* Generated from ./reservoir/mg-resid.cloog by CLooG v0.14.0 gmp bits in 0.06s. */
+/* CLooG asked for 300 KBytes. */
+if ((M >= 3) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ for (c4=4;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S1(i = c2,k = c6) ;
+ S2(i = c2,k = c6) ;
+ }
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ S3(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ }
+ c4 = 2*N-2 ;
+ for (c6=2;c6<=M-1;c6++) {
+ j = N-1 ;
+ S3(i = c2,k = c6) ;
+ }
+ }
+}
+if ((M >= 3) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ S3(i = c2,j = 2,k = c6) ;
+ }
+ }
+}
+if ((M >= 1) && (M <= 2) && (N >= 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c4=3;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S1(i = c2,k = c6) ;
+ S2(i = c2,k = c6) ;
+ }
+ }
+ }
+ }
+}
diff --git a/test/reservoir/mg-resid.c.ppl b/test/reservoir/mg-resid.c.ppl
new file mode 100644
index 0000000..9c9dd4e
--- /dev/null
+++ b/test/reservoir/mg-resid.c.ppl
@@ -0,0 +1,52 @@
+/* Generated from ././reservoir/mg-resid.cloog by CLooG 0.15 64 bits in 0.07s. */
+if ((M >= 3) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ for (c4=4;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S1(i = c2,k = c6) ;
+ S2(i = c2,k = c6) ;
+ }
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ if (c4%2 == 0) {
+ S3(i = c2,j = c4/2,k = c6) ;
+ }
+ }
+ }
+ c4 = 2*N-2 ;
+ for (c6=2;c6<=M-1;c6++) {
+ j = N-1 ;
+ S3(i = c2,k = c6) ;
+ }
+ }
+}
+if ((M >= 3) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=1;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=2;c6<=M-1;c6++) {
+ S3(i = c2,j = 2,k = c6) ;
+ }
+ }
+}
+if ((M >= 1) && (M <= 2) && (N >= 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c4=3;c4<=2*N-3;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S1(i = c2,k = c6) ;
+ S2(i = c2,k = c6) ;
+ }
+ }
+ }
+ }
+}
diff --git a/test/reservoir/mg-resid.cloog b/test/reservoir/mg-resid.cloog
new file mode 100755
index 0000000..7f0dd2c
--- /dev/null
+++ b/test/reservoir/mg-resid.cloog
@@ -0,0 +1,88 @@
+# Language
+c
+
+# Context
+
+ 1 5
+ 1 0 0 0 1
+0
+
+# Number of statments
+3
+
+1
+# { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 8
+ 1 1 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 -1
+ 1 0 1 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 -1
+ 1 0 0 1 0 0 0 -1
+ 1 0 0 -1 1 0 0 0
+ 1 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 8
+ 1 1 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 -1
+ 1 0 1 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 -1
+ 1 0 0 1 0 0 0 -1
+ 1 0 0 -1 1 0 0 0
+ 1 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 8
+ 1 1 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 -1
+ 1 0 1 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 -1
+ 1 0 0 1 0 0 0 -2
+ 1 0 0 -1 1 0 0 -1
+ 1 0 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+3
+
+ 8 15
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 15
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 15
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/mg-rprj3.c.polylib b/test/reservoir/mg-rprj3.c.polylib
new file mode 100644
index 0000000..e4f1b54
--- /dev/null
+++ b/test/reservoir/mg-rprj3.c.polylib
@@ -0,0 +1,143 @@
+/* Generated from ./reservoir/mg-rprj3.cloog by CLooG v0.14.0 gmp bits in 0.35s. */
+/* CLooG asked for 1128 KBytes. */
+if ((M >= 4) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=2;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ for (c4=3;c4<=N-1;c4++) {
+ for (c6=2;c6<=M;c6++) {
+ j = c4-1 ;
+ S2(i = c2,k = c6) ;
+ }
+ j = c4-1 ;
+ S4(i = c2,k = 2) ;
+ for (c6=2;c6<=M-2;c6++) {
+ j = c4-1 ;
+ S3(i = c2,k = c6) ;
+ j = c4-1 ;
+ S5(i = c2,k = c6) ;
+ j = c4-1 ;
+ k = c6+1 ;
+ S4(i = c2) ;
+ }
+ c6 = M-1 ;
+ j = c4-1 ;
+ k = M-1 ;
+ S3(i = c2) ;
+ j = c4-1 ;
+ k = M-1 ;
+ S5(i = c2) ;
+ for (c6=2;c6<=M;c6++) {
+ S1(i = c2,j = c4,k = c6) ;
+ }
+ }
+ for (c6=2;c6<=M;c6++) {
+ j = N-1 ;
+ S2(i = c2,k = c6) ;
+ }
+ j = N-1 ;
+ S4(i = c2,k = 2) ;
+ for (c6=2;c6<=M-2;c6++) {
+ j = N-1 ;
+ S3(i = c2,k = c6) ;
+ j = N-1 ;
+ S5(i = c2,k = c6) ;
+ j = N-1 ;
+ k = c6+1 ;
+ S4(i = c2) ;
+ }
+ c6 = M-1 ;
+ j = N-1 ;
+ k = M-1 ;
+ S3(i = c2) ;
+ j = N-1 ;
+ k = M-1 ;
+ S5(i = c2) ;
+ }
+}
+if ((M >= 4) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=2;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=2;c6<=M;c6++) {
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ S4(i = c2,j = 2,k = 2) ;
+ for (c6=2;c6<=M-2;c6++) {
+ S3(i = c2,j = 2,k = c6) ;
+ S5(i = c2,j = 2,k = c6) ;
+ k = c6+1 ;
+ S4(i = c2,j = 2) ;
+ }
+ c6 = M-1 ;
+ k = M-1 ;
+ S3(i = c2,j = 2) ;
+ k = M-1 ;
+ S5(i = c2,j = 2) ;
+ }
+}
+if ((M == 3) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=2;c6<=3;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=2;c6<=3;c6++) {
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ S4(i = c2,j = 2,k = 2) ;
+ S3(i = c2,j = 2,k = 2) ;
+ S5(i = c2,j = 2,k = 2) ;
+ }
+}
+if ((M == 3) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=2;c6<=3;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ for (c4=3;c4<=N-1;c4++) {
+ for (c6=2;c6<=3;c6++) {
+ j = c4-1 ;
+ S2(i = c2,k = c6) ;
+ }
+ j = c4-1 ;
+ S4(i = c2,k = 2) ;
+ j = c4-1 ;
+ S3(i = c2,k = 2) ;
+ j = c4-1 ;
+ S5(i = c2,k = 2) ;
+ for (c6=2;c6<=3;c6++) {
+ S1(i = c2,j = c4,k = c6) ;
+ }
+ }
+ for (c6=2;c6<=3;c6++) {
+ j = N-1 ;
+ S2(i = c2,k = c6) ;
+ }
+ j = N-1 ;
+ S4(i = c2,k = 2) ;
+ j = N-1 ;
+ S3(i = c2,k = 2) ;
+ j = N-1 ;
+ S5(i = c2,k = 2) ;
+ }
+}
+if ((M == 2) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ S1(i = c2,j = 2,k = 2) ;
+ for (c4=3;c4<=N-1;c4++) {
+ j = c4-1 ;
+ S2(i = c2,k = 2) ;
+ S1(i = c2,j = c4,k = 2) ;
+ }
+ j = N-1 ;
+ S2(i = c2,k = 2) ;
+ }
+}
+if ((M == 2) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ S1(i = c2,j = 2,k = 2) ;
+ S2(i = c2,j = 2,k = 2) ;
+ }
+}
diff --git a/test/reservoir/mg-rprj3.c.ppl b/test/reservoir/mg-rprj3.c.ppl
new file mode 100644
index 0000000..7a93dd2
--- /dev/null
+++ b/test/reservoir/mg-rprj3.c.ppl
@@ -0,0 +1,142 @@
+/* Generated from ././reservoir/mg-rprj3.cloog by CLooG 0.15 64 bits in 0.58s. */
+if ((M >= 4) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=2;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ for (c4=3;c4<=N-1;c4++) {
+ for (c6=2;c6<=M;c6++) {
+ j = c4-1 ;
+ S2(i = c2,k = c6) ;
+ }
+ j = c4-1 ;
+ S4(i = c2,k = 2) ;
+ for (c6=2;c6<=M-2;c6++) {
+ j = c4-1 ;
+ S3(i = c2,k = c6) ;
+ j = c4-1 ;
+ S5(i = c2,k = c6) ;
+ j = c4-1 ;
+ k = c6+1 ;
+ S4(i = c2) ;
+ }
+ c6 = M-1 ;
+ j = c4-1 ;
+ k = M-1 ;
+ S3(i = c2) ;
+ j = c4-1 ;
+ k = M-1 ;
+ S5(i = c2) ;
+ for (c6=2;c6<=M;c6++) {
+ S1(i = c2,j = c4,k = c6) ;
+ }
+ }
+ for (c6=2;c6<=M;c6++) {
+ j = N-1 ;
+ S2(i = c2,k = c6) ;
+ }
+ j = N-1 ;
+ S4(i = c2,k = 2) ;
+ for (c6=2;c6<=M-2;c6++) {
+ j = N-1 ;
+ S3(i = c2,k = c6) ;
+ j = N-1 ;
+ S5(i = c2,k = c6) ;
+ j = N-1 ;
+ k = c6+1 ;
+ S4(i = c2) ;
+ }
+ c6 = M-1 ;
+ j = N-1 ;
+ k = M-1 ;
+ S3(i = c2) ;
+ j = N-1 ;
+ k = M-1 ;
+ S5(i = c2) ;
+ }
+}
+if ((M == 3) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=2;c6<=3;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ for (c4=3;c4<=N-1;c4++) {
+ for (c6=2;c6<=3;c6++) {
+ j = c4-1 ;
+ S2(i = c2,k = c6) ;
+ }
+ j = c4-1 ;
+ S4(i = c2,k = 2) ;
+ j = c4-1 ;
+ S3(i = c2,k = 2) ;
+ j = c4-1 ;
+ S5(i = c2,k = 2) ;
+ for (c6=2;c6<=3;c6++) {
+ S1(i = c2,j = c4,k = c6) ;
+ }
+ }
+ for (c6=2;c6<=3;c6++) {
+ j = N-1 ;
+ S2(i = c2,k = c6) ;
+ }
+ j = N-1 ;
+ S4(i = c2,k = 2) ;
+ j = N-1 ;
+ S3(i = c2,k = 2) ;
+ j = N-1 ;
+ S5(i = c2,k = 2) ;
+ }
+}
+if ((M == 3) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=2;c6<=3;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=2;c6<=3;c6++) {
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ S4(i = c2,j = 2,k = 2) ;
+ S3(i = c2,j = 2,k = 2) ;
+ S5(i = c2,j = 2,k = 2) ;
+ }
+}
+if ((M >= 4) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ for (c6=2;c6<=M;c6++) {
+ S1(i = c2,j = 2,k = c6) ;
+ }
+ for (c6=2;c6<=M;c6++) {
+ S2(i = c2,j = 2,k = c6) ;
+ }
+ S4(i = c2,j = 2,k = 2) ;
+ for (c6=2;c6<=M-2;c6++) {
+ S3(i = c2,j = 2,k = c6) ;
+ S5(i = c2,j = 2,k = c6) ;
+ k = c6+1 ;
+ S4(i = c2,j = 2) ;
+ }
+ c6 = M-1 ;
+ k = M-1 ;
+ S3(i = c2,j = 2) ;
+ k = M-1 ;
+ S5(i = c2,j = 2) ;
+ }
+}
+if ((M == 2) && (N >= 4)) {
+ for (c2=2;c2<=O-1;c2++) {
+ S1(i = c2,j = 2,k = 2) ;
+ for (c4=3;c4<=N-1;c4++) {
+ j = c4-1 ;
+ S2(i = c2,k = 2) ;
+ S1(i = c2,j = c4,k = 2) ;
+ }
+ j = N-1 ;
+ S2(i = c2,k = 2) ;
+ }
+}
+if ((M == 2) && (N == 3)) {
+ for (c2=2;c2<=O-1;c2++) {
+ S1(i = c2,j = 2,k = 2) ;
+ S2(i = c2,j = 2,k = 2) ;
+ }
+}
diff --git a/test/reservoir/mg-rprj3.cloog b/test/reservoir/mg-rprj3.cloog
new file mode 100755
index 0000000..adf72fd
--- /dev/null
+++ b/test/reservoir/mg-rprj3.cloog
@@ -0,0 +1,136 @@
+# Language
+c
+
+# Context
+
+ 1 8
+ 1 0 0 0 0 0 0 1
+0
+
+# Number of statments
+5
+
+1
+# { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 11
+ 1 1 0 0 0 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 -2
+ 1 0 0 -1 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 11
+ 1 1 0 0 0 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 -2
+ 1 0 0 -1 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 11
+ 1 1 0 0 0 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 -2
+ 1 0 0 -1 1 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 11
+ 1 1 0 0 0 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 -2
+ 1 0 0 -1 1 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 }
+
+ 7 11
+ 1 1 0 0 0 0 0 0 0 0 -2
+ 1 -1 0 0 0 0 1 0 0 0 -1
+ 1 0 1 0 0 0 0 0 0 0 -2
+ 1 0 -1 0 0 1 0 0 0 0 -1
+ 1 0 0 1 0 0 0 0 0 0 -2
+ 1 0 0 -1 1 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+5
+
+ 8 18
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -2
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 18
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 18
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 18
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -2
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 18
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/pingali1.c.polylib b/test/reservoir/pingali1.c.polylib
new file mode 100644
index 0000000..67fa49d
--- /dev/null
+++ b/test/reservoir/pingali1.c.polylib
@@ -0,0 +1,27 @@
+/* Generated from pingali1.cloog by CLooG v0.14.0 64 bits in 0.01s. */
+/* CLooG asked for 160 KBytes. */
+if (N >= 2) {
+ for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=2;c4++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S2(i = c2) ;
+ }
+ }
+ for (c4=3;c4<=2*N-1;c4++) {
+ for (c6=max(1,c4-N);c6<=floord(c4-1,2);c6++) {
+ j = c4-c6 ;
+ S1(i = c2,k = c6) ;
+ }
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S2(i = c2) ;
+ }
+ }
+ }
+}
+if (N == 1) {
+ for (c2=1;c2<=M;c2++) {
+ S2(i = c2,j = 1) ;
+ }
+}
diff --git a/test/reservoir/pingali1.c.ppl b/test/reservoir/pingali1.c.ppl
new file mode 100644
index 0000000..1e803bc
--- /dev/null
+++ b/test/reservoir/pingali1.c.ppl
@@ -0,0 +1,26 @@
+/* Generated from ././reservoir/pingali1.cloog by CLooG 0.15 64 bits in 0.03s. */
+if (N >= 2) {
+ for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=2;c4++) {
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S2(i = c2) ;
+ }
+ }
+ for (c4=3;c4<=2*N-1;c4++) {
+ for (c6=max(c4-N,1);c6<=floord(c4-1,2);c6++) {
+ j = c4-c6 ;
+ S1(i = c2,k = c6) ;
+ }
+ if ((c4+1)%2 == 0) {
+ j = (c4+1)/2 ;
+ S2(i = c2) ;
+ }
+ }
+ }
+}
+if (N == 1) {
+ for (c2=1;c2<=M;c2++) {
+ S2(i = c2,j = 1) ;
+ }
+}
diff --git a/test/reservoir/pingali1.cloog b/test/reservoir/pingali1.cloog
new file mode 100755
index 0000000..0be0a2a
--- /dev/null
+++ b/test/reservoir/pingali1.cloog
@@ -0,0 +1,61 @@
+# Language
+c
+
+# Context
+
+ 1 4
+ 1 0 0 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, -j+m >= 0, k-1 >= 0, j-k-1 >= 0, 1 >= 0 }
+
+ 6 7
+ 1 1 0 0 0 0 -1
+ 1 -1 0 0 1 0 0
+ 1 0 -1 0 0 1 0
+ 1 0 0 1 0 0 -1
+ 1 0 1 -1 0 0 -1
+ 1 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+l >= 0, 1 >= 0 }
+
+ 5 6
+ 1 1 0 0 0 -1
+ 1 -1 0 1 0 0
+ 1 0 1 0 0 -1
+ 1 0 -1 0 1 0
+ 1 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 8 14
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -2 0 0 1
+ 0 0 0 0 0 1 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/pingali2.c.polylib b/test/reservoir/pingali2.c.polylib
new file mode 100644
index 0000000..4eed9ce
--- /dev/null
+++ b/test/reservoir/pingali2.c.polylib
@@ -0,0 +1,12 @@
+/* Generated from pingali2.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S2(i = c2,j = c4) ;
+ }
+}
diff --git a/test/reservoir/pingali2.c.ppl b/test/reservoir/pingali2.c.ppl
new file mode 100644
index 0000000..4c57fdf
--- /dev/null
+++ b/test/reservoir/pingali2.c.ppl
@@ -0,0 +1,11 @@
+/* Generated from ././reservoir/pingali2.cloog by CLooG 0.15 64 bits in 0.00s. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S2(i = c2,j = c4) ;
+ }
+}
diff --git a/test/reservoir/pingali2.cloog b/test/reservoir/pingali2.cloog
new file mode 100755
index 0000000..0f89038
--- /dev/null
+++ b/test/reservoir/pingali2.cloog
@@ -0,0 +1,56 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 -1
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 -1
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/pingali3.c.polylib b/test/reservoir/pingali3.c.polylib
new file mode 100644
index 0000000..a385cf9
--- /dev/null
+++ b/test/reservoir/pingali3.c.polylib
@@ -0,0 +1,14 @@
+/* Generated from pingali3.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ S2(i = c2,j = c4,k = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/pingali3.c.ppl b/test/reservoir/pingali3.c.ppl
new file mode 100644
index 0000000..cf5ed55
--- /dev/null
+++ b/test/reservoir/pingali3.c.ppl
@@ -0,0 +1,13 @@
+/* Generated from ././reservoir/pingali3.cloog by CLooG 0.15 64 bits in 0.01s. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ for (c6=1;c6<=M;c6++) {
+ S2(i = c2,j = c4,k = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/pingali3.cloog b/test/reservoir/pingali3.cloog
new file mode 100755
index 0000000..8f345c0
--- /dev/null
+++ b/test/reservoir/pingali3.cloog
@@ -0,0 +1,62 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 -1
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | i-1 >= 0, -i+l >= 0, j-1 >= 0, -j+l >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 7 6
+ 1 1 0 0 0 -1
+ 1 -1 0 0 1 0
+ 1 0 1 0 0 -1
+ 1 0 -1 0 1 0
+ 1 0 0 1 0 -1
+ 1 0 0 -1 1 0
+ 1 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 8 12
+ 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 0 0 -1 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/pingali4.c.polylib b/test/reservoir/pingali4.c.polylib
new file mode 100644
index 0000000..535bafc
--- /dev/null
+++ b/test/reservoir/pingali4.c.polylib
@@ -0,0 +1,12 @@
+/* Generated from pingali4.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S2(i = c2,j = c4) ;
+ }
+}
diff --git a/test/reservoir/pingali4.c.ppl b/test/reservoir/pingali4.c.ppl
new file mode 100644
index 0000000..6e56b8b
--- /dev/null
+++ b/test/reservoir/pingali4.c.ppl
@@ -0,0 +1,11 @@
+/* Generated from ././reservoir/pingali4.cloog by CLooG 0.15 64 bits in 0.00s. */
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S1(i = c2,j = c4) ;
+ }
+}
+for (c2=1;c2<=M;c2++) {
+ for (c4=1;c4<=M;c4++) {
+ S2(i = c2,j = c4) ;
+ }
+}
diff --git a/test/reservoir/pingali4.cloog b/test/reservoir/pingali4.cloog
new file mode 100755
index 0000000..46f4e07
--- /dev/null
+++ b/test/reservoir/pingali4.cloog
@@ -0,0 +1,57 @@
+# Language
+c
+
+# Context
+
+ 2 3
+ 1 1 -2
+ 1 0 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 -1
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 }
+
+ 5 5
+ 1 1 0 0 -1
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 0 -1 1 0
+ 1 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 -1
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/pingali5.c.polylib b/test/reservoir/pingali5.c.polylib
new file mode 100644
index 0000000..5630c35
--- /dev/null
+++ b/test/reservoir/pingali5.c.polylib
@@ -0,0 +1,26 @@
+/* Generated from pingali5.cloog by CLooG v0.14.0 64 bits in 0.00s. */
+/* CLooG asked for 160 KBytes. */
+for (c2=3;c2<=2*M-3;c2++) {
+ for (c4=ceild(c2+3,2);c4<=M;c4++) {
+ for (i=ceild(c2+1,2);i<=min(c4-1,c2-1);i++) {
+ j = c2-i ;
+ S1(k = c4) ;
+ }
+ }
+ for (c4=max(1,c2-M);c4<=floord(c2-1,2);c4++) {
+ i = c2-c4 ;
+ S2(j = c4) ;
+ }
+ for (c4=ceild(c2+3,2);c4<=M;c4++) {
+ for (i=ceild(c2+1,2);i<=min(c4-1,c2-1);i++) {
+ j = c2-i ;
+ S3(k = c4) ;
+ }
+ }
+}
+for (c2=max(2*M-2,3);c2<=2*M-1;c2++) {
+ for (c4=max(1,c2-M);c4<=floord(c2-1,2);c4++) {
+ i = c2-c4 ;
+ S2(j = c4) ;
+ }
+}
diff --git a/test/reservoir/pingali5.c.ppl b/test/reservoir/pingali5.c.ppl
new file mode 100644
index 0000000..7aba0e4
--- /dev/null
+++ b/test/reservoir/pingali5.c.ppl
@@ -0,0 +1,25 @@
+/* Generated from ././reservoir/pingali5.cloog by CLooG 0.15 64 bits in 0.02s. */
+for (c2=3;c2<=2*M-3;c2++) {
+ for (c4=ceild(c2+3,2);c4<=M;c4++) {
+ for (i=ceild(c2+1,2);i<=min(c2-1,c4-1);i++) {
+ j = c2-i ;
+ S1(k = c4) ;
+ }
+ }
+ for (c4=max(c2-M,1);c4<=floord(c2-1,2);c4++) {
+ i = c2-c4 ;
+ S2(j = c4) ;
+ }
+ for (c4=ceild(c2+3,2);c4<=M;c4++) {
+ for (i=ceild(c2+1,2);i<=min(c2-1,c4-1);i++) {
+ j = c2-i ;
+ S3(k = c4) ;
+ }
+ }
+}
+for (c2=max(2*M-2,3);c2<=2*M-1;c2++) {
+ for (c4=max(c2-M,1);c4<=floord(c2-1,2);c4++) {
+ i = c2-c4 ;
+ S2(j = c4) ;
+ }
+}
diff --git a/test/reservoir/pingali5.cloog b/test/reservoir/pingali5.cloog
new file mode 100755
index 0000000..2933d75
--- /dev/null
+++ b/test/reservoir/pingali5.cloog
@@ -0,0 +1,81 @@
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statments
+3
+
+1
+# { (i,j,k,l) | j-1 >= 0, i-j-1 >= 0, -i+k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 5 6
+ 1 0 1 0 0 -1
+ 1 1 -1 0 0 -1
+ 1 -1 0 1 0 -1
+ 1 0 0 -1 1 0
+ 1 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k) | -i+k >= 0, j-1 >= 0, i-j-1 >= 0, 1 >= 0 }
+
+ 4 5
+ 1 -1 0 1 0
+ 1 0 1 0 -1
+ 1 1 -1 0 -1
+ 1 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l) | j-1 >= 0, i-j-1 >= 0, -i+k-1 >= 0, -k+l >= 0, 1 >= 0 }
+
+ 5 6
+ 1 0 1 0 0 -1
+ 1 1 -1 0 0 -1
+ 1 -1 0 1 0 -1
+ 1 0 0 -1 1 0
+ 1 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+3
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 12
+ 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 -1 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 -1
+ 0 0 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 13
+ 0 1 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -1 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 -2
+ 0 0 0 0 1 0 0 0 0 0 -1 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 -2
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/pingali6.c.polylib b/test/reservoir/pingali6.c.polylib
new file mode 100644
index 0000000..120f9aa
--- /dev/null
+++ b/test/reservoir/pingali6.c.polylib
@@ -0,0 +1,36 @@
+/* Generated from ./reservoir/pingali6.cloog by CLooG v0.14.0 gmp bits in 0.04s. */
+/* CLooG asked for 212 KBytes. */
+if (N >= 3) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ S1(i = 1,j = c4,k = c6) ;
+ }
+ }
+}
+if (N >= 3) {
+ for (c2=3;c2<=2*M;c2++) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if (c2%2 == 0) {
+ S1(i = c2/2,j = c4,k = c6) ;
+ }
+ }
+ }
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if ((c2+1)%2 == 0) {
+ i = (c2-1)/2 ;
+ S2(j = c4,k = c6) ;
+ }
+ }
+ }
+ }
+}
+if (N >= 3) {
+ c2 = 2*M+1 ;
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ S2(i = M,j = c4,k = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/pingali6.c.ppl b/test/reservoir/pingali6.c.ppl
new file mode 100644
index 0000000..930cf2b
--- /dev/null
+++ b/test/reservoir/pingali6.c.ppl
@@ -0,0 +1,35 @@
+/* Generated from ././reservoir/pingali6.cloog by CLooG 0.15 64 bits in 0.04s. */
+if (N >= 3) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ S1(i = 1,j = c4,k = c6) ;
+ }
+ }
+}
+if (N >= 3) {
+ for (c2=3;c2<=2*M;c2++) {
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if (c2%2 == 0) {
+ S1(i = c2/2,j = c4,k = c6) ;
+ }
+ }
+ }
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ if ((c2+1)%2 == 0) {
+ i = (c2-1)/2 ;
+ S2(j = c4,k = c6) ;
+ }
+ }
+ }
+ }
+}
+if (N >= 3) {
+ c2 = 2*M+1 ;
+ for (c4=2;c4<=N-1;c4++) {
+ for (c6=2;c6<=N-1;c6++) {
+ S2(i = M,j = c4,k = c6) ;
+ }
+ }
+}
diff --git a/test/reservoir/pingali6.cloog b/test/reservoir/pingali6.cloog
new file mode 100755
index 0000000..93726ec
--- /dev/null
+++ b/test/reservoir/pingali6.cloog
@@ -0,0 +1,66 @@
+# Language
+c
+
+# Context
+
+ 3 4
+ 1 1 0 -1
+ 1 0 1 -1
+ 1 0 0 1
+0
+
+# Number of statments
+2
+
+1
+# { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+m-1 >= 0, 1 >= 0 }
+
+ 7 7
+ 1 1 0 0 0 0 -1
+ 1 -1 0 0 1 0 0
+ 1 0 1 0 0 0 -2
+ 1 0 -1 0 0 1 -1
+ 1 0 0 1 0 0 -2
+ 1 0 0 -1 0 1 -1
+ 1 0 0 0 0 0 1
+
+0 0 0
+1
+# { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+m-1 >= 0, 1 >= 0 }
+
+ 7 7
+ 1 1 0 0 0 0 -1
+ 1 -1 0 0 1 0 0
+ 1 0 1 0 0 0 -2
+ 1 0 -1 0 0 1 -1
+ 1 0 0 1 0 0 -2
+ 1 0 0 -1 0 1 -1
+ 1 0 0 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+2
+
+ 8 14
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -2 0 0 0 0 0
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+
+ 8 14
+ 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 0 0 -2 0 0 0 0 -1
+ 0 0 0 1 0 0 0 0 0 0 0 0 0 -1
+ 0 0 0 0 1 0 0 0 0 -1 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/stride.c.polylib b/test/reservoir/stride.c.polylib
new file mode 100644
index 0000000..7ead4bd
--- /dev/null
+++ b/test/reservoir/stride.c.polylib
@@ -0,0 +1,6 @@
+/* Generated from stride.cloog by CLooG v0.14.0 gmp bits in 0.00s. */
+/* CLooG asked for 80 KBytes. */
+for (c2=2;c2<=M;c2+=7) {
+ j = (c2-2)/7 ;
+ S1(i = c2) ;
+}
diff --git a/test/reservoir/stride.c.ppl b/test/reservoir/stride.c.ppl
new file mode 100644
index 0000000..c51e2e1
--- /dev/null
+++ b/test/reservoir/stride.c.ppl
@@ -0,0 +1,5 @@
+/* Generated from ./reservoir/stride.cloog by CLooG 0.15 64 bits in 0.00s. */
+for (c2=2;c2<=M;c2+=7) {
+ j = (c2-2)/7 ;
+ S1(i = c2) ;
+}
diff --git a/test/reservoir/stride.cloog b/test/reservoir/stride.cloog
new file mode 100644
index 0000000..760a1a6
--- /dev/null
+++ b/test/reservoir/stride.cloog
@@ -0,0 +1,45 @@
+#
+# Stride-bug:
+#
+# for (i = 2; i <= N; i+=7) {
+# S(i);
+#
+# becomes:
+#
+# for (i = 5; i <= N; i+=7) {
+# S(i);
+
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statements
+1
+
+1
+
+ 4 5
+ 0 1 -7 0 -2
+ 1 1 0 0 -2
+ 1 -1 0 1 0
+ 1 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+1
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/stride2.c.polylib b/test/reservoir/stride2.c.polylib
new file mode 100644
index 0000000..458cc22
--- /dev/null
+++ b/test/reservoir/stride2.c.polylib
@@ -0,0 +1,6 @@
+/* Generated from stride2.cloog by CLooG v0.14.0 gmp bits in 0.00s. */
+/* CLooG asked for 80 KBytes. */
+for (c2=2;c2<=M;c2+=7) {
+ j = (c2-2)/7 ;
+ S1(i = c2) ;
+}
diff --git a/test/reservoir/stride2.c.ppl b/test/reservoir/stride2.c.ppl
new file mode 100644
index 0000000..c29b9e4
--- /dev/null
+++ b/test/reservoir/stride2.c.ppl
@@ -0,0 +1,5 @@
+/* Generated from ./reservoir/stride2.cloog by CLooG 0.15 64 bits in 0.00s. */
+for (c2=2;c2<=M;c2+=7) {
+ j = (c2-2)/7 ;
+ S1(i = c2) ;
+}
diff --git a/test/reservoir/stride2.cloog b/test/reservoir/stride2.cloog
new file mode 100644
index 0000000..5fb9b14
--- /dev/null
+++ b/test/reservoir/stride2.cloog
@@ -0,0 +1,45 @@
+#
+# Stride-bug:
+#
+# for (i = 2; i <= N; i+=7) {
+# S(i);
+#
+# becomes:
+#
+# for (i = 5; i <= N; i+=7) {
+# S(i);
+
+# Language
+c
+
+# Context
+
+ 1 3
+ 1 0 1
+0
+
+# Number of statements
+1
+
+1
+
+ 4 5
+ 0 1 -7 0 -2 # i - 7j = 2
+ 1 1 0 0 0 # i >= 0
+ 1 -1 0 1 0 # i <= n
+ 1 0 0 0 1
+
+0 0 0
+0
+# Scattering functions
+1
+
+ 6 10
+ 0 1 0 0 0 0 0 0 0 0
+ 0 0 1 0 0 0 -1 0 0 0
+ 0 0 0 1 0 0 0 0 0 0
+ 0 0 0 0 1 0 0 0 0 0
+ 0 0 0 0 0 1 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 1
+
+0
diff --git a/test/reservoir/tang-xue1.c.polylib b/test/reservoir/tang-xue1.c.polylib
new file mode 100644
index 0000000..f7ae9f2
--- /dev/null
+++ b/test/reservoir/tang-xue1.c.polylib
@@ -0,0 +1,18 @@
+/* Generated from ./reservoir/tang-xue1.cloog by CLooG v0.14.0 gmp bits in 0.03s. */
+/* CLooG asked for 152 KBytes. */
+for (c2=0;c2<=9;c2++) {
+ for (c4=max(-1,c2-9);c4<=min(4,c2+3);c4++) {
+ for (c6=max(max(c2,1),c2-c4);c6<=min(min(c2+1,9),c2-c4+4);c6++) {
+ for (c8=max(1,-c2+c4+c6);c8<=min(4,-c2+c4+c6+1);c8++) {
+ if (c2%2 == 0) {
+ if ((c2+c4)%2 == 0) {
+ j = (-c2+c4)/2 ;
+ k = -c2+c6 ;
+ l = -c4+c8 ;
+ S1(i = c2/2) ;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/test/reservoir/tang-xue1.c.ppl b/test/reservoir/tang-xue1.c.ppl
new file mode 100644
index 0000000..188b862
--- /dev/null
+++ b/test/reservoir/tang-xue1.c.ppl
@@ -0,0 +1,17 @@
+/* Generated from ././reservoir/tang-xue1.cloog by CLooG 0.15 64 bits in 0.05s. */
+for (c2=0;c2<=9;c2++) {
+ for (c4=max(c2-9,-1);c4<=min(c2+3,4);c4++) {
+ for (c6=max(max(c2-c4,c2),1);c6<=min(min(c2-c4+4,c2+1),9);c6++) {
+ for (c8=max(-c2+c4+c6,1);c8<=min(-c2+c4+c6+1,4);c8++) {
+ if (c2%2 == 0) {
+ if ((c2+c4)%2 == 0) {
+ j = (-c2+c4)/2 ;
+ k = -c2+c6 ;
+ l = -c4+c8 ;
+ S1(i = c2/2) ;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/test/reservoir/tang-xue1.cloog b/test/reservoir/tang-xue1.cloog
new file mode 100644
index 0000000..bf9b92b
--- /dev/null
+++ b/test/reservoir/tang-xue1.cloog
@@ -0,0 +1,80 @@
+#
+# Example 1 in "Generating Efficient Tiled Code for Distributed Memory
+# Machines", Peiyi Tang and Jingling Xue.
+#
+
+# for (int i = 1; i <= 9; i++) {
+# for (int j = 1; j <= 4; j++) {
+# A[i,2*j] = A[i,2*j-2] + A[i-1,2*j-2];
+# }
+# }
+#
+# We tile it with a tiling matrix H = [1/2 0]
+# [-1/2 1/2]
+#
+# We get:
+#
+# for (int i = 0; i <= 9; i += 2) {
+# for (int j = max(-1, -9 + i); j <= min(4, 3 + i); j++) {
+# for (int k = max(1, i, i-j); k <= min(4 + i -j, 1 + i, 9); k++) {
+# for (int l = max(-i + j + k, 1); l <= min(4, 1 -i + j + k); l++) {
+# if (i % 2 == 0) {
+# if ((i + j) % 2 == 0) {
+# A[k, 2 * l] = A[k, -2 + 2 * l] + A[-1 + k, -2 + 2 * l];
+# }
+# }
+# }
+# }
+# }
+# }
+#
+
+# language: C
+c
+
+# parameter (none)
+1 2
+# 1
+1 1
+0
+
+1 # number of statements
+
+1
+# -2i-2j -l +4 >= 0
+# -k +l >= 0
+# -2i -k +9 >= 0
+# k >= 0
+# 2i +k -1 >= 0
+# k -l +1 >= 0
+# -k +1 >= 0
+# 2i+2j +l-1 >= 0
+8 6
+# i j k l 1
+1 -2 -2 0 -1 4
+1 0 0 -1 1 0
+1 -2 0 -1 0 9
+1 0 0 1 0 0
+1 2 0 1 0 -1
+1 0 0 1 -1 1
+1 0 0 -1 0 1
+1 2 2 0 1 -1
+0 0 0
+0
+
+1
+
+# Scattering functions
+9 15
+# alpha=[2i, 2i+2j, 2i+k, 2i+2j+l] gamma=[0, 0, 0, 0] beta=[0, 0, 0, 0, 0, 0]
+# c1 c2 c3 c4 c5 c6 c7 c8 c9 i j k l 1
+0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 -1 0 0 0 0 0 0 0 2 0 0 0 0
+0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 -1 0 0 0 0 0 2 2 0 0 0
+0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 -1 0 0 0 2 0 1 0 0
+0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 -1 0 2 2 0 1 0
+0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
+0
diff --git a/test/reservoir/two.c.polylib b/test/reservoir/two.c.polylib
new file mode 100644
index 0000000..e8a57ef
--- /dev/null
+++ b/test/reservoir/two.c.polylib
@@ -0,0 +1,9 @@
+/* Generated from ./reservoir/two.cloog by CLooG v0.14.0 gmp bits in 0.00s. */
+/* CLooG asked for 56 KBytes. */
+for (i=0;i<=1;i++) {
+ if ((i+1)%2 == 0) {
+ j = (-i+3)/2 ;
+ k = (i+9)/2 ;
+ S1 ;
+ }
+}
diff --git a/test/reservoir/two.c.ppl b/test/reservoir/two.c.ppl
new file mode 100644
index 0000000..418a9d5
--- /dev/null
+++ b/test/reservoir/two.c.ppl
@@ -0,0 +1,8 @@
+/* Generated from ././reservoir/two.cloog by CLooG 0.15 64 bits in 0.00s. */
+for (i=0;i<=1;i++) {
+ if ((i+1)%2 == 0) {
+ j = (-i+3)/2 ;
+ k = (i+9)/2 ;
+ S1 ;
+ }
+}
diff --git a/test/reservoir/two.cloog b/test/reservoir/two.cloog
new file mode 100644
index 0000000..60b259f
--- /dev/null
+++ b/test/reservoir/two.cloog
@@ -0,0 +1,26 @@
+# Scan
+# D = { (i, j, k) | 0 <= i < 10, 1 <= j < 20, 2i + 3j = k, i + j + 3 = 3k }
+#
+# language: C
+c
+
+# parameter (none)
+1 2
+1 1
+0
+
+1 # Number of statements
+
+1
+6 5
+# i j k 1
+1 1 0 0 0
+1 -1 0 0 10
+1 0 1 0 -1
+1 0 -1 0 20
+0 2 3 -1 0
+0 1 1 -1 3
+0 0 0
+0
+
+0 # Scattering functions