Generated on Tue May 22 09:40:11 2018 for Gecode by doxygen 1.6.3

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