diff options
author | dhuth <derickhuth@gmail.com> | 2014-10-06 11:56:47 -0600 |
---|---|---|
committer | dhuth <derickhuth@gmail.com> | 2014-10-06 11:56:47 -0600 |
commit | e4b20015a4ee35f1279af4caa983478fa2ff0d4a (patch) | |
tree | f47cbff8b2bba458b54a739e91a87b303f7665f1 /omega/examples/old_test/davew1.oc-rt | |
parent | 600fa18324c21a162c50c40ae5f00c899a41dd24 (diff) | |
download | chill-e4b20015a4ee35f1279af4caa983478fa2ff0d4a.tar.gz chill-e4b20015a4ee35f1279af4caa983478fa2ff0d4a.tar.bz2 chill-e4b20015a4ee35f1279af4caa983478fa2ff0d4a.zip |
Added omega to source
Diffstat (limited to 'omega/examples/old_test/davew1.oc-rt')
-rw-r--r-- | omega/examples/old_test/davew1.oc-rt | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/omega/examples/old_test/davew1.oc-rt b/omega/examples/old_test/davew1.oc-rt new file mode 100644 index 0000000..bc9844c --- /dev/null +++ b/omega/examples/old_test/davew1.oc-rt @@ -0,0 +1,67 @@ +# Omega Calculator v1.2 (based on Omega Library 1.2, August, 2000): +# # +# # A one point, we couldn't handling this analysis of value-based dependences. +# # Now we can :-) +# # +# +# Pos := {[In_1,In_2] -> [i,j] : 1 <= i,j <= 100 && +# In_1 = 1+2j+i && 2i+In_2 = 1 }; +# +# +# ko := {[In_1,In_2] -> [i,j] : 1+In_1+2j = 4i && In_2+i+2j = 0 && +# 1 <= i <= 100 && 1 <= j <= 100}; +# +# +# kf := {[i,j] -> [i',j'] : 1 <= i,i',j,j' <= 100 && i < i' && +# 4i = 2+2j+2j'+i' && 2i' = 1+2j+i }; +# +# +# k := ko join kf; +# +# +# k intersection Pos; + +{[In_1,In_2] -> [i,j] : Exists ( alpha : In_2+2i = 1 && 2In_1+In_2 = 3+4j && In_2 = 5+8j+20alpha && -199 <= In_2 <= -2j-5 && 1 <= j)} + +# +# example (k intersection Pos); + +{[7,-7] -> [4,1] } + +# +# Pos; + +{[In_1,In_2] -> [i,j] : In_1 = 1+i+2j && In_2+2i = 1 && 1 <= i <= 100 && 1 <= j <= 100} + +# +# Pos - (ko join kf); + +{[In_1,In_2] -> [i,j] : In_1 = 1+i+2j && In_2+2i = 1 && 1 <= i <= j+2, 100 && 1 <= j <= 100} union + {[In_1,In_2] -> [i,j] : Exists ( alpha : In_1 = 1+i+2j && In_2+2i = 1 && j+3 <= i <= 100 && 5+10alpha <= 3i+2j && 3i+2j <= 13+10alpha && 1 <= j)} + +# +# Pos - k; + +{[In_1,In_2] -> [i,j] : 1+i+2j = In_1 && 2In_1+In_2 = 3+4j && 2j+2 <= In_1 <= 3j+3, 2j+101 && 1 <= j <= 100} union + {[In_1,In_2] -> [i,j] : Exists ( alpha : 1+i+2j = In_1 && 2In_1+In_2 = 3+4j && 3j+4 <= In_1 <= 2j+101 && 8+4j+10alpha <= 3In_1 && 3In_1 <= 16+4j+10alpha && 1 <= j)} + +# +# answer := Pos - k; +# +# answer; + +{[In_1,In_2] -> [i,j] : 1+i+2j = In_1 && 2In_1+In_2 = 3+4j && 2j+2 <= In_1 <= 3j+3, 2j+101 && 1 <= j <= 100} union + {[In_1,In_2] -> [i,j] : Exists ( alpha : 1+i+2j = In_1 && 2In_1+In_2 = 3+4j && 3j+4 <= In_1 <= 2j+101 && 8+4j+10alpha <= 3In_1 && 3In_1 <= 16+4j+10alpha && 1 <= j)} + +# +# answer intersection {[7,-7] -> [4,1]}; + +{[In_1,In_2] -> [i,j] : FALSE } + +# +# gist answer given Pos; + +{[In_1,In_2] -> [i,j] : i <= j+2} union + {[In_1,In_2] -> [i,j] : Exists ( alpha : j <= i-3 && 3i+2j <= 13+10alpha && 5+10alpha <= 3i+2j)} + +# |