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>
78 template<
class BVA,
class BVB,
class BVC>
91 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>
423 template<
class BVA,
class BVB,
class BVC>
489 template<
class VX,
class VY>
541 template<
class VX,
class VY>
575 template<
class View, PropCond pc>
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 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.
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.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Boolean clause propagator (disjunctive, true)
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as high ternary)
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 PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low binary)
virtual size_t dispose(Space &home)
Delete propagator and return its size.
IteDom(Space &home, bool share, IteDom &p)
Constructor for cloning p.
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, bool share)
Copy propagator during cloning.
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.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low binary)
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.
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.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
Base-class for propagators.
Eqv(Space &home, bool share, Eqv &p)
Constructor for cloning p.
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.
IteBase(Space &home, bool share, IteBase &p)
Constructor for cloning p.
static ExecStatus post(Home home, BV b0, BV b1, BV b2, BV b3)
Post propagator .
BoolBinary(Home home, BVA b0, BVB b1)
Quarternary Boolean disjunction propagator (true)
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 ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
NaryOrTrue(Home home, ViewArray< BV > &x)
Constructor for posting.
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 .
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low binary)
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.
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.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform 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.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
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 Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Boolean n-ary equivalence propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
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)
bool run
Whether the propagator is currently running.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
BV x2
Boolean view without subscription.
Boolean less or equal propagator.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
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)
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low ternary)
IteBnd(Space &home, bool share, IteBnd &p)
Constructor for cloning p.
static ExecStatus post(Home home, BoolView b, View x0, View x1, View x2)
Post if-then-else propagator.
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.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
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.
static ExecStatus post(Home home, BoolView b, View x0, View x1, View x2)
Post if-then-else propagator.
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.
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.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
struct Gecode::@518::NNF::@57::@58 b
For binary nodes (and, or, eqv)
BoolView b
View for condition.
Gecode toplevel namespace
Base-class for ternary Boolean propagators.
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
int pm2
Parity information mod 2.
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.
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.
Boolean view for Boolean variables.