diff options
Diffstat (limited to 'omegalib/examples/union.out')
-rw-r--r-- | omegalib/examples/union.out | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/omegalib/examples/union.out b/omegalib/examples/union.out new file mode 100644 index 0000000..bf42f02 --- /dev/null +++ b/omegalib/examples/union.out @@ -0,0 +1,96 @@ +>>> # test ConvexRepresentation +>>> +>>> symbolic n; +>>> +>>> # +>>> # result is convex, same behavior as PairwiseCheck +>>> # +>>> r1:={[i,j]: 0<=i,j<=100}; +>>> r2:={[i,j]: i>=100 && j>=0 && i+j<=200}; +>>> r3:={[i,j]: i>=0 && j>=100 && i+j<=200}; +>>> PairwiseCheck (r1 union r2 union r3); +{[i,j]: 0 <= i <= -j+200 && 0 <= j} +>>> ConvexRepresentation (r1 union r2 union r3); +{[i,j]: 0 <= i <= -j+200 && 0 <= j} +>>> +>>> r1:={[i]: 1<=i<=n && exists (alpha: i=2alpha)}; +>>> r2:={[i]: 1<=i<=n && exists (alpha: i=2alpha+1)}; +>>> PairwiseCheck (r1 union r2); +{[i]: 1 <= i <= n} +>>> ConvexRepresentation (r1 union r2); +{[i]: 1 <= i <= n} +>>> +>>> # +>>> # test neighboring regions merge +>>> # +>>> r1:={[i]: 1<=i<=9 && exists (alpha: i=2alpha+1)}; +>>> r2:={[i]: 9<=i<=99 && exists (alpha: i=2alpha+1)}; +>>> PairwiseCheck (r1 union r2); +{[i]: Exists ( alpha : 2alpha = 1+i && 1 <= i <= 9)} union + {[i]: Exists ( alpha : 2alpha = 1+i && 9 <= i <= 99)} +>>> ConvexRepresentation (r1 union r2); +{[i]: Exists ( alpha : 2alpha = 1+i && 1 <= i <= 99)} +>>> +>>> r1:={[i,j]:1<=i,j<=100}; +>>> r2:={[i,j]:50<=i<=100 && 100<=j<=200}; +>>> r3:={[i,j]:1<=i<=50 && 100<=j<=200}; +>>> r4:={[i,j]: 1000<=i,j<=2000}; +>>> PairwiseCheck (r1 union r2 union r3 union r4); +{[i,j]: 1 <= i <= 100 && 1 <= j <= 100} union + {[i,j]: 50 <= i <= 100 && 100 <= j <= 200} union + {[i,j]: 1 <= i <= 50 && 100 <= j <= 200} union + {[i,j]: 1000 <= i <= 2000 && 1000 <= j <= 2000} +>>> ConvexRepresentation (r1 union r2 union r3 union r4); +{[i,j]: 1 <= i <= 100 && 1 <= j <= 200} union + {[i,j]: 1000 <= i <= 2000 && 1000 <= j <= 2000} +>>> +>>> # +>>> # test stride condition merge, filling up holes +>>> # +>>> r1:={[i]:1<=i<=100 && exists (alpha: 1+7alpha<=i<=3+7alpha)}; +>>> r2:={[i]:1<=i<=100 && exists (alpha: i=4+7alpha)}; +>>> r3:={[i]:1<=i<=100 && exists (alpha: i=5+7alpha)}; +>>> r4:={[i]:1<=i<=100 && exists (alpha: 6+7alpha<=i<=9+7alpha)}; +>>> PairwiseCheck (r1 union r2 union r3); +{[i]: Exists ( alpha : 1, 7alpha+1 <= i <= 100, 7alpha+3)} union + {[i]: Exists ( alpha : 3+i = 7alpha && 4 <= i <= 95)} union + {[i]: Exists ( alpha : 2+i = 7alpha && 5 <= i <= 96)} +>>> ConvexRepresentation (r1 union r2 union r3); +{[i]: Exists ( alpha : 1, 7alpha+1 <= i <= 100, 7alpha+5)} +>>> +>>> PairwiseCheck (r1 union r2 union r4); +{[i]: Exists ( alpha : 1, 7alpha+1 <= i <= 100, 7alpha+3)} union + {[i]: Exists ( alpha : 3+i = 7alpha && 4 <= i <= 95)} union + {[i]: Exists ( alpha : 1, 7alpha+6 <= i <= 100, 7alpha+9)} +>>> ConvexRepresentation (r1 union r2 union r4); +{[i]: Exists ( alpha : 1, 7alpha+6 <= i <= 100, 7alpha+11)} +>>> +>>> r1:={[i]:6<=i<=96 && exists (alpha: i=6alpha)}; +>>> r2:={[i]:3<=i<=93 && exists (alpha: i=3+6alpha)}; +>>> PairwiseCheck (r1 union r2); +{[i]: Exists ( alpha : i = 6alpha && 6 <= i <= 96)} union + {[i]: Exists ( alpha : i = 3+6alpha && 3 <= i <= 93)} +>>> ConvexRepresentation (r1 union r2); +{[i]: Exists ( alpha : i = 3alpha && 3 <= i <= 96)} +>>> +>>> r1:={[i]:1<=i<=100 && exists (alpha: 1+15alpha<=i<=4+15alpha)}; +>>> r2:={[i]:1<=i<=100 && exists (alpha: 6+15alpha<=i<=8+15alpha)}; +>>> r3:={[i]:1<=i<=100 && exists (alpha: 11+15alpha<=i<=13+15alpha)}; +>>> PairwiseCheck (r1 union r2 union r3); +{[i]: Exists ( alpha : 1, 15alpha+1 <= i <= 100, 15alpha+4)} union + {[i]: Exists ( alpha : 1, 15alpha+6 <= i <= 100, 15alpha+8)} union + {[i]: Exists ( alpha : 1, 15alpha+11 <= i <= 100, 15alpha+13)} +>>> ConvexRepresentation (r1 union r2 union r3); +{[i]: Exists ( alpha : i = 4+15alpha && 4 <= i <= 94)} union + {[i]: Exists ( alpha : 1, 5alpha+1 <= i <= 100, 5alpha+3)} +>>> +>>> # +>>> # additional test cases +>>> # +>>> r1:={[i]:0<=i<=100}; +>>> r2:={[i]: 10<=i<=100 && exists (alpha: i=1+5alpha)}; +>>> PairwiseCheck (r1 union r2); +{[i]: 0 <= i <= 100} +>>> ConvexRepresentation (r1 union r2); +{[i]: 0 <= i <= 100} +>>> |