53 unsigned int degree(
void)
const;
138 unsigned int degree(
void)
const;
140 double afc(
const Space& home)
const;
194 template<
class VarA,
class VarB>
198 template<
class ViewA,
class ViewB>
199 bool before(
const ViewA&
x,
const ViewB& y);
229 View
base(
void)
const;
231 unsigned int degree(
void)
const;
233 double afc(
const Space& home)
const;
288 template<
class ViewA,
class ViewB>
294 template<
class Var,
class View>
300 template<
class ViewA,
class ViewB>
306 template<
class View,
class Var>
312 template<
class ViewA,
class ViewB>
318 template<
class VarA,
class VarB>
324 template<
class Var,
class View>
330 template<
class View,
class Var>
336 template<
class ViewA,
class ViewB>
391 View::schedule(home,
p,me);
396 return View::me(med);
401 return View::med(me);
449 return x->assigned();
455 x->subscribe(home,
p,pc,schedule);
460 x->cancel(home,
p,pc);
465 x->subscribe(home,
a);
475 VarImpType::schedule(home,
p,me);
480 return VarImpType::me(med);
485 return VarImpType::med(me);
490 return VarImpType::modevent(
d);
495 x = y.
x->copy(home,share);
515 return View::varderived();
549 return View::schedule(home,
p,me);
554 return View::me(med);
559 return View::med(me);
566 x.subscribe(home,
p,pc,schedule);
586 return View::modevent(
d);
591 x.update(home,share,y.
x);
601 template<
class ViewA,
class ViewB>
607 template<
class Var,
class View>
613 template<
class ViewA,
class ViewB>
619 template<
class Var,
class View>
625 template<
class View,
class Var>
634 return x.varimp() == y.
varimp();
637 template<
class ViewA,
class ViewB>
648 template<
class ViewA,
class ViewB>
651 return x.varimp() < y.varimp();
660 template<
class ViewA,
class ViewB>
665 template<
class Var,
class View>
670 template<
class ViewA,
class ViewB>
675 template<
class View,
class Var>
680 template<
class ViewA,
class ViewB>
685 template<
class VarA,
class VarB>
688 return (static_cast<VarImpBase*>(
x.varimp()) ==
689 static_cast<VarImpBase*>(y.
varimp()));
691 template<
class Var,
class View>
694 return (View::varderived() &&
695 static_cast<VarImpBase*>(
x.varimp()) ==
696 static_cast<VarImpBase*>(y.
varimp()));
698 template<
class View,
class Var>
701 return (View::varderived() &&
702 static_cast<VarImpBase*>(
x.varimp()) ==
703 static_cast<VarImpBase*>(y.
varimp()));
705 template<
class ViewA,
class ViewB>
708 return (ViewA::varderived() && ViewB::varderived() &&
709 static_cast<VarImpBase*>(
x.varimp()) ==
710 static_cast<VarImpBase*>(y.
varimp()));
VarImpType * varimp(void) const
Return dummy variable implementation of view.
static ModEventDelta med(ModEvent me)
Translate modification event me to modification event delta for view.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
View base(void) const
Return view from which this view is derived.
View::VarType VarType
The variable type corresponding to the constant view.
static ModEvent modevent(const Delta &d)
Return modification event.
double afc(const Space &home) const
Return accumulated failure count.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
static ModEvent modevent(const Delta &d)
Return modification event.
double afc(const Space &home) const
Return accumulated failure count.
bool assigned(void) const
Test whether view is assigned.
void cancel(Space &home, Propagator &p, IntSet &y)
static ModEventDelta med(ModEvent)
Translate modification event me to modification event delta for view.
void update(Space &home, bool share, ConstView &y)
Update this view to be a clone of view y.
const ModEvent ME_GEN_ASSIGNED
Generic modification event: variable is assigned a value.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
int ModEvent
Type for modification events.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
Base-class for propagators.
bool shared(const DerivedView< ViewA > &, const DerivedView< ViewB > &)
Test whether views share same variable.
VarImpView(void)
Default constructor.
Base-class for constant views.
Base-class for derived views.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
DerivedView(void)
Default constructor.
unsigned int degree(void) const
Return degree (number of subscribed propagators and advisors)
View::VarImpType VarImpType
The variable implementation type corresponding to the constant view.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
bool same(const ConstView< ViewA > &, const ConstView< ViewB > &)
Test whether two views are the same.
int p
Number of positive literals for node type.
bool same(const OffsetView &x, const OffsetView &y)
Test whether views x and y are the same.
static bool varderived(void)
Return whether this view is derived from a VarImpView.
double afc(const Space &home) const
Return accumulated failure count.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
int PropCond
Type for propagation conditions.
void subscribe(Space &home, Propagator &p, IntSet &y)
static bool varderived(void)
Return whether this view is derived from a VarImpView.
void update(Space &home, bool share, DerivedView< View > &y)
Update this view to be a clone of view y.
bool before(const ViewA &x, const ViewB &y)
Base-class for variable implementation views.
Var VarType
The variable type corresponding to the view.
bool assigned(void) const
Test whether view is assigned.
void update(Space &home, bool share, VarImpView< Var > &y)
Update this view to be a clone of view y.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
struct Gecode::@511::NNF::@54::@56 a
For atomic nodes.
bool before(const OffsetView &x, const OffsetView &y)
Test whether view x comes before y (arbitrary order)
Var::VarImpType VarImpType
The variable implementation type corresponding to the view.
View::VarType VarType
The variable type belonging to the View.
bool assigned(void) const
Test whether view is assigned.
Base class for variables.
Node * x
Pointer to corresponding Boolean expression node.
Generic domain change information to be supplied to advisors.
static ModEvent modevent(const Delta &d)
Return modification event.
View::VarImpType VarImpType
The variable implementation type belonging to the View.
bool assigned(View x, int v)
Whether x is assigned to value v.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
const ModEvent ME_GEN_NONE
Generic modification event: no modification.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
unsigned int degree(void) const
Return degree (number of subscribed propagators and advisors)
View x
View from which this view is derived.
VarImpType * varimp(void) const
Return variable implementation of view.
bool shared(const ConstView< ViewA > &, const ConstView< ViewB > &)
Test whether views share same variable.
static bool varderived(void)
Return whether this view is derived from a VarImpView.
Gecode toplevel namespace
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
VarImpType * varimp(void) const
Return variable implementation of view.
VarImpType * x
Pointer to variable implementation.
int ModEventDelta
Modification event deltas.
unsigned int degree(void) const
Return degree (number of subscribed propagators)
static ModEventDelta med(ModEvent me)
Translate modification event me to modification event delta for view.