summaryrefslogtreecommitdiff
path: root/omegalib/examples/union.out
blob: bf42f02a2d12636dd89363aa0a542ce3039d4a60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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}
>>>