summaryrefslogtreecommitdiff
path: root/omega/examples/old_test/lu_spmd.oc-rt
diff options
context:
space:
mode:
Diffstat (limited to 'omega/examples/old_test/lu_spmd.oc-rt')
-rw-r--r--omega/examples/old_test/lu_spmd.oc-rt58
1 files changed, 58 insertions, 0 deletions
diff --git a/omega/examples/old_test/lu_spmd.oc-rt b/omega/examples/old_test/lu_spmd.oc-rt
new file mode 100644
index 0000000..f221d8e
--- /dev/null
+++ b/omega/examples/old_test/lu_spmd.oc-rt
@@ -0,0 +1,58 @@
+>>> symbolic n,lb,ub;
+>>> I1 := {[k,i] : 1 <= k < i <= n && lb <= k <= ub};
+>>> I2 := {[k,i,j] : 1 <= k <= i,j <= n && lb <= j <= ub};
+>>> p := {[k,i] : 1, lb <= k <= ub < n && k < i <= n};
+>>> w := {[k,i,j,k,i] : 1 <= k <= i,j <= n && k < lb = j <= ub};
+>>>
+>>> T1 := {[k,i] -> [k,i,0,0,0,0,0,0]};
+>>> T2 := {[k,i,j] -> [k,i,1,j,0,0,0,0]};
+>>> Tp := {[k,i] -> [k,i,0,0,1,0,0,0]};
+>>> Tw := {[k,i,j,t1,t2] -> [k,i,1,j,-1,t1,t2,0]};
+>>>
+>>> known := {[*,*,*,*,*,*,*,*] : 1 <= lb && ub <= n};
+>>> known2 := {[*,*,*,*,*,*,*,*] : 1 <= lb <= ub <= n};
+>>>
+>>> codegen 0 T1:I1,T2:I2,Tp:p,Tw:w given known;
+if (lb <= ub) {
+ for(t1 = 1; t1 <= ub; t1++) {
+ for(t2 = t1; t2 <= n; t2++) {
+ if (t1 >= lb && t2 >= t1+1) {
+ s1(t1,t2);
+ }
+ if (ub <= n-1 && t2 >= t1+1 && t1 >= lb) {
+ s3(t1,t2);
+ }
+ for(t4 = max(lb,t1); t4 <= ub; t4++) {
+ if (t4 >= t1+1 && t4 <= lb) {
+ s4(t1,t2,t4,t1,t2);
+ }
+ s2(t1,t2,t4);
+ }
+ }
+ }
+}
+
+>>> codegen 1 T1:I1,T2:I2,Tp:p,Tw:w given known;
+if (lb <= ub) {
+ for(t1 = 1; t1 <= ub; t1++) {
+ for(t2 = t1; t2 <= n; t2++) {
+ if (t1 >= lb && t2 >= t1+1) {
+ s1(t1,t2);
+ }
+ if (ub <= n-1 && t2 >= t1+1 && t1 >= lb) {
+ s3(t1,t2);
+ }
+ for(t4 = max(lb,t1); t4 <= ub; t4++) {
+ if (t4 >= t1+1 && t4 <= lb) {
+ s4(t1,t2,t4,t1,t2);
+ }
+ s2(t1,t2,t4);
+ }
+ }
+ }
+}
+
+>>> # codegen 2 T1:I1,T2:I2,Tp:p,Tw:w given known;
+>>> # codegen 1 T1:I1,T2:I2,Tp:p,Tw:w given known2;
+>>> # codegen 2 T1:I1,T2:I2,Tp:p,Tw:w given known2;
+