Generated on Wed Nov 1 15:04:33 2006 for Gecode by doxygen 1.4.5

dom.hh

Go to the documentation of this file.
00001 /*
00002  *  Main authors:
00003  *     Christian Schulte <schulte@gecode.org>
00004  *     Guido Tack <tack@gecode.org>
00005  *
00006  *  Copyright:
00007  *     Christian Schulte, 2004
00008  *     Guido Tack, 2004
00009  *
00010  *  Last modified:
00011  *     $Date: 2006-08-04 16:03:26 +0200 (Fri, 04 Aug 2006) $ by $Author: schulte $
00012  *     $Revision: 3512 $
00013  *
00014  *  This file is part of Gecode, the generic constraint
00015  *  development environment:
00016  *     http://www.gecode.org
00017  *
00018  *  See the file "LICENSE" for information on usage and
00019  *  redistribution of this file, and for a
00020  *     DISCLAIMER OF ALL WARRANTIES.
00021  *
00022  */
00023 
00024 #ifndef __GECODE_INT_DOM_HH__
00025 #define __GECODE_INT_DOM_HH__
00026 
00027 #include "gecode/int.hh"
00028 #include "gecode/int/rel.hh"
00029 #include "gecode/iter.hh"
00030 
00036 namespace Gecode { namespace Int { namespace Dom {
00037 
00044   template <class View>
00045   class ReRange : public ReUnaryPropagator<View,PC_INT_BND,BoolView> {
00046   protected:
00047     using ReUnaryPropagator<View,PC_INT_BND,BoolView>::x0;
00048     using ReUnaryPropagator<View,PC_INT_BND,BoolView>::b;
00050     int min;
00052     int max;
00054     ReRange(Space* home, bool share, ReRange& p);
00056     ReRange(Space* home, View x, int min, int max, BoolView b);
00057   public:
00059     virtual Actor* copy(Space* home, bool share);
00061     virtual ExecStatus propagate(Space* home);
00063     static ExecStatus post(Space* home, View x, int min, int max, BoolView b);
00064   };
00065 
00072   template <class View>
00073   class ReIntSet : public ReUnaryPropagator<View,PC_INT_DOM,BoolView> {
00074   protected:
00075     using ReUnaryPropagator<View,PC_INT_DOM,BoolView>::x0;
00076     using ReUnaryPropagator<View,PC_INT_DOM,BoolView>::b;
00077 
00079     IntSet is;
00081     ReIntSet(Space* home, bool share, ReIntSet& p);
00083     ReIntSet(Space* home, View x, const IntSet& s, BoolView b);
00084   public:
00086     virtual Actor* copy(Space* home, bool share);
00088     virtual ExecStatus propagate(Space* home);
00090     static ExecStatus post(Space* home, View x, const IntSet& s, BoolView b);
00091   };
00092 
00093 }}}
00094 
00095 #include "gecode/int/dom/range.icc"
00096 #include "gecode/int/dom/spec.icc"
00097 
00098 #endif
00099 
00100 // STATISTICS: int-prop
00101