Generated on Tue Feb 11 2025 17:33:26 for Gecode by doxygen 1.12.0
int-rel.cpp
Go to the documentation of this file.
1/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2/*
3 * Main authors:
4 * Christian Schulte <schulte@gecode.org>
5 *
6 * Copyright:
7 * Christian Schulte, 2005
8 *
9 * This file is part of Gecode, the generic constraint
10 * development environment:
11 * http://www.gecode.org
12 *
13 * Permission is hereby granted, free of charge, to any person obtaining
14 * a copy of this software and associated documentation files (the
15 * "Software"), to deal in the Software without restriction, including
16 * without limitation the rights to use, copy, modify, merge, publish,
17 * distribute, sublicense, and/or sell copies of the Software, and to
18 * permit persons to whom the Software is furnished to do so, subject to
19 * the following conditions:
20 *
21 * The above copyright notice and this permission notice shall be
22 * included in all copies or substantial portions of the Software.
23 *
24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 *
32 */
33
34#include <gecode/minimodel.hh>
35
36namespace Gecode {
37
38 /*
39 * Construction of linear relations
40 *
41 */
42 LinIntRel
43 operator ==(int l, const IntVar& r) {
44 return LinIntRel(l,IRT_EQ,r);
45 }
46 LinIntRel
47 operator ==(int l, const BoolVar& r) {
48 return LinIntRel(l,IRT_EQ,r);
49 }
50 LinIntRel
51 operator ==(int l, const LinIntExpr& r) {
52 return LinIntRel(l,IRT_EQ,r);
53 }
54 LinIntRel
55 operator ==(const IntVar& l, int r) {
56 return LinIntRel(l,IRT_EQ,r);
57 }
58 LinIntRel
59 operator ==(const BoolVar& l, int r) {
60 return LinIntRel(l,IRT_EQ,r);
61 }
62 LinIntRel
63 operator ==(const LinIntExpr& l, int r) {
64 return LinIntRel(l,IRT_EQ,r);
65 }
66 LinIntRel
67 operator ==(const IntVar& l, const IntVar& r) {
68 return LinIntRel(l,IRT_EQ,r);
69 }
70 LinIntRel
71 operator ==(const IntVar& l, const BoolVar& r) {
72 return LinIntRel(l,IRT_EQ,r);
73 }
74 LinIntRel
75 operator ==(const BoolVar& l, const IntVar& r) {
76 return LinIntRel(l,IRT_EQ,r);
77 }
78 LinIntRel
79 operator ==(const BoolVar& l, const BoolVar& r) {
80 return LinIntRel(l,IRT_EQ,r);
81 }
82 LinIntRel
83 operator ==(const IntVar& l, const LinIntExpr& r) {
84 return LinIntRel(l,IRT_EQ,r);
85 }
86 LinIntRel
87 operator ==(const BoolVar& l, const LinIntExpr& r) {
88 return LinIntRel(l,IRT_EQ,r);
89 }
90 LinIntRel
91 operator ==(const LinIntExpr& l, const IntVar& r) {
92 return LinIntRel(l,IRT_EQ,r);
93 }
94 LinIntRel
95 operator ==(const LinIntExpr& l, const BoolVar& r) {
96 return LinIntRel(l,IRT_EQ,r);
97 }
98 LinIntRel
100 return LinIntRel(l,IRT_EQ,r);
101 }
102
103 LinIntRel
104 operator !=(int l, const IntVar& r) {
105 return LinIntRel(l,IRT_NQ,r);
106 }
107 LinIntRel
108 operator !=(int l, const BoolVar& r) {
109 return LinIntRel(l,IRT_NQ,r);
110 }
111 LinIntRel
112 operator !=(int l, const LinIntExpr& r) {
113 return LinIntRel(l,IRT_NQ,r);
114 }
115 LinIntRel
116 operator !=(const IntVar& l, int r) {
117 return LinIntRel(l,IRT_NQ,r);
118 }
119 LinIntRel
120 operator !=(const BoolVar& l, int r) {
121 return LinIntRel(l,IRT_NQ,r);
122 }
123 LinIntRel
124 operator !=(const LinIntExpr& l, int r) {
125 return LinIntRel(l,IRT_NQ,r);
126 }
127 LinIntRel
128 operator !=(const IntVar& l, const IntVar& r) {
129 return LinIntRel(l,IRT_NQ,r);
130 }
131 LinIntRel
132 operator !=(const IntVar& l, const BoolVar& r) {
133 return LinIntRel(l,IRT_NQ,r);
134 }
135 LinIntRel
136 operator !=(const BoolVar& l, const IntVar& r) {
137 return LinIntRel(l,IRT_NQ,r);
138 }
139 LinIntRel
140 operator !=(const BoolVar& l, const BoolVar& r) {
141 return LinIntRel(l,IRT_NQ,r);
142 }
143 LinIntRel
144 operator !=(const IntVar& l, const LinIntExpr& r) {
145 return LinIntRel(l,IRT_NQ,r);
146 }
147 LinIntRel
148 operator !=(const BoolVar& l, const LinIntExpr& r) {
149 return LinIntRel(l,IRT_NQ,r);
150 }
151 LinIntRel
152 operator !=(const LinIntExpr& l, const IntVar& r) {
153 return LinIntRel(l,IRT_NQ,r);
154 }
155 LinIntRel
156 operator !=(const LinIntExpr& l, const BoolVar& r) {
157 return LinIntRel(l,IRT_NQ,r);
158 }
159 LinIntRel
161 return LinIntRel(l,IRT_NQ,r);
162 }
163
165 operator <(int l, const IntVar& r) {
166 return LinIntRel(l,IRT_LE,r);
167 }
169 operator <(int l, const BoolVar& r) {
170 return LinIntRel(l,IRT_LE,r);
171 }
173 operator <(int l, const LinIntExpr& r) {
174 return LinIntRel(l,IRT_LE,r);
175 }
177 operator <(const IntVar& l, int r) {
178 return LinIntRel(l,IRT_LE,r);
179 }
181 operator <(const BoolVar& l, int r) {
182 return LinIntRel(l,IRT_LE,r);
183 }
185 operator <(const LinIntExpr& l, int r) {
186 return LinIntRel(l,IRT_LE,r);
187 }
189 operator <(const IntVar& l, const IntVar& r) {
190 return LinIntRel(l,IRT_LE,r);
191 }
193 operator <(const IntVar& l, const BoolVar& r) {
194 return LinIntRel(l,IRT_LE,r);
195 }
197 operator <(const BoolVar& l, const IntVar& r) {
198 return LinIntRel(l,IRT_LE,r);
199 }
201 operator <(const BoolVar& l, const BoolVar& r) {
202 return LinIntRel(l,IRT_LE,r);
203 }
205 operator <(const IntVar& l, const LinIntExpr& r) {
206 return LinIntRel(l,IRT_LE,r);
207 }
209 operator <(const BoolVar& l, const LinIntExpr& r) {
210 return LinIntRel(l,IRT_LE,r);
211 }
213 operator <(const LinIntExpr& l, const IntVar& r) {
214 return LinIntRel(l,IRT_LE,r);
215 }
217 operator <(const LinIntExpr& l, const BoolVar& r) {
218 return LinIntRel(l,IRT_LE,r);
219 }
221 operator <(const LinIntExpr& l, const LinIntExpr& r) {
222 return LinIntRel(l,IRT_LE,r);
223 }
224
226 operator <=(int l, const IntVar& r) {
227 return LinIntRel(l,IRT_LQ,r);
228 }
230 operator <=(int l, const BoolVar& r) {
231 return LinIntRel(l,IRT_LQ,r);
232 }
234 operator <=(int l, const LinIntExpr& r) {
235 return LinIntRel(l,IRT_LQ,r);
236 }
238 operator <=(const IntVar& l, int r) {
239 return LinIntRel(l,IRT_LQ,r);
240 }
242 operator <=(const BoolVar& l, int r) {
243 return LinIntRel(l,IRT_LQ,r);
244 }
246 operator <=(const LinIntExpr& l, int r) {
247 return LinIntRel(l,IRT_LQ,r);
248 }
250 operator <=(const IntVar& l, const IntVar& r) {
251 return LinIntRel(l,IRT_LQ,r);
252 }
254 operator <=(const IntVar& l, const BoolVar& r) {
255 return LinIntRel(l,IRT_LQ,r);
256 }
258 operator <=(const BoolVar& l, const IntVar& r) {
259 return LinIntRel(l,IRT_LQ,r);
260 }
262 operator <=(const BoolVar& l, const BoolVar& r) {
263 return LinIntRel(l,IRT_LQ,r);
264 }
266 operator <=(const IntVar& l, const LinIntExpr& r) {
267 return LinIntRel(l,IRT_LQ,r);
268 }
270 operator <=(const BoolVar& l, const LinIntExpr& r) {
271 return LinIntRel(l,IRT_LQ,r);
272 }
274 operator <=(const LinIntExpr& l, const IntVar& r) {
275 return LinIntRel(l,IRT_LQ,r);
276 }
278 operator <=(const LinIntExpr& l, const BoolVar& r) {
279 return LinIntRel(l,IRT_LQ,r);
280 }
282 operator <=(const LinIntExpr& l, const LinIntExpr& r) {
283 return LinIntRel(l,IRT_LQ,r);
284 }
285
286 LinIntRel
287 operator >(int l, const IntVar& r) {
288 return LinIntRel(l,IRT_GR,r);
289 }
290 LinIntRel
291 operator >(int l, const BoolVar& r) {
292 return LinIntRel(l,IRT_GR,r);
293 }
294 LinIntRel
295 operator >(int l, const LinIntExpr& r) {
296 return LinIntRel(l,IRT_GR,r);
297 }
298 LinIntRel
299 operator >(const IntVar& l, int r) {
300 return LinIntRel(l,IRT_GR,r);
301 }
302 LinIntRel
303 operator >(const BoolVar& l, int r) {
304 return LinIntRel(l,IRT_GR,r);
305 }
306 LinIntRel
307 operator >(const LinIntExpr& l, int r) {
308 return LinIntRel(l,IRT_GR,r);
309 }
310 LinIntRel
311 operator >(const IntVar& l, const IntVar& r) {
312 return LinIntRel(l,IRT_GR,r);
313 }
314 LinIntRel
315 operator >(const IntVar& l, const BoolVar& r) {
316 return LinIntRel(l,IRT_GR,r);
317 }
318 LinIntRel
319 operator >(const BoolVar& l, const IntVar& r) {
320 return LinIntRel(l,IRT_GR,r);
321 }
322 LinIntRel
323 operator >(const BoolVar& l, const BoolVar& r) {
324 return LinIntRel(l,IRT_GR,r);
325 }
326 LinIntRel
327 operator >(const IntVar& l, const LinIntExpr& r) {
328 return LinIntRel(l,IRT_GR,r);
329 }
330 LinIntRel
331 operator >(const BoolVar& l, const LinIntExpr& r) {
332 return LinIntRel(l,IRT_GR,r);
333 }
334 LinIntRel
335 operator >(const LinIntExpr& l, const IntVar& r) {
336 return LinIntRel(l,IRT_GR,r);
337 }
338 LinIntRel
339 operator >(const LinIntExpr& l, const BoolVar& r) {
340 return LinIntRel(l,IRT_GR,r);
341 }
342 LinIntRel
344 return LinIntRel(l,IRT_GR,r);
345 }
346
347 LinIntRel
348 operator >=(int l, const IntVar& r) {
349 return LinIntRel(l,IRT_GQ,r);
350 }
351 LinIntRel
352 operator >=(int l, const BoolVar& r) {
353 return LinIntRel(l,IRT_GQ,r);
354 }
355 LinIntRel
356 operator >=(int l, const LinIntExpr& r) {
357 return LinIntRel(l,IRT_GQ,r);
358 }
359 LinIntRel
360 operator >=(const IntVar& l, int r) {
361 return LinIntRel(l,IRT_GQ,r);
362 }
363 LinIntRel
364 operator >=(const BoolVar& l, int r) {
365 return LinIntRel(l,IRT_GQ,r);
366 }
367 LinIntRel
368 operator >=(const LinIntExpr& l, int r) {
369 return LinIntRel(l,IRT_GQ,r);
370 }
371 LinIntRel
372 operator >=(const IntVar& l, const IntVar& r) {
373 return LinIntRel(l,IRT_GQ,r);
374 }
375 LinIntRel
376 operator >=(const IntVar& l, const BoolVar& r) {
377 return LinIntRel(l,IRT_GQ,r);
378 }
379 LinIntRel
380 operator >=(const BoolVar& l, const IntVar& r) {
381 return LinIntRel(l,IRT_GQ,r);
382 }
383 LinIntRel
384 operator >=(const BoolVar& l, const BoolVar& r) {
385 return LinIntRel(l,IRT_GQ,r);
386 }
387 LinIntRel
388 operator >=(const IntVar& l, const LinIntExpr& r) {
389 return LinIntRel(l,IRT_GQ,r);
390 }
391 LinIntRel
392 operator >=(const BoolVar& l, const LinIntExpr& r) {
393 return LinIntRel(l,IRT_GQ,r);
394 }
395 LinIntRel
396 operator >=(const LinIntExpr& l, const IntVar& r) {
397 return LinIntRel(l,IRT_GQ,r);
398 }
399 LinIntRel
400 operator >=(const LinIntExpr& l, const BoolVar& r) {
401 return LinIntRel(l,IRT_GQ,r);
402 }
403 LinIntRel
405 return LinIntRel(l,IRT_GQ,r);
406 }
407
408}
409
410// STATISTICS: minimodel-any
NNF * l
Left subtree.
Boolean integer variables.
Definition int.hh:512
Integer variables.
Definition int.hh:371
Linear expressions over integer variables.
Definition minimodel.hh:245
Linear relations over integer variables.
Definition minimodel.hh:335
@ IRT_EQ
Equality ( )
Definition int.hh:926
@ IRT_NQ
Disequality ( )
Definition int.hh:927
@ IRT_GQ
Greater or equal ( )
Definition int.hh:930
@ IRT_LE
Less ( )
Definition int.hh:929
@ IRT_GR
Greater ( )
Definition int.hh:931
@ IRT_LQ
Less or equal ( )
Definition int.hh:928
Gecode toplevel namespace
bool operator<=(const FloatVal &x, const FloatVal &y)
Definition val.hpp:243
Post propagator for SetVar SetOpType SetVar SetRelType r
Definition set.hh:767
bool operator<(const FloatVal &x, const FloatVal &y)
Definition val.hpp:226
bool operator>(const FloatVal &x, const FloatVal &y)
Definition val.hpp:260
bool operator>=(const FloatVal &x, const FloatVal &y)
Definition val.hpp:277
bool operator==(const FloatVal &x, const FloatVal &y)
Definition val.hpp:294
bool operator!=(const FloatVal &x, const FloatVal &y)
Definition val.hpp:317