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