Go to the documentation of this file.
54 template<
class View, PropCond pc>
83 template<
class View, PropCond pc>
112 template<
class View, PropCond pc>
141 template<
class View, PropCond pc>
171 template<
class View, PropCond pc>
203 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
251 View0
x0, View1
x1, View2
x2);
271 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
301 template<
class View, PropCond pc>
305 x0.subscribe(home,*
this,pc);
308 template<
class View, PropCond pc>
313 x0.update(home,
p.x0);
316 template<
class View, PropCond pc>
324 template<
class View, PropCond pc>
330 template<
class View, PropCond pc>
334 x0.reschedule(home,*
this,pc);
337 template<
class View, PropCond pc>
341 x0.cancel(home,*
this,pc);
343 return sizeof(*this);
352 template<
class View, PropCond pc>
356 x0.subscribe(home,*
this,pc);
357 x1.subscribe(home,*
this,pc);
361 template<
class View, PropCond pc>
366 x0.update(home,
p.x0);
367 x1.update(home,
p.x1);
370 template<
class View, PropCond pc>
379 template<
class View, PropCond pc>
385 template<
class View, PropCond pc>
389 x0.reschedule(home,*
this,pc);
390 x1.reschedule(home,*
this,pc);
394 template<
class View, PropCond pc>
398 x0.cancel(home,*
this,pc);
399 x1.cancel(home,*
this,pc);
402 return sizeof(*this);
410 template<
class View, PropCond pc>
412 (
Home home, View y0, View y1, View y2)
415 x0.subscribe(home,*
this,pc);
416 x1.subscribe(home,*
this,pc);
417 x2.subscribe(home,*
this,pc);
421 template<
class View, PropCond pc>
426 x0.update(home,
p.x0);
427 x1.update(home,
p.x1);
428 x2.update(home,
p.x2);
431 template<
class View, PropCond pc>
441 template<
class View, PropCond pc>
447 template<
class View, PropCond pc>
451 x0.reschedule(home,*
this,pc);
452 x1.reschedule(home,*
this,pc);
453 x2.reschedule(home,*
this,pc);
457 template<
class View, PropCond pc>
461 x0.cancel(home,*
this,pc);
462 x1.cancel(home,*
this,pc);
463 x2.cancel(home,*
this,pc);
466 return sizeof(*this);
474 template<
class View, PropCond pc>
479 x.subscribe(home,*
this,pc);
482 template<
class View, PropCond pc>
490 template<
class View, PropCond pc>
498 template<
class View, PropCond pc>
504 template<
class View, PropCond pc>
508 x.reschedule(home,*
this,pc);
511 template<
class View, PropCond pc>
515 x.cancel(home,*
this,pc);
517 return sizeof(*this);
525 template<
class View, PropCond pc>
530 x.subscribe(home,*
this,pc);
531 y.subscribe(home,*
this,pc);
535 template<
class View, PropCond pc>
544 template<
class View, PropCond pc>
553 template<
class View, PropCond pc>
559 template<
class View, PropCond pc>
563 x.reschedule(home,*
this,pc);
564 y.reschedule(home,*
this,pc);
568 template<
class View, PropCond pc>
572 x.cancel(home,*
this,pc);
573 y.cancel(home,*
this,pc);
576 return sizeof(*this);
584 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
586 (
Home home, View0 y0, View1 y1)
589 x0.subscribe(home,*
this,pc0);
591 x1.subscribe(home,*
this,pc1);
594 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
599 x0.update(home,
p.x0);
600 x1.update(home,
p.x1);
603 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
612 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
619 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
623 x0.reschedule(home,*
this,pc0);
625 x1.reschedule(home,*
this,pc1);
628 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
632 x0.cancel(home,*
this,pc0);
634 x1.cancel(home,*
this,pc1);
636 return sizeof(*this);
650 x0.subscribe(home,*
this,pc0);
652 x1.subscribe(home,*
this,pc1);
654 x2.subscribe(home,*
this,pc2);
665 x0.update(home,
p.x0);
666 x1.update(home,
p.x1);
667 x2.update(home,
p.x2);
694 x0.reschedule(home,*
this,pc0);
696 x1.reschedule(home,*
this,pc1);
698 x2.reschedule(home,*
this,pc2);
706 x0.cancel(home,*
this,pc0);
708 x1.cancel(home,*
this,pc1);
710 x2.cancel(home,*
this,pc2);
712 return sizeof(*this);
720 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
727 y.subscribe(home,*
this,pc1);
730 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
739 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
748 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
755 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
759 x.reschedule(home,*
this,pc0);
761 y.reschedule(home,*
this,pc1);
764 template<
class View0, PropCond pc0,
class View1, PropCond pc1>
768 x.cancel(home,*
this,pc0);
770 y.cancel(home,*
this,pc1);
772 return sizeof(*this);
virtual void reschedule(Space &home)
Schedule function.
Post propagator for SetVar x
NaryOnePropagator(Space &home, Propagator &p, ViewArray< View > &x, View y)
Constructor for rewriting p during cloning.
Post propagator for SetVar SetOpType SetVar y
NaryPropagator(Space &home, NaryPropagator &p)
Constructor for cloning p.
virtual void reschedule(Space &home)
Schedule function.
MixBinaryPropagator(Space &home, Propagator &p, View0 x0, View1 x1)
Constructor for rewriting p during cloning.
View1 x1
View of type View1.
MixTernaryPropagator(Space &home, Propagator &p, View0 x0, View1 x1, View2 x2)
Constructor for rewriting p during cloning.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to variable.
MixBinaryPropagator(Home home, View0 x0, View1 x1)
Constructor for creation.
static PropCost binary(PropCost::Mod m)
Two variables for modifier pcm.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as PC_UNARY_LO)
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low linear)
ViewArray< View0 > x
Array of views.
View0 x0
View of type View0.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low ternary)
MixNaryOnePropagator(Space &home, MixNaryOnePropagator &p)
Constructor for cloning p.
TernaryPropagator(Home home, View x0, View x1, View x2)
Constructor for creation.
View0 x0
View of type View0.
TernaryPropagator(Space &home, Propagator &p, View x0, View x1, View x2)
Constructor for rewriting p during cloning.
virtual void reschedule(Space &home)
Schedule function.
static PropCost linear(PropCost::Mod m, unsigned int n)
Linear complexity for modifier pcm and size measure n.
BinaryPropagator(Space &home, Propagator &p, View x0, View x1)
Constructor for rewriting p during cloning.
ViewArray< View > x
Array of views.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Mixed (n+1)-ary propagator.
MixNaryOnePropagator(Space &home, Propagator &p, ViewArray< View0 > &x, View1 y)
Constructor for rewriting p during cloning.
ViewArray< View > x
Array of views.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
BinaryPropagator(Home home, View x0, View x1)
Constructor for creation.
Mixed ternary propagator.
UnaryPropagator(Home home, View x0)
Constructor for creation.
View1 x1
View of type View1.
NaryPropagator(Home home, ViewArray< View > &x)
Constructor for creation.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low linear)
NaryPropagator(Space &home, Propagator &p, ViewArray< View > &x)
Constructor for rewriting p during cloning.
Gecode toplevel namespace
Base-class for propagators.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
void update(Space &home, ViewArray< View > &a)
Update array to be a clone of array a.
Home class for posting propagators
TernaryPropagator(Space &home, TernaryPropagator &p)
Constructor for cloning p.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low ternary)
static PropCost unary(PropCost::Mod m)
Single variable for modifier pcm.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
ModEventDelta med
A set of modification events (used during propagation)
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
View2 x2
View of type View2.
int PropCond
Type for propagation conditions.
virtual void reschedule(Space &home)
Schedule function.
static PropCost ternary(PropCost::Mod m)
Three variables for modifier pcm.
MixTernaryPropagator(Home home, View0 x0, View1 x1, View2 x2)
Constructor for creation.
UnaryPropagator(Space &home, Propagator &p, View x0)
Constructor for rewriting p during cloning.
BinaryPropagator(Space &home, BinaryPropagator &p)
Constructor for cloning p.
virtual void reschedule(Space &home)
Schedule function.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low binary)
MixNaryOnePropagator(Home home, ViewArray< View0 > &x, View1 y)
Constructor for creation.
virtual void reschedule(Space &home)
Schedule function.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual void reschedule(Space &home)
Schedule function.
UnaryPropagator(Space &home, UnaryPropagator &p)
Constructor for cloning p.
MixTernaryPropagator(Space &home, MixTernaryPropagator &p)
Constructor for cloning.
MixBinaryPropagator(Space &home, MixBinaryPropagator &p)
Constructor for cloning.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low linear)
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low binary)
NaryOnePropagator(Space &home, NaryOnePropagator &p)
Constructor for cloning p.
virtual size_t dispose(Space &home)
Delete actor and return its size.
const PropCond PC_GEN_NONE
Propagation condition to be ignored (convenience)
NaryOnePropagator(Home home, ViewArray< View > &x, View y)
Constructor for creation.
int ModEventDelta
Modification event deltas.
int p
Number of positive literals for node type.
virtual void reschedule(Space &home)
Schedule function.
virtual size_t dispose(Space &home)
Delete propagator and return its size.