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

regular.hh

Go to the documentation of this file.
00001 /*
00002  *  Main authors:
00003  *     Christian Schulte <schulte@gecode.org>
00004  *
00005  *  Copyright:
00006  *     Christian Schulte, 2004
00007  *
00008  *  Last modified:
00009  *     $Date: 2006-08-04 16:03:26 +0200 (Fri, 04 Aug 2006) $ by $Author: schulte $
00010  *     $Revision: 3512 $
00011  *
00012  *  This file is part of Gecode, the generic constraint
00013  *  development environment:
00014  *     http://www.gecode.org
00015  *
00016  *  See the file "LICENSE" for information on usage and
00017  *  redistribution of this file, and for a
00018  *     DISCLAIMER OF ALL WARRANTIES.
00019  *
00020  */
00021 
00022 #ifndef __GECODE_INT_REGULAR_HH__
00023 #define __GECODE_INT_REGULAR_HH__
00024 
00025 #include "gecode/int.hh"
00026 
00032 namespace Gecode { namespace Int { namespace Regular {
00033 
00045   template <class View>
00046   class Dom : public NaryPropagator<View,PC_INT_DOM> {
00047   protected:
00049     DFA dfa;
00051     class LayeredGraph;
00053     LayeredGraph* lg;
00054 
00056     Dom(Space* home, bool shared, Dom<View>& p);
00058     Dom(Space* home, ViewArray<View>& x, DFA& d);
00059   public:
00061     virtual Actor* copy(Space* home, bool share);
00063     virtual PropCost cost(void) const;
00065     virtual ExecStatus propagate(Space* home);
00067     virtual void flush(void);
00069     virtual size_t size(void) const;
00071     virtual size_t dispose(Space* home);
00073     static ExecStatus post(Space* home, ViewArray<View>& x, DFA& d);
00074   };
00075 
00076 }}}
00077 
00078 #include "gecode/int/regular/dom.icc"
00079 
00080 #endif
00081 
00082 // STATISTICS: int-prop
00083