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.
Base(Space &home, Base< Info, Offset, pc > &p)
Constructor for cloning p.
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.
Mixed (n+1)-ary propagator.
Base-class for propagators.
ModEventDelta med
A set of modification events (used during propagation)
Stack with fixed number of elements.
#define GECODE_INT_EXPORT
Offset(int off)
Integer-precision integer scale view.
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