diff options
Diffstat (limited to 'omega/examples/old_test/wak2.oc-rt')
-rw-r--r-- | omega/examples/old_test/wak2.oc-rt | 307 |
1 files changed, 307 insertions, 0 deletions
diff --git a/omega/examples/old_test/wak2.oc-rt b/omega/examples/old_test/wak2.oc-rt new file mode 100644 index 0000000..6dc6270 --- /dev/null +++ b/omega/examples/old_test/wak2.oc-rt @@ -0,0 +1,307 @@ +>>> Symbolic a1,a2,b1,b2,c1,c2,d1,d2; +>>> +>>> IS1 := {[i,j] : a1 <= i <= b1 && c1 <= j <= d1}; +>>> IS2 := {[i,j] : a2 <= i <= b2 && c2 <= j <= d2}; +>>> +>>> T1 := {[i,j] -> [i,j,0]}; +>>> T2 := {[i,j] -> [i,j,1]}; +>>> +>>> codegen T1:IS1,T2:IS2; +if (d2 >= c2) { + for(t1 = a2; t1 <= min(a1-1,b2); t1++) { + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +for(t1 = a1; t1 <= b1; t1++) { + if (t1 >= a2 && t1 <= b2) { + for(t2 = c2; t2 <= min(c1-1,d2); t2++) { + s2(t1,t2); + } + } + if (t1 <= a2-1) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } + if (t1 >= a2 && t1 <= b2) { + for(t2 = c1; t2 <= min(d1,c2-1,d2); t2++) { + s1(t1,t2); + } + } + if (t1 <= b2 && t1 >= a2) { + for(t2 = max(c2,c1); t2 <= min(d2,d1); t2++) { + s1(t1,t2); + s2(t1,t2); + } + } + if (t1 >= a2 && t1 <= b2) { + for(t2 = max(d2+1,c1); t2 <= d1; t2++) { + s1(t1,t2); + } + } + if (t1 >= a2 && t1 >= b2+1) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } + if (t1 >= a2 && t1 <= b2) { + for(t2 = max(c2,d1+1,c1); t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (d2 >= c2) { + for(t1 = max(a1,a2,b1+1); t1 <= b2; t1++) { + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} + +>>> codegen 2 T1:IS1,T2:IS2; +if (d2 >= c2) { + for(t1 = a2; t1 <= min(a1-1,b2); t1++) { + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (d1 >= c1) { + for(t1 = a1; t1 <= min(a2-1,b1); t1++) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (d1 >= c1 && c1 >= d2+2 && c2 <= d2) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (d2 >= c2 && d2 <= c1-2 && d1 <= c1-1) { + for(t1 = max(a1,a2); t1 <= min(b2,b1); t1++) { + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (c1 >= c2+1 && d1 <= d2-1 && d1 >= c1) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c2; t2 <= c1-1; t2++) { + s2(t1,t2); + } + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + s2(t1,t2); + } + for(t2 = d1+1; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (c1 >= c2+1 && c1 <= d2 && d1 >= d2+1) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c2; t2 <= c1-1; t2++) { + s2(t1,t2); + } + for(t2 = c1; t2 <= d2; t2++) { + s1(t1,t2); + s2(t1,t2); + } + for(t2 = d2+1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (d1 == d2 && d1 >= c1 && c1 >= c2+1) { + for(t1 = max(a2,a1); t1 <= min(b2,b1); t1++) { + for(t2 = c2; t2 <= c1-1; t2++) { + s2(t1,t2); + } + for(t2 = c1; t2 <= d2; t2++) { + s1(t1,t2); + s2(t1,t2); + } + } +} +if (d2 == c1-1 && d2 <= d1-1 && d2 >= c2) { + for(t1 = max(a2,a1); t1 <= min(b2,b1); t1++) { + for(t2 = c2; t2 <= c1-1; t2++) { + s2(t1,t2); + } + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (c2 <= c1-1 && d2 >= c1 && d1 <= c1-1) { + for(t1 = max(a1,a2); t1 <= min(b2,b1); t1++) { + for(t2 = c2; t2 <= c1-1; t2++) { + s2(t1,t2); + } + for(t2 = c1; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (d2 == c1-1 && d2 >= d1 && d2 >= c2) { + for(t1 = max(a1,a2); t1 <= min(b1,b2); t1++) { + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (d1 >= c1 && c1 >= c2+1 && d2 <= c2-1) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (c1 <= c2-1 && d1 >= c2 && d1 <= d2-1) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c1; t2 <= c2-1; t2++) { + s1(t1,t2); + } + for(t2 = c2; t2 <= d1; t2++) { + s1(t1,t2); + s2(t1,t2); + } + for(t2 = d1+1; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (c1 <= c2-1 && d1 >= d2+1 && c2 <= d2) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c1; t2 <= c2-1; t2++) { + s1(t1,t2); + } + for(t2 = c2; t2 <= d2; t2++) { + s1(t1,t2); + s2(t1,t2); + } + for(t2 = d2+1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (d1 == d2 && d1 >= c2 && c1 <= c2-1) { + for(t1 = max(a2,a1); t1 <= min(b2,b1); t1++) { + for(t2 = c1; t2 <= c2-1; t2++) { + s1(t1,t2); + } + for(t2 = c2; t2 <= d2; t2++) { + s1(t1,t2); + s2(t1,t2); + } + } +} +if (c2 <= d2 && d1 >= c1 && d1 <= c2-1) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (d1 >= c1 && d2 <= c2-1 && d1 <= d2-1) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (d2 >= c1 && d2 <= c2-1 && d1 >= d2+1) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c1; t2 <= d2; t2++) { + s1(t1,t2); + } + for(t2 = d2+1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (d1 == d2 && d1 <= c2-1 && d1 >= c1) { + for(t1 = max(a2,a1); t1 <= min(b2,b1); t1++) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (d2 >= c2 && c2 >= c1+1 && d1 <= c1-1) { + for(t1 = max(a1,a2); t1 <= min(b2,b1); t1++) { + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (c2 == c1 && c2 <= d1 && d1 <= d2-1) { + for(t1 = max(a2,a1); t1 <= min(b2,b1); t1++) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + s2(t1,t2); + } + for(t2 = d1+1; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (c2 == c1 && d1 >= d2+1 && c2 <= d2) { + for(t1 = max(a2,a1); t1 <= min(b2,b1); t1++) { + for(t2 = c1; t2 <= d2; t2++) { + s1(t1,t2); + s2(t1,t2); + } + for(t2 = d2+1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (c1 == c2 && d1 == d2 && d1 >= c1) { + for(t1 = max(a1,a2); t1 <= min(b2,b1); t1++) { + for(t2 = c1; t2 <= d2; t2++) { + s1(t1,t2); + s2(t1,t2); + } + } +} +if (c1 == c2 && c1 >= d1+1 && d2 >= c1) { + for(t1 = max(a1,a2); t1 <= min(b1,b2); t1++) { + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} +if (d1 >= c1 && c1 <= c2 && d2 <= c1-1) { + for(t1 = max(a2,a1); t1 <= min(b1,b2); t1++) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (d1 >= c1) { + for(t1 = max(b2+1,a1,a2); t1 <= b1; t1++) { + for(t2 = c1; t2 <= d1; t2++) { + s1(t1,t2); + } + } +} +if (d2 >= c2) { + for(t1 = max(a1,a2,b1+1); t1 <= b2; t1++) { + for(t2 = c2; t2 <= d2; t2++) { + s2(t1,t2); + } + } +} + + |