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