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