Generated on Thu Mar 22 10:39:43 2012 for Gecode by doxygen 1.6.3

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