40 #ifndef __GECODE_INT_BOOL_HH__ 41 #define __GECODE_INT_BOOL_HH__ 50 namespace Gecode {
namespace Int {
namespace Bool {
58 template<
class BVA,
class BVB>
80 template<
class BVA,
class BVB,
class BVC>
93 BVA b0, BVB
b1, BVC
b2);
108 template<
class BVA,
class BVB>
240 template<
class BVA,
class BVB>
281 BV b0, BV
b1, BV
b2);
314 BV b0, BV
b1, BV
b2, BV b3);
331 template<
class BVA,
class BVB,
class BVC>
358 template<
class VX,
class VY>
429 template<
class BVA,
class BVB,
class BVC>
495 template<
class VX,
class VY>
549 template<
class VX,
class VY>
583 template<
class V0,
class V1,
class V2, PropCond pc>
609 template<
class V0,
class V1,
class V2>
635 template<
class V0,
class V1,
class V2>
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
int n_zero
The number of views assigned to zero in x.
Council< Advisor > c
The advisor council.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
If-then-else bounds-consistent propagator.
IteBnd(Space &home, bool share, IteBnd &p)
Constructor for cloning p.
static ExecStatus post(Home home, ViewArray< BV > &x)
Post propagator .
BVC x2
Boolean view Constructor for posting.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
IteDom(Space &home, bool share, IteDom &p)
Constructor for cloning p.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low binary)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Boolean clause propagator (disjunctive, true)
ViewArray< VY > y
Positive views (origin from negative variables)
static ExecStatus post(Home home, ViewArray< VX > &x)
Post propagator .
TerOrTrue(Home home, BV b0, BV b1, BV b2)
Constructor for posting.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
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 PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
NaryEqv(Home home, ViewArray< BoolView > &x, int pm2)
Constructor for posting.
Clause(Home home, ViewArray< VX > &x, ViewArray< VY > &y, VX z)
Constructor for posting.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
BV x2
Boolean view without subscription.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Mixed (n+1)-ary propagator.
ViewArray< BV > x
Array of views.
static ExecStatus post(Home home, BV b0, BV b1)
Post propagator .
ExecStatus resubscribe(Space &home, BV &x0, BV x1)
Update subscription.
Base-class for propagators.
Eqv(Space &home, bool share, Eqv &p)
Constructor for cloning p.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
Boolean clause propagator (disjunctive)
static ExecStatus post(Home home, BVA b0, BVB b1, BVC b2)
Post propagator .
static ExecStatus post(Home home, ViewArray< BoolView > &x, int pm2)
Post propagator .
ViewArray< VX > x
Array of views.
ViewArray< VX > x
Positive views.
static ExecStatus post(Home home, BV b0, BV b1, BV b2, BV b3)
Post propagator .
BoolBinary(Home home, BVA b0, BVB b1)
virtual void reschedule(Space &home)
Schedule function.
Quarternary Boolean disjunction propagator (true)
static ExecStatus post(Home home, BoolView b, V0 x0, V1 x1, V2 x2)
Post if-then-else propagator.
Base-class for both propagators and branchers.
Or(Home home, BVA b0, BVB b1, BVC b2)
Constructor for posting.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual void reschedule(Space &home)
Schedule function.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
IteBase(Space &home, bool share, IteBase &p)
Constructor for cloning p.
NaryOrTrue(Home home, ViewArray< BV > &x)
Constructor for posting.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low binary)
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
Ternary Boolean disjunction propagator (true)
virtual size_t dispose(Space &home)
Delete propagator and return its size.
int p
Number of positive literals for node type.
If-then-else propagator base-class.
QuadOrTrue(Home home, BV b0, BV b1, BV b2, BV b3)
Constructor for posting.
BoolTernary(Home home, BVA b0, BVB b1, BVC b2)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
n-ary Boolean equality propagator
static ExecStatus post(Home home, BVA x0, BVB x1)
Post propagator .
Boolean equivalence propagator.
void resubscribe(Space &home, BoolView &x0)
Update subscription.
Council< Advisor > c
The advisor council.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
static ExecStatus post(Home home, ViewArray< VX > &x, ViewArray< VY > &y, VX z)
Post propagator .
int n_zero
The number of views assigned to zero in x.
virtual void reschedule(Space &home)
Schedule function.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low binary)
ViewArray< VX > x
Views not yet subscribed to.
ModEventDelta med
A set of modification events (used during propagation)
NaryOr(Home home, ViewArray< VX > &x, VY y)
Constructor for posting.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Boolean disjunction propagator.
void cancel(Space &home)
Cancel subscriptions.
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
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 high ternary)
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
static ExecStatus post(Home home, BoolView b, V0 x0, V1 x1, V2 x2)
Post if-then-else propagator.
ViewArray< VY > y
Views not yet subscribed to (origin from negative variables)
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Council< Tagged > c
The advisor council.
BinOrTrue(Home home, BVA b0, BVB b1)
Constructor for posting.
Boolean equality propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Boolean n-ary equivalence propagator.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
int n_zero
The number of views assigned to zero in x and y.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
int n_one
The number of views assigned to one in x.
static ExecStatus post(Home home, BVA b0, BVB b1, BVC b2)
Post propagator (equivalence)
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
bool run
Whether the propagator is currently running.
BV x2
Boolean view without subscription.
Boolean less or equal propagator.
BoolView b
View for condition.
static ExecStatus post(Home home, BV b0, BV b1, BV b2)
Post propagator .
If-then-else domain-consistent propagator.
Boolean n-ary disjunction propagator (true)
static ExecStatus post(Home home, BVA b0, BVB b1)
Post propagator .
virtual size_t dispose(Space &home)
Delete propagator and return its size.
NaryLq(Home home, ViewArray< VX > &x)
Constructor for posting.
static ExecStatus post(Home home, ViewArray< VX > &x, ViewArray< VY > &y)
Post propagator .
Nary Boolean less or equal propagator.
ViewArray< BV > x
Views not yet subscribed to.
BVB x1
Boolean view Constructor for posting.
Generic domain change information to be supplied to advisors.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
static ExecStatus post(Home home, BV b0, BV b1)
Post propagator .
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Boolean n-ary disjunction propagator.
Binary Boolean disjunction propagator (true)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Lq(Home home, BV b0, BV b1)
Constructor for posting.
Eq(Home home, BVA b0, BVB b1)
Constructor for posting.
virtual void reschedule(Space &home)
Schedule function.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ViewArray< BoolView > x
Views not yet subscribed to.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
static ExecStatus post(Home home, ViewArray< BV > &b)
Post propagator .
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
BV x3
Boolean view without subscription.
static ExecStatus post(Home home, ViewArray< VX > &x, VY y)
Post propagator .
Tagged(Space &home, Propagator &p, Council< Tagged > &c, bool x)
Create tagged advisor.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Gecode toplevel namespace
Base-class for ternary Boolean propagators.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low ternary)
Advisors for views (tagged whether for x or y)
#define GECODE_INT_EXPORT
Base-class for binary Boolean propagators.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
int ModEventDelta
Modification event deltas.
Home class for posting propagators
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual void reschedule(Space &home)
Schedule function.
int pm2
Parity information mod 2.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
const bool x
Whether advises a view for x or y.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
NaryEq(Home home, ViewArray< BV > &x)
Constructor for posting.
ClauseTrue(Home home, ViewArray< VX > &x, ViewArray< VY > &y)
Constructor for posting.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Boolean view for Boolean variables.