diff options
author | dhuth <derickhuth@gmail.com> | 2014-11-21 13:35:20 -0700 |
---|---|---|
committer | dhuth <derickhuth@gmail.com> | 2014-11-21 13:35:20 -0700 |
commit | a1834b22c43c282442b0cb164767e6c877cf0e5b (patch) | |
tree | bedc5be7d1bdb8d32c1868caa496a8a1530d8d8a /omega/examples/gist | |
parent | ded84bb4aec7461738e7b7033d782a518e2c606b (diff) | |
parent | eb9236c5353785472ae132f27e1cfb9f1e4264a5 (diff) | |
download | chill-a1834b22c43c282442b0cb164767e6c877cf0e5b.tar.gz chill-a1834b22c43c282442b0cb164767e6c877cf0e5b.tar.bz2 chill-a1834b22c43c282442b0cb164767e6c877cf0e5b.zip |
Merge branch 'master' into doe
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; |