38 #ifndef __GECODE_INT_CHANNEL_HH__
39 #define __GECODE_INT_CHANNEL_HH__
49 namespace Gecode {
namespace Int {
namespace Channel {
58 template<
class Info,
class Offset, PropCond pc>
87 template<
class View>
class ValInfo;
98 template<
class View,
class Offset,
bool shared>
99 class Val :
public Base<ValInfo<View>,Offset,PC_INT_VAL> {
117 Offset& ox, Offset& oy);
124 template<
class View,
class Offset>
class DomInfo;
135 template<
class View,
class Offset,
bool shared>
136 class Dom :
public Base<DomInfo<View,Offset>,Offset,PC_INT_DOM> {
163 Offset&
ox, Offset&
oy);
207 static const int S_NONE = 0;
209 static const int S_ONE = 1;
211 static const int S_RUN = 2;
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Distinct::DomCtrl< View > dc
Propagation controller for propagating distinct.
static ExecStatus post(Home home, BoolView x0, IntView x1)
Post propagator for .
BoolView x0
View of type View0.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Offset ox
Offset transformation for x variables.
Mixed (n+1)-ary propagator.
Base-class for propagators.
Info * xy
View and information for both x and y.
static ExecStatus post(Home home, int n, ValInfo< View > *xy, Offset &ox, Offset &oy)
Post propagator for channeling.
Offset oy
Offset transformation for y variables.
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Propagation cost (defined as low quadratic)
ViewArray< BoolView > x
Array of views.
IntView x1
View of type View1.
Combine view with information for value propagation.
Naive channel propagator.
Base-class for both propagators and branchers.
int p
Number of positive literals for node type.
Dom(Space &home, bool share, Dom &p)
Constructor for cloning p.
int n
Number of views (actually twice as many for both x and y)
ModEventDelta med
A set of modification events (used during propagation)
static ExecStatus post(Home home, int n, DomInfo< View, Offset > *xy, Offset &ox, Offset &oy)
Post propagator for channeling on xy.
Domain consistent channel propagator.
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, ViewArray< BoolView > &x, IntView y, int o)
Post propagator for .
Converter with fixed offset.
Combine view with information for domain propagation.
Integer view for integer variables.
Val(Space &home, bool share, Val &p)
Constructor for cloning p.
Generic domain change information to be supplied to advisors.
Base-class for channel propagators.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Link propagator for a single Boolean view.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
Stack with fixed number of elements.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Base(Space &home, bool share, Base< Info, Offset, pc > &p)
Constructor for cloning p.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (low unary if y is assigned, low linear otherwise)
Gecode toplevel namespace
Link propagator for multiple Boolean views.
#define GECODE_INT_EXPORT
int ModEventDelta
Modification event deltas.
Home class for posting propagators
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.
Support::StaticStack< int, Region > ProcessStack
Processing stack.
int n_na
Total number of not assigned views (not known to be assigned)
Propagation controller for domain consistent distinct.
const Gecode::PropCond PC_INT_VAL
Propagate when a view becomes assigned (single value)
Boolean view for Boolean variables.