diff options
Diffstat (limited to 'omegalib/examples/old_test/ge.oc-rt')
-rw-r--r-- | omegalib/examples/old_test/ge.oc-rt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/omegalib/examples/old_test/ge.oc-rt b/omegalib/examples/old_test/ge.oc-rt new file mode 100644 index 0000000..1006fe5 --- /dev/null +++ b/omegalib/examples/old_test/ge.oc-rt @@ -0,0 +1,38 @@ +>>> symbolic n; +>>> I1 := {[k,i] : 1 <= k < i <= n }; +>>> I2 := {[k,i,j] : 1 <= k < i,j <= n }; +>>> T1 := {[k,i] -> [i,k,1,0]}; +>>> T2 := {[k,i,j] -> [i,j,0,k]}; +>>> T1(I1); +{[i,k,1,0]: 1 <= k < i <= n} +>>> T2(I2); +{[i,j,0,k]: 1 <= k < i,j <= n} +>>> codegen T1:I1,T2:I2; +for(t1 = 2; t1 <= n; t1++) { + for(t2 = 1; t2 <= n; t2++) { + for(t4 = 1; t4 <= min(t1-1,t2-1); t4++) { + s2(t4,t1,t2); + } + if (t2 <= t1-1) { + s1(t2,t1); + } + } +} + +>>> codegen 2 T1:I1,T2:I2; +for(t1 = 2; t1 <= n; t1++) { + s1(1,t1); + for(t2 = 2; t2 <= t1-1; t2++) { + for(t4 = 1; t4 <= t2-1; t4++) { + s2(t4,t1,t2); + } + s1(t2,t1); + } + for(t2 = t1; t2 <= n; t2++) { + for(t4 = 1; t4 <= t1-1; t4++) { + s2(t4,t1,t2); + } + } +} + + |