Generated on Wed Jan 4 17:49:11 2006 for Gecode by doxygen 1.4.6

sortedness.hh

Go to the documentation of this file.
00001 /*
00002  *  Main authors:
00003  *     Patrick Pekczynski <pekczynski@ps.uni-sb.de>
00004  *
00005  *  Copyright:
00006  *     Patrick Pekczynski, 2004
00007  *
00008  *  Last modified:
00009  *     $Date: 2005-12-02 18:22:34 +0100 (Fri, 02 Dec 2005) $ by $Author: pekczynski $
00010  *     $Revision: 2691 $
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 
00023 #ifndef __GECODE_INT_SORTEDNESS_HH__
00024 #define __GECODE_INT_SORTEDNESS_HH__
00025 
00026 
00027 #include "int.hh"
00028 #include "int/rel.hh"
00029 #include "int/distinct.hh"
00030 
00036 namespace Gecode { namespace Int { namespace Sortedness {
00037 
00053   template<class View, class Tuple, bool Perm, bool shared>
00054   class Sortedness : public Propagator {
00055   protected:
00056     
00069     ViewArray<Tuple> xz;
00070 
00072     ViewArray<View> y;
00074     ViewArray<View> w;
00076     int reachable;
00078     Sortedness(Space*, 
00079                ViewArray<Tuple>&, 
00080                ViewArray<View>&);
00081 
00083     Sortedness(Space* home, 
00084                bool share, 
00085                Sortedness<View, Tuple, Perm, shared>& p);
00086 
00087   public:
00089     virtual ~Sortedness(void);
00090     
00092     virtual Actor* copy(Space* home, bool share);
00093     
00097     virtual PropCost cost (void) const;
00098     
00100     virtual ExecStatus propagate(Space* home);
00101     
00103     static  ExecStatus post(Space*, 
00104                             ViewArray<Tuple>&, 
00105                             ViewArray<View>&);
00106 
00107   };
00108 
00109   
00110 }}}
00111 
00112 #include "int/sortedness/sortsup.icc"
00113 #include "int/sortedness/order.icc"
00114 #include "int/sortedness/matching.icc"
00115 #include "int/sortedness/narrowing.icc"
00116 #include "int/sortedness/sortedness.icc"
00117 
00118 #endif
00119 
00120 
00121 // STATISTICS: int-prop
00122