diff options
author | Tuowen Zhao <ztuowen@gmail.com> | 2016-09-17 03:22:53 +0000 |
---|---|---|
committer | Tuowen Zhao <ztuowen@gmail.com> | 2016-09-17 03:22:53 +0000 |
commit | 75ff98e4d65862ff5b36b533b4f6e3ea71ede1d5 (patch) | |
tree | 498ac06b4cf78568b807fafd2619856afff69c28 /omegalib/examples/gist | |
parent | 29efa7b1a0d089e02a70f73f348f11878955287c (diff) | |
download | chill-75ff98e4d65862ff5b36b533b4f6e3ea71ede1d5.tar.gz chill-75ff98e4d65862ff5b36b533b4f6e3ea71ede1d5.tar.bz2 chill-75ff98e4d65862ff5b36b533b4f6e3ea71ede1d5.zip |
cmake build
Diffstat (limited to 'omegalib/examples/gist')
-rw-r--r-- | omegalib/examples/gist | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/omegalib/examples/gist b/omegalib/examples/gist new file mode 100644 index 0000000..5919b88 --- /dev/null +++ b/omegalib/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; |