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/gist | |
parent | 600fa18324c21a162c50c40ae5f00c899a41dd24 (diff) | |
download | chill-e4b20015a4ee35f1279af4caa983478fa2ff0d4a.tar.gz chill-e4b20015a4ee35f1279af4caa983478fa2ff0d4a.tar.bz2 chill-e4b20015a4ee35f1279af4caa983478fa2ff0d4a.zip |
Added omega to source
Diffstat (limited to 'omega/examples/gist')
-rw-r--r-- | omega/examples/gist | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/omega/examples/gist b/omega/examples/gist new file mode 100644 index 0000000..5919b88 --- /dev/null +++ b/omega/examples/gist @@ -0,0 +1,60 @@ +# +# Test gist function and code generation for modular equations +# + +symbolic n; + +# basic gist function +# +R:={[t1,t2]: exists (aa : 2aa = t1 && 2 <= t1 && t1 <= 8)}; +known := {[t1,t2]: 1 <= t1 <= 9}; +gist R given known; + + +# test modulo equations by coprime numbers +# +is := { [i,j] : 1 <= i <= n && i <= j <= n && exists (alpha, beta: i= 1+4*alpha && j = i+3*beta) }; +is; +known := { [i,j] : 1 <= i <= n && exists (alpha: i = 1+4*alpha) }; +gist is given known; + +codegen is; + +# test modulo equations by numbers in multiple +# +is := { [i,j] : 1 <= i <= n && i <= j <= n && exists (alpha, beta: i= 1+4*alpha && j = i+8*beta) }; +is; +known := { [i,j] : 1 <= i <= n && exists (alpha: i = 1+4*alpha) }; +gist is given known; + +codegen is; + +is := { [i,j] : 1 <= i <= n && i <= j <= n && exists (alpha, beta: i= 1+256*alpha && j = i+8*beta) }; +is; +known := { [i,j] : 1 <= i <= n && exists (alpha: i = 1+256*alpha) }; +gist is given known; + +codegen is; + +# test modulo equations by gcd != 1 +# +is := { [i,j] : 1 <= i <= n && i <= j <= n && exists (alpha, beta: i= 1+4*alpha && j = i+1+6*beta) }; +is; +known := { [i,j] : 1 <= i <= n && exists (alpha: i = 1+4*alpha) }; +gist is given known; +codegen is; + +is := { [i,j] : 1 <= i <= n && i <= j <= n && exists (alpha, beta: i= 1+6*alpha && j = i+4*beta) }; +is; +known := { [i,j] : 1 <= i <= n && exists (alpha: i = 1+6*alpha) }; +gist is given known; +codegen is; + +# gist won't simpilfy to the result we want, but the code generation +# takes care of it +# +is := { [i,j] : 1 <= i <= n && i <= j <= n && exists (alpha, beta: i= 1+12*alpha && j = i+8*beta) }; +is; +known := { [i,j] : 1 <= i <= n && exists (alpha: i = 1+12*alpha) }; +gist is given known; +codegen is; |