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