Lines Matching +full:- +full:y
1 //===- PresburgerRelationTest.cpp - Tests for PresburgerRelation class ----===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
23 {// (x, y) -> (x + N, y - N) in TEST()
24 "(x, y, a, b)[N] : (x - a + N == 0, y - b - N == 0)", in TEST()
25 // (x, y) -> (x + y, x - y) in TEST()
26 "(x, y, a, b)[N] : (a - x - y == 0, b - x + y == 0)", in TEST()
27 // (x, y) -> (x - y, y - x)} in TEST()
28 "(x, y, a, b)[N] : (a - x + y == 0, b - y + x == 0)"}, in TEST()
33 "(a, b)[N] : (a - 2 * b == 0)", in TEST()
34 // (x, -x) in TEST()
37 "(a, b)[N] : (a - N == 0, b - N == 0)"}); in TEST()
40 {"(x, y, a, b)[N] : (x - a + N == 0, y - b - N == 0, x - 2 * y == 0)", in TEST()
41 "(x, y, a, b)[N] : (x - a + N == 0, y - b - N == 0, x + y == 0)", in TEST()
42 "(x, y, a, b)[N] : (x - a + N == 0, y - b - N == 0, x - N == 0, y - N " in TEST()
44 "(x, y, a, b)[N] : (a - x - y == 0, b - x + y == 0, x - 2 * y == 0)", in TEST()
45 "(x, y, a, b)[N] : (a - x - y == 0, b - x + y == 0, x + y == 0)", in TEST()
46 "(x, y, a, b)[N] : (a - x - y == 0, b - x + y == 0, x - N == 0, y - N " in TEST()
48 "(x, y, a, b)[N] : (a - x + y == 0, b - y + x == 0, x - 2 * y == 0)", in TEST()
49 "(x, y, a, b)[N] : (a - x + y == 0, b - y + x == 0, x + y == 0)", in TEST()
50 "(x, y, a, b)[N] : (a - x + y == 0, b - y + x == 0, x - N == 0, y - N " in TEST()
60 {// (x)[N] -> (x + N, x - N) in TEST()
61 "(x, a, b)[N] : (a - x - N == 0, b - x + N == 0)", in TEST()
62 // (x)[N] -> (x, -x) in TEST()
63 "(x, a, b)[N] : (a - x == 0, b + x == 0)", in TEST()
64 // (x)[N] -> (N - x, 2 * x)} in TEST()
65 "(x, a, b)[N] : (a - N + x == 0, b - 2 * x == 0)"}, in TEST()
70 "(a, b)[N] : (a - 2 * b == 0)", in TEST()
71 // (x, -x) in TEST()
74 "(a, b)[N] : (a - N == 0, b - N == 0)"}); in TEST()
77 {"(x, a, b)[N] : (a - x - N == 0, b - x + N == 0, a - 2 * b == 0)", in TEST()
78 "(x, a, b)[N] : (a - x - N == 0, b - x + N == 0, a + b == 0)", in TEST()
79 "(x, a, b)[N] : (a - x - N == 0, b - x + N == 0, a - N == 0, b - N " in TEST()
81 "(x, a, b)[N] : (a - x == 0, b + x == 0, a - 2 * b == 0)", in TEST()
82 "(x, a, b)[N] : (a - x == 0, b + x == 0, a + b == 0)", in TEST()
83 "(x, a, b)[N] : (a - x == 0, b + x == 0, a - N == 0, b - N " in TEST()
85 "(x, a, b)[N] : (a - N + x == 0, b - 2 * x == 0, a - 2 * b == 0)", in TEST()
86 "(x, a, b)[N] : (a - N + x == 0, b - 2 * x == 0, a + b == 0)", in TEST()
87 "(x, a, b)[N] : (a - N + x == 0, b - 2 * x == 0, a - N == 0, b - N " in TEST()
99 {// (x, y) -> (y, x) in TEST()
100 "(x, y, a, b)[N] : (y - a == 0, x - b == 0)", in TEST()
101 // (x, y) -> (x + N, y - N) in TEST()
102 "(x, y, a, b)[N] : (x - a + N == 0, y - b - N == 0)"}, in TEST()
105 {// (x, y) -> (x - y) in TEST()
106 "(x, y, r)[N] : (x - y - r == 0)", in TEST()
107 // (x, y) -> N in TEST()
108 "(x, y, r)[N] : (N - r == 0)"}, in TEST()
114 {// (y - x) -> (x, y) in TEST()
115 "(r, x, y)[N] : (y - x - r == 0)", in TEST()
116 // (x - y - 2N) -> (x, y) in TEST()
117 "(r, x, y)[N] : (x - y - 2 * N - r == 0)", in TEST()
118 // (x, y) -> N in TEST()
119 "(r, x, y)[N] : (N - r == 0)"}, in TEST()
129 {// (x, y) -> (-y, -x) in TEST()
130 "(x, y, a, b)[N] : (y + a == 0, x + b == 0)", in TEST()
131 // (x, y) -> (x + N, y - N) in TEST()
132 "(x, y, a, b)[N] : (x - a + N == 0, y - b - N == 0)"}, in TEST()
138 {// (x, y) -> (-y, -x) in TEST()
139 "(x, y, a, b)[N] : (y + a == 0, x + b == 0)", in TEST()
140 // (x, y) -> (x - N, y + N) in TEST()
141 "(x, y, a, b)[N] : (x - N - a == 0, y + N - b == 0)"}, in TEST()
150 {"(x, y)[N, M] : (x >= 0, y >= 0, N - 1 >= 0, M >= 0, M - 2 * N - 1>= 0, " in TEST()
151 "2 * N - x >= 0, 2 * N - y >= 0)", in TEST()
152 "(x, y)[N, M] : (x >= 0, y >= 0, N - 1 >= 0, M >= 0, M - 2 * N - 1>= 0, " in TEST()
153 "x - N >= 0, M - x >= 0, y - 2 * N >= 0, M - y >= 0)"}, in TEST()
159 {"(x)[N, M] : (x >= 0, N - 1 >= 0, M >= 0, M - 2 * N - 1 >= 0, " in TEST()
160 "2 * N - x >= 0)", in TEST()
161 "(x)[N, M] -> (0)"}, in TEST()
162 {"(x)[N, M] : (x >= 0, N - 1 >= 0, M >= 0, M - 2 * N - 1 >= 0, " in TEST()
163 "x - 2 * N- 1 >= 0, M - x >= 0)", in TEST()
164 "(x)[N, M] -> (2 * N)"}, in TEST()
170 {"(x)[N, M] : (x >= 0, N - 1 >= 0, M >= 0, M - 2 * N - 1 >= 0, " in TEST()
171 "N - 1 - x >= 0)", in TEST()
172 "(x)[N, M] -> (2 * N)"}, in TEST()
173 {"(x)[N, M] : (x >= 0, N - 1 >= 0, M >= 0, M - 2 * N - 1 >= 0, " in TEST()
174 "x - N >= 0, M - x >= 0)", in TEST()
175 "(x)[N, M] -> (M)"}, in TEST()
184 // x or y or z in TEST()
185 // lexmin = (x, 0, 1 - x) in TEST()
187 {"(x, y, z) : (x >= 0, y >= 0, z >= 0, 1 - x >= 0, 1 - y >= 0, " in TEST()
188 "1 - z >= 0, x + y + z - 1 >= 0)", in TEST()
189 // (x or y) and (y or z) and (z or x) in TEST()
190 // lexmin = (x, 1 - x, 1) in TEST()
192 "(x, y, z) : (x >= 0, y >= 0, z >= 0, 1 - x >= 0, 1 - y >= 0, " in TEST()
193 "1 - z >= 0, x + y - 1 >= 0, y + z - 1 >= 0, z + x - 1 >= 0)", in TEST()
194 // x => (not y) or (not z) in TEST()
196 // lexmax = (x, 1, 1 - x) in TEST()
197 "(x, y, z) : (x >= 0, y >= 0, z >= 0, 1 - x >= 0, 1 - y >= 0, " in TEST()
198 "1 - z >= 0, 2 - x - y - z >= 0)"}, in TEST()
204 parsePWMAF({{"(x) : (x >= 0, 1 - x >= 0)", "(x) -> (0, 0)"}}); in TEST()
209 parsePWMAF({{"(x) : (x >= 0, 1 - x >= 0)", "(x) -> (1, 1)"}}); in TEST()
218 // lexmin = (x, 0, 0, 1 - x) in TEST()
219 // lexmax = (x, 1, 1 - x, x) in TEST()
220 {"(x, u, v, w) : (x >= 0, u >= 0, v >= 0, w >= 0, 1 - x >= 0, " in TEST()
221 "1 - u >= 0, 1 - v >= 0, 1 - w >= 0, -x + u + v + w >= 0, " in TEST()
222 "x + v - 1 >= 0, x - w >= 0)", in TEST()
226 "(x, u, v, w) : (x >= 0, u >= 0, v >= 0, w >= 0, 1 - x >= 0, " in TEST()
227 "1 - u >= 0, 1 - v >= 0, 1 - w >= 0, -x - u - v + w + 2 >= 0, " in TEST()
228 "x - v >= 0, x - w >= 0)", in TEST()
233 "(x, u, v, w) : (x >= 0, u >= 0, v >= 0, w >= 0, 1 - x >= 0, " in TEST()
234 "1 - u >= 0, 1 - v >= 0, 1 - w >= 0, x + u - v >= 0, x - u + w >= 0, " in TEST()
235 "x - v >= 0, x - w >= 0)"}, in TEST()
241 parsePWMAF({{"(x) : (x >= 0, 1 - x >= 0)", "(x) -> (0, 0, 0)"}}); in TEST()
246 parsePWMAF({{"(x) : (x >= 0, 1 - x >= 0)", "(x) -> (1, 1, x)"}}); in TEST()
256 {// (x, y) -> (x + N, y - N) in TEST()
257 "(x, y, a, b)[N] : (a >= 0, b >= 0, N - a >= 0, N - b >= 0, x - a + N " in TEST()
258 "== 0, y - b - N == 0)", in TEST()
259 // (x, y) -> (- y, - x) in TEST()
260 "(x, y, a, b)[N] : (a >= 0, b >= 0, 2 * N - a >= 0, 2 * N - b >= 0, a + " in TEST()
261 "y == 0, b + x == 0)"}, in TEST()
267 {"(x, y)[N] : (x + N >= 0, -x >= 0, y - N >= 0, 2 * N - y >= 0)", in TEST()
268 "(x, y)[N] : (x + 2 * N >= 0, -x >= 0, y + 2 * N >= 0, -y >= 0)"}); in TEST()
275 {"(x, y)[N] : (x >= 0, 2 * N - x >= 0, y >= 0, 2 * N - y >= 0)"}); in TEST()
284 "(x, y, a)[U, V, W] : (x - U == 0, y + a - W == 0," in TEST()
285 "U - V >= 0, y - a >= 0)", in TEST()
288 "(x, y, a)[U, V, W] : (x + y - U == 0, x - a + V == 0," in TEST()
289 "V - U >= 0, y + a >= 0)", in TEST()