lin-rel.cpp
Go to the documentation of this file.
00001 /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */ 00002 /* 00003 * Main authors: 00004 * Christian Schulte <schulte@gecode.org> 00005 * 00006 * Copyright: 00007 * Christian Schulte, 2005 00008 * 00009 * Last modified: 00010 * $Date: 2010-07-16 10:51:05 +0200 (Fri, 16 Jul 2010) $ by $Author: tack $ 00011 * $Revision: 11208 $ 00012 * 00013 * This file is part of Gecode, the generic constraint 00014 * development environment: 00015 * http://www.gecode.org 00016 * 00017 * Permission is hereby granted, free of charge, to any person obtaining 00018 * a copy of this software and associated documentation files (the 00019 * "Software"), to deal in the Software without restriction, including 00020 * without limitation the rights to use, copy, modify, merge, publish, 00021 * distribute, sublicense, and/or sell copies of the Software, and to 00022 * permit persons to whom the Software is furnished to do so, subject to 00023 * the following conditions: 00024 * 00025 * The above copyright notice and this permission notice shall be 00026 * included in all copies or substantial portions of the Software. 00027 * 00028 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00029 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00030 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 00031 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 00032 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 00033 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 00034 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00035 * 00036 */ 00037 00038 #include <gecode/minimodel.hh> 00039 00040 namespace Gecode { 00041 00042 /* 00043 * Construction of linear relations 00044 * 00045 */ 00046 LinRel 00047 operator ==(int l, const IntVar& r) { 00048 return LinRel(l,IRT_EQ,r); 00049 } 00050 LinRel 00051 operator ==(int l, const BoolVar& r) { 00052 return LinRel(l,IRT_EQ,r); 00053 } 00054 LinRel 00055 operator ==(int l, const LinExpr& r) { 00056 return LinRel(l,IRT_EQ,r); 00057 } 00058 LinRel 00059 operator ==(const IntVar& l, int r) { 00060 return LinRel(l,IRT_EQ,r); 00061 } 00062 LinRel 00063 operator ==(const BoolVar& l, int r) { 00064 return LinRel(l,IRT_EQ,r); 00065 } 00066 LinRel 00067 operator ==(const LinExpr& l, int r) { 00068 return LinRel(l,IRT_EQ,r); 00069 } 00070 LinRel 00071 operator ==(const IntVar& l, const IntVar& r) { 00072 return LinRel(l,IRT_EQ,r); 00073 } 00074 LinRel 00075 operator ==(const IntVar& l, const BoolVar& r) { 00076 return LinRel(l,IRT_EQ,r); 00077 } 00078 LinRel 00079 operator ==(const BoolVar& l, const IntVar& r) { 00080 return LinRel(l,IRT_EQ,r); 00081 } 00082 LinRel 00083 operator ==(const BoolVar& l, const BoolVar& r) { 00084 return LinRel(l,IRT_EQ,r); 00085 } 00086 LinRel 00087 operator ==(const IntVar& l, const LinExpr& r) { 00088 return LinRel(l,IRT_EQ,r); 00089 } 00090 LinRel 00091 operator ==(const BoolVar& l, const LinExpr& r) { 00092 return LinRel(l,IRT_EQ,r); 00093 } 00094 LinRel 00095 operator ==(const LinExpr& l, const IntVar& r) { 00096 return LinRel(l,IRT_EQ,r); 00097 } 00098 LinRel 00099 operator ==(const LinExpr& l, const BoolVar& r) { 00100 return LinRel(l,IRT_EQ,r); 00101 } 00102 LinRel 00103 operator ==(const LinExpr& l, const LinExpr& r) { 00104 return LinRel(l,IRT_EQ,r); 00105 } 00106 00107 LinRel 00108 operator !=(int l, const IntVar& r) { 00109 return LinRel(l,IRT_NQ,r); 00110 } 00111 LinRel 00112 operator !=(int l, const BoolVar& r) { 00113 return LinRel(l,IRT_NQ,r); 00114 } 00115 LinRel 00116 operator !=(int l, const LinExpr& r) { 00117 return LinRel(l,IRT_NQ,r); 00118 } 00119 LinRel 00120 operator !=(const IntVar& l, int r) { 00121 return LinRel(l,IRT_NQ,r); 00122 } 00123 LinRel 00124 operator !=(const BoolVar& l, int r) { 00125 return LinRel(l,IRT_NQ,r); 00126 } 00127 LinRel 00128 operator !=(const LinExpr& l, int r) { 00129 return LinRel(l,IRT_NQ,r); 00130 } 00131 LinRel 00132 operator !=(const IntVar& l, const IntVar& r) { 00133 return LinRel(l,IRT_NQ,r); 00134 } 00135 LinRel 00136 operator !=(const IntVar& l, const BoolVar& r) { 00137 return LinRel(l,IRT_NQ,r); 00138 } 00139 LinRel 00140 operator !=(const BoolVar& l, const IntVar& r) { 00141 return LinRel(l,IRT_NQ,r); 00142 } 00143 LinRel 00144 operator !=(const BoolVar& l, const BoolVar& r) { 00145 return LinRel(l,IRT_NQ,r); 00146 } 00147 LinRel 00148 operator !=(const IntVar& l, const LinExpr& r) { 00149 return LinRel(l,IRT_NQ,r); 00150 } 00151 LinRel 00152 operator !=(const BoolVar& l, const LinExpr& r) { 00153 return LinRel(l,IRT_NQ,r); 00154 } 00155 LinRel 00156 operator !=(const LinExpr& l, const IntVar& r) { 00157 return LinRel(l,IRT_NQ,r); 00158 } 00159 LinRel 00160 operator !=(const LinExpr& l, const BoolVar& r) { 00161 return LinRel(l,IRT_NQ,r); 00162 } 00163 LinRel 00164 operator !=(const LinExpr& l, const LinExpr& r) { 00165 return LinRel(l,IRT_NQ,r); 00166 } 00167 00168 LinRel 00169 operator <(int l, const IntVar& r) { 00170 return LinRel(l,IRT_LE,r); 00171 } 00172 LinRel 00173 operator <(int l, const BoolVar& r) { 00174 return LinRel(l,IRT_LE,r); 00175 } 00176 LinRel 00177 operator <(int l, const LinExpr& r) { 00178 return LinRel(l,IRT_LE,r); 00179 } 00180 LinRel 00181 operator <(const IntVar& l, int r) { 00182 return LinRel(l,IRT_LE,r); 00183 } 00184 LinRel 00185 operator <(const BoolVar& l, int r) { 00186 return LinRel(l,IRT_LE,r); 00187 } 00188 LinRel 00189 operator <(const LinExpr& l, int r) { 00190 return LinRel(l,IRT_LE,r); 00191 } 00192 LinRel 00193 operator <(const IntVar& l, const IntVar& r) { 00194 return LinRel(l,IRT_LE,r); 00195 } 00196 LinRel 00197 operator <(const IntVar& l, const BoolVar& r) { 00198 return LinRel(l,IRT_LE,r); 00199 } 00200 LinRel 00201 operator <(const BoolVar& l, const IntVar& r) { 00202 return LinRel(l,IRT_LE,r); 00203 } 00204 LinRel 00205 operator <(const BoolVar& l, const BoolVar& r) { 00206 return LinRel(l,IRT_LE,r); 00207 } 00208 LinRel 00209 operator <(const IntVar& l, const LinExpr& r) { 00210 return LinRel(l,IRT_LE,r); 00211 } 00212 LinRel 00213 operator <(const BoolVar& l, const LinExpr& r) { 00214 return LinRel(l,IRT_LE,r); 00215 } 00216 LinRel 00217 operator <(const LinExpr& l, const IntVar& r) { 00218 return LinRel(l,IRT_LE,r); 00219 } 00220 LinRel 00221 operator <(const LinExpr& l, const BoolVar& r) { 00222 return LinRel(l,IRT_LE,r); 00223 } 00224 LinRel 00225 operator <(const LinExpr& l, const LinExpr& r) { 00226 return LinRel(l,IRT_LE,r); 00227 } 00228 00229 LinRel 00230 operator <=(int l, const IntVar& r) { 00231 return LinRel(l,IRT_LQ,r); 00232 } 00233 LinRel 00234 operator <=(int l, const BoolVar& r) { 00235 return LinRel(l,IRT_LQ,r); 00236 } 00237 LinRel 00238 operator <=(int l, const LinExpr& r) { 00239 return LinRel(l,IRT_LQ,r); 00240 } 00241 LinRel 00242 operator <=(const IntVar& l, int r) { 00243 return LinRel(l,IRT_LQ,r); 00244 } 00245 LinRel 00246 operator <=(const BoolVar& l, int r) { 00247 return LinRel(l,IRT_LQ,r); 00248 } 00249 LinRel 00250 operator <=(const LinExpr& l, int r) { 00251 return LinRel(l,IRT_LQ,r); 00252 } 00253 LinRel 00254 operator <=(const IntVar& l, const IntVar& r) { 00255 return LinRel(l,IRT_LQ,r); 00256 } 00257 LinRel 00258 operator <=(const IntVar& l, const BoolVar& r) { 00259 return LinRel(l,IRT_LQ,r); 00260 } 00261 LinRel 00262 operator <=(const BoolVar& l, const IntVar& r) { 00263 return LinRel(l,IRT_LQ,r); 00264 } 00265 LinRel 00266 operator <=(const BoolVar& l, const BoolVar& r) { 00267 return LinRel(l,IRT_LQ,r); 00268 } 00269 LinRel 00270 operator <=(const IntVar& l, const LinExpr& r) { 00271 return LinRel(l,IRT_LQ,r); 00272 } 00273 LinRel 00274 operator <=(const BoolVar& l, const LinExpr& r) { 00275 return LinRel(l,IRT_LQ,r); 00276 } 00277 LinRel 00278 operator <=(const LinExpr& l, const IntVar& r) { 00279 return LinRel(l,IRT_LQ,r); 00280 } 00281 LinRel 00282 operator <=(const LinExpr& l, const BoolVar& r) { 00283 return LinRel(l,IRT_LQ,r); 00284 } 00285 LinRel 00286 operator <=(const LinExpr& l, const LinExpr& r) { 00287 return LinRel(l,IRT_LQ,r); 00288 } 00289 00290 LinRel 00291 operator >(int l, const IntVar& r) { 00292 return LinRel(l,IRT_GR,r); 00293 } 00294 LinRel 00295 operator >(int l, const BoolVar& r) { 00296 return LinRel(l,IRT_GR,r); 00297 } 00298 LinRel 00299 operator >(int l, const LinExpr& r) { 00300 return LinRel(l,IRT_GR,r); 00301 } 00302 LinRel 00303 operator >(const IntVar& l, int r) { 00304 return LinRel(l,IRT_GR,r); 00305 } 00306 LinRel 00307 operator >(const BoolVar& l, int r) { 00308 return LinRel(l,IRT_GR,r); 00309 } 00310 LinRel 00311 operator >(const LinExpr& l, int r) { 00312 return LinRel(l,IRT_GR,r); 00313 } 00314 LinRel 00315 operator >(const IntVar& l, const IntVar& r) { 00316 return LinRel(l,IRT_GR,r); 00317 } 00318 LinRel 00319 operator >(const IntVar& l, const BoolVar& r) { 00320 return LinRel(l,IRT_GR,r); 00321 } 00322 LinRel 00323 operator >(const BoolVar& l, const IntVar& r) { 00324 return LinRel(l,IRT_GR,r); 00325 } 00326 LinRel 00327 operator >(const BoolVar& l, const BoolVar& r) { 00328 return LinRel(l,IRT_GR,r); 00329 } 00330 LinRel 00331 operator >(const IntVar& l, const LinExpr& r) { 00332 return LinRel(l,IRT_GR,r); 00333 } 00334 LinRel 00335 operator >(const BoolVar& l, const LinExpr& r) { 00336 return LinRel(l,IRT_GR,r); 00337 } 00338 LinRel 00339 operator >(const LinExpr& l, const IntVar& r) { 00340 return LinRel(l,IRT_GR,r); 00341 } 00342 LinRel 00343 operator >(const LinExpr& l, const BoolVar& r) { 00344 return LinRel(l,IRT_GR,r); 00345 } 00346 LinRel 00347 operator >(const LinExpr& l, const LinExpr& r) { 00348 return LinRel(l,IRT_GR,r); 00349 } 00350 00351 LinRel 00352 operator >=(int l, const IntVar& r) { 00353 return LinRel(l,IRT_GQ,r); 00354 } 00355 LinRel 00356 operator >=(int l, const BoolVar& r) { 00357 return LinRel(l,IRT_GQ,r); 00358 } 00359 LinRel 00360 operator >=(int l, const LinExpr& r) { 00361 return LinRel(l,IRT_GQ,r); 00362 } 00363 LinRel 00364 operator >=(const IntVar& l, int r) { 00365 return LinRel(l,IRT_GQ,r); 00366 } 00367 LinRel 00368 operator >=(const BoolVar& l, int r) { 00369 return LinRel(l,IRT_GQ,r); 00370 } 00371 LinRel 00372 operator >=(const LinExpr& l, int r) { 00373 return LinRel(l,IRT_GQ,r); 00374 } 00375 LinRel 00376 operator >=(const IntVar& l, const IntVar& r) { 00377 return LinRel(l,IRT_GQ,r); 00378 } 00379 LinRel 00380 operator >=(const IntVar& l, const BoolVar& r) { 00381 return LinRel(l,IRT_GQ,r); 00382 } 00383 LinRel 00384 operator >=(const BoolVar& l, const IntVar& r) { 00385 return LinRel(l,IRT_GQ,r); 00386 } 00387 LinRel 00388 operator >=(const BoolVar& l, const BoolVar& r) { 00389 return LinRel(l,IRT_GQ,r); 00390 } 00391 LinRel 00392 operator >=(const IntVar& l, const LinExpr& r) { 00393 return LinRel(l,IRT_GQ,r); 00394 } 00395 LinRel 00396 operator >=(const BoolVar& l, const LinExpr& r) { 00397 return LinRel(l,IRT_GQ,r); 00398 } 00399 LinRel 00400 operator >=(const LinExpr& l, const IntVar& r) { 00401 return LinRel(l,IRT_GQ,r); 00402 } 00403 LinRel 00404 operator >=(const LinExpr& l, const BoolVar& r) { 00405 return LinRel(l,IRT_GQ,r); 00406 } 00407 LinRel 00408 operator >=(const LinExpr& l, const LinExpr& r) { 00409 return LinRel(l,IRT_GQ,r); 00410 } 00411 00412 } 00413 00414 // STATISTICS: minimodel-any