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

float-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  *     Vincent Barichard <Vincent.Barichard@univ-angers.fr>
00005  *
00006  *  Copyright:
00007  *     Vincent Barichard, 2012
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 #ifdef GECODE_HAS_FLOAT_VARS
00037 
00038 namespace Gecode {
00039 
00040   /*
00041    * Construction of linear float relations
00042    *
00043    */
00044   LinFloatRel
00045   operator ==(const FloatVal& l, const FloatVar& r) {
00046     return LinFloatRel(l,FRT_EQ,(const LinFloatExpr&)r);
00047   }
00048   LinFloatRel
00049   operator ==(const FloatVal& l, const LinFloatExpr& r) {
00050     return LinFloatRel(l,FRT_EQ,r);
00051   }
00052   LinFloatRel
00053   operator ==(const FloatVar& l, const FloatVal& r) {
00054     return LinFloatRel((const LinFloatExpr&)l,FRT_EQ,r);
00055   }
00056   LinFloatRel
00057   operator ==(const LinFloatExpr& l, const FloatVal& r) {
00058     return LinFloatRel(l,FRT_EQ,r);
00059   }
00060   LinFloatRel
00061   operator ==(const FloatVar& l, const FloatVar& r) {
00062     return LinFloatRel((const LinFloatExpr&)l,FRT_EQ,(const LinFloatExpr&)r);
00063   }
00064   LinFloatRel
00065   operator ==(const FloatVar& l, const LinFloatExpr& r) {
00066     return LinFloatRel((const LinFloatExpr&)l,FRT_EQ,r);
00067   }
00068   LinFloatRel
00069   operator ==(const LinFloatExpr& l, const FloatVar& r) {
00070     return LinFloatRel(l,FRT_EQ,(const LinFloatExpr&)r);
00071   }
00072   LinFloatRel
00073   operator ==(const LinFloatExpr& l, const LinFloatExpr& r) {
00074     return LinFloatRel(l,FRT_EQ,r);
00075   }
00076 
00077   LinFloatRel
00078   operator !=(const FloatVal& l, const FloatVar& r) {
00079     return LinFloatRel(l,FRT_NQ,(const LinFloatExpr&)r);
00080   }
00081   LinFloatRel
00082   operator !=(const FloatVal& l, const LinFloatExpr& r) {
00083     return LinFloatRel(l,FRT_NQ,r);
00084   }
00085   LinFloatRel
00086   operator !=(const FloatVar& l, const FloatVal& r) {
00087     return LinFloatRel((const LinFloatExpr&)l,FRT_NQ,r);
00088   }
00089   LinFloatRel
00090   operator !=(const LinFloatExpr& l, const FloatVal& r) {
00091     return LinFloatRel(l,FRT_NQ,r);
00092   }
00093   LinFloatRel
00094   operator !=(const FloatVar& l, const FloatVar& r) {
00095     return LinFloatRel((const LinFloatExpr&)l,FRT_NQ,(const LinFloatExpr&)r);
00096   }
00097   LinFloatRel
00098   operator !=(const FloatVar& l, const LinFloatExpr& r) {
00099     return LinFloatRel((const LinFloatExpr&)l,FRT_NQ,r);
00100   }
00101   LinFloatRel
00102   operator !=(const LinFloatExpr& l, const FloatVar& r) {
00103     return LinFloatRel(l,FRT_NQ,(const LinFloatExpr&)r);
00104   }
00105   LinFloatRel
00106   operator !=(const LinFloatExpr& l, const LinFloatExpr& r) {
00107     return LinFloatRel(l,FRT_NQ,r);
00108   }
00109 
00110   LinFloatRel
00111   operator <=(const FloatVal& l, const FloatVar& r) {
00112     return LinFloatRel(l,FRT_LQ,(const LinFloatExpr&)r);
00113   }
00114   LinFloatRel
00115   operator <=(const FloatVal& l, const LinFloatExpr& r) {
00116     return LinFloatRel(l,FRT_LQ,r);
00117   }
00118   LinFloatRel
00119   operator <=(const FloatVar& l, const FloatVal& r) {
00120     return LinFloatRel(l,FRT_LQ,r);
00121   }
00122   LinFloatRel
00123   operator <=(const LinFloatExpr& l, const FloatVal& r) {
00124     return LinFloatRel(l,FRT_LQ,r);
00125   }
00126   LinFloatRel
00127   operator <=(const FloatVar& l, const FloatVar& r) {
00128     return LinFloatRel((const LinFloatExpr&)l,FRT_LQ,(const LinFloatExpr&)r);
00129   }
00130   LinFloatRel
00131   operator <=(const FloatVar& l, const LinFloatExpr& r) {
00132     return LinFloatRel((const LinFloatExpr&)l,FRT_LQ,r);
00133   }
00134   LinFloatRel
00135   operator <=(const LinFloatExpr& l, const FloatVar& r) {
00136     return LinFloatRel(l,FRT_LQ,(const LinFloatExpr&)r);
00137   }
00138   LinFloatRel
00139   operator <=(const LinFloatExpr& l, const LinFloatExpr& r) {
00140     return LinFloatRel(l,FRT_LQ,r);
00141   }
00142 
00143   LinFloatRel
00144   operator <(const FloatVal& l, const FloatVar& r) {
00145     return LinFloatRel(l,FRT_LE,(const LinFloatExpr&)r);
00146   }
00147   LinFloatRel
00148   operator <(const FloatVal& l, const LinFloatExpr& r) {
00149     return LinFloatRel(l,FRT_LE,r);
00150   }
00151   LinFloatRel
00152   operator <(const FloatVar& l, const FloatVal& r) {
00153     return LinFloatRel(l,FRT_LE,r);
00154   }
00155   LinFloatRel
00156   operator <(const LinFloatExpr& l, const FloatVal& r) {
00157     return LinFloatRel(l,FRT_LE,r);
00158   }
00159   LinFloatRel
00160   operator <(const FloatVar& l, const FloatVar& r) {
00161     return LinFloatRel((const LinFloatExpr&)l,FRT_LE,(const LinFloatExpr&)r);
00162   }
00163   LinFloatRel
00164   operator <(const FloatVar& l, const LinFloatExpr& r) {
00165     return LinFloatRel((const LinFloatExpr&)l,FRT_LE,r);
00166   }
00167   LinFloatRel
00168   operator <(const LinFloatExpr& l, const FloatVar& r) {
00169     return LinFloatRel(l,FRT_LE,(const LinFloatExpr&)r);
00170   }
00171   LinFloatRel
00172   operator <(const LinFloatExpr& l, const LinFloatExpr& r) {
00173     return LinFloatRel(l,FRT_LE,r);
00174   }
00175 
00176   LinFloatRel
00177   operator >=(const FloatVal& l, const FloatVar& r) {
00178     return LinFloatRel(l,FRT_GQ,(const LinFloatExpr&)r);
00179   }
00180   LinFloatRel
00181   operator >=(const FloatVal& l, const LinFloatExpr& r) {
00182     return LinFloatRel(l,FRT_GQ,r);
00183   }
00184   LinFloatRel
00185   operator >=(const FloatVar& l, const FloatVal& r) {
00186     return LinFloatRel((const LinFloatExpr&)l,FRT_GQ,r);
00187   }
00188   LinFloatRel
00189   operator >=(const LinFloatExpr& l, const FloatVal& r) {
00190     return LinFloatRel(l,FRT_GQ,r);
00191   }
00192   LinFloatRel
00193   operator >=(const FloatVar& l, const FloatVar& r) {
00194     return LinFloatRel((const LinFloatExpr&)l,FRT_GQ,(const LinFloatExpr&)r);
00195   }
00196   LinFloatRel
00197   operator >=(const FloatVar& l, const LinFloatExpr& r) {
00198     return LinFloatRel((const LinFloatExpr&)l,FRT_GQ,r);
00199   }
00200   LinFloatRel
00201   operator >=(const LinFloatExpr& l, const FloatVar& r) {
00202     return LinFloatRel(l,FRT_GQ,(const LinFloatExpr&)r);
00203   }
00204   LinFloatRel
00205   operator >=(const LinFloatExpr& l, const LinFloatExpr& r) {
00206     return LinFloatRel(l,FRT_GQ,r);
00207   }
00208 
00209   LinFloatRel
00210   operator >(const FloatVal& l, const FloatVar& r) {
00211     return LinFloatRel(l,FRT_GR,(const LinFloatExpr&)r);
00212   }
00213   LinFloatRel
00214   operator >(const FloatVal& l, const LinFloatExpr& r) {
00215     return LinFloatRel(l,FRT_GR,r);
00216   }
00217   LinFloatRel
00218   operator >(const FloatVar& l, const FloatVal& r) {
00219     return LinFloatRel((const LinFloatExpr&)l,FRT_GR,r);
00220   }
00221   LinFloatRel
00222   operator >(const LinFloatExpr& l, const FloatVal& r) {
00223     return LinFloatRel(l,FRT_GR,r);
00224   }
00225   LinFloatRel
00226   operator >(const FloatVar& l, const FloatVar& r) {
00227     return LinFloatRel((const LinFloatExpr&)l,FRT_GR,(const LinFloatExpr&)r);
00228   }
00229   LinFloatRel
00230   operator >(const FloatVar& l, const LinFloatExpr& r) {
00231     return LinFloatRel((const LinFloatExpr&)l,FRT_GR,r);
00232   }
00233   LinFloatRel
00234   operator >(const LinFloatExpr& l, const FloatVar& r) {
00235     return LinFloatRel(l,FRT_GR,(const LinFloatExpr&)r);
00236   }
00237   LinFloatRel
00238   operator >(const LinFloatExpr& l, const LinFloatExpr& r) {
00239     return LinFloatRel(l,FRT_GR,r);
00240   }
00241 
00242 }
00243 
00244 #endif
00245 
00246 // STATISTICS: minimodel-any