this repo has no description
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 99 operator ==(const LinIntExpr& l, const LinIntExpr& r) { 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 160 operator !=(const LinIntExpr& l, const LinIntExpr& r) { 161 return LinIntRel(l,IRT_NQ,r); 162 } 163 164 LinIntRel 165 operator <(int l, const IntVar& r) { 166 return LinIntRel(l,IRT_LE,r); 167 } 168 LinIntRel 169 operator <(int l, const BoolVar& r) { 170 return LinIntRel(l,IRT_LE,r); 171 } 172 LinIntRel 173 operator <(int l, const LinIntExpr& r) { 174 return LinIntRel(l,IRT_LE,r); 175 } 176 LinIntRel 177 operator <(const IntVar& l, int r) { 178 return LinIntRel(l,IRT_LE,r); 179 } 180 LinIntRel 181 operator <(const BoolVar& l, int r) { 182 return LinIntRel(l,IRT_LE,r); 183 } 184 LinIntRel 185 operator <(const LinIntExpr& l, int r) { 186 return LinIntRel(l,IRT_LE,r); 187 } 188 LinIntRel 189 operator <(const IntVar& l, const IntVar& r) { 190 return LinIntRel(l,IRT_LE,r); 191 } 192 LinIntRel 193 operator <(const IntVar& l, const BoolVar& r) { 194 return LinIntRel(l,IRT_LE,r); 195 } 196 LinIntRel 197 operator <(const BoolVar& l, const IntVar& r) { 198 return LinIntRel(l,IRT_LE,r); 199 } 200 LinIntRel 201 operator <(const BoolVar& l, const BoolVar& r) { 202 return LinIntRel(l,IRT_LE,r); 203 } 204 LinIntRel 205 operator <(const IntVar& l, const LinIntExpr& r) { 206 return LinIntRel(l,IRT_LE,r); 207 } 208 LinIntRel 209 operator <(const BoolVar& l, const LinIntExpr& r) { 210 return LinIntRel(l,IRT_LE,r); 211 } 212 LinIntRel 213 operator <(const LinIntExpr& l, const IntVar& r) { 214 return LinIntRel(l,IRT_LE,r); 215 } 216 LinIntRel 217 operator <(const LinIntExpr& l, const BoolVar& r) { 218 return LinIntRel(l,IRT_LE,r); 219 } 220 LinIntRel 221 operator <(const LinIntExpr& l, const LinIntExpr& r) { 222 return LinIntRel(l,IRT_LE,r); 223 } 224 225 LinIntRel 226 operator <=(int l, const IntVar& r) { 227 return LinIntRel(l,IRT_LQ,r); 228 } 229 LinIntRel 230 operator <=(int l, const BoolVar& r) { 231 return LinIntRel(l,IRT_LQ,r); 232 } 233 LinIntRel 234 operator <=(int l, const LinIntExpr& r) { 235 return LinIntRel(l,IRT_LQ,r); 236 } 237 LinIntRel 238 operator <=(const IntVar& l, int r) { 239 return LinIntRel(l,IRT_LQ,r); 240 } 241 LinIntRel 242 operator <=(const BoolVar& l, int r) { 243 return LinIntRel(l,IRT_LQ,r); 244 } 245 LinIntRel 246 operator <=(const LinIntExpr& l, int r) { 247 return LinIntRel(l,IRT_LQ,r); 248 } 249 LinIntRel 250 operator <=(const IntVar& l, const IntVar& r) { 251 return LinIntRel(l,IRT_LQ,r); 252 } 253 LinIntRel 254 operator <=(const IntVar& l, const BoolVar& r) { 255 return LinIntRel(l,IRT_LQ,r); 256 } 257 LinIntRel 258 operator <=(const BoolVar& l, const IntVar& r) { 259 return LinIntRel(l,IRT_LQ,r); 260 } 261 LinIntRel 262 operator <=(const BoolVar& l, const BoolVar& r) { 263 return LinIntRel(l,IRT_LQ,r); 264 } 265 LinIntRel 266 operator <=(const IntVar& l, const LinIntExpr& r) { 267 return LinIntRel(l,IRT_LQ,r); 268 } 269 LinIntRel 270 operator <=(const BoolVar& l, const LinIntExpr& r) { 271 return LinIntRel(l,IRT_LQ,r); 272 } 273 LinIntRel 274 operator <=(const LinIntExpr& l, const IntVar& r) { 275 return LinIntRel(l,IRT_LQ,r); 276 } 277 LinIntRel 278 operator <=(const LinIntExpr& l, const BoolVar& r) { 279 return LinIntRel(l,IRT_LQ,r); 280 } 281 LinIntRel 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 343 operator >(const LinIntExpr& l, const LinIntExpr& r) { 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 404 operator >=(const LinIntExpr& l, const LinIntExpr& r) { 405 return LinIntRel(l,IRT_GQ,r); 406 } 407 408} 409 410// STATISTICS: minimodel-any