53 unsigned int degree(
void)
const;
56 double afc(
void)
const;
146 unsigned int degree(
void)
const;
148 double afc(
void)
const;
208 template<
class VarA,
class VarB>
212 template<
class ViewA,
class ViewB>
213 bool before(
const ViewA&
x,
const ViewB&
y);
243 View
base(
void)
const;
245 unsigned int degree(
void)
const;
247 double afc(
void)
const;
308 template<
class ViewA,
class ViewB>
314 template<
class Var,
class View>
320 template<
class ViewA,
class ViewB>
326 template<
class View,
class Var>
332 template<
class ViewA,
class ViewB>
338 template<
class VarA,
class VarB>
344 template<
class Var,
class View>
350 template<
class View,
class Var>
356 template<
class ViewA,
class ViewB>
416 View::schedule(home,
p,me);
421 return View::me(med);
426 return View::med(me);
479 return x->assigned();
485 x->subscribe(home,
p,pc,schedule);
490 x->cancel(home,
p,pc);
495 x->reschedule(home,
p,pc);
500 x->subscribe(home,
a,fail);
505 x->cancel(home,
a,fail);
510 VarImpType::schedule(home,
p,me);
515 return VarImpType::me(med);
520 return VarImpType::med(me);
525 return VarImpType::modevent(
d);
550 return View::varderived();
584 return View::schedule(home,
p,me);
589 return View::me(med);
594 return View::med(me);
601 x.subscribe(home,
p,pc,schedule);
611 x.reschedule(home,
p,pc);
616 x.subscribe(home,
a,fail);
621 x.cancel(home,
a,fail);
626 return View::modevent(
d);
631 x.update(home,share,
y.
x);
641 template<
class ViewA,
class ViewB>
647 template<
class Var,
class View>
653 template<
class ViewA,
class ViewB>
659 template<
class Var,
class View>
665 template<
class View,
class Var>
677 template<
class ViewA,
class ViewB>
680 return same(
x.base(),
y.base());
688 template<
class ViewA,
class ViewB>
700 template<
class ViewA,
class ViewB>
705 template<
class Var,
class View>
710 template<
class ViewA,
class ViewB>
715 template<
class View,
class Var>
720 template<
class ViewA,
class ViewB>
725 template<
class VarA,
class VarB>
728 return (static_cast<VarImpBase*>(
x.varimp()) ==
729 static_cast<VarImpBase*>(
y.
varimp()));
731 template<
class Var,
class View>
734 return (View::varderived() &&
735 static_cast<VarImpBase*>(
x.varimp()) ==
736 static_cast<VarImpBase*>(
y.
varimp()));
738 template<
class View,
class Var>
741 return (View::varderived() &&
742 static_cast<VarImpBase*>(
x.varimp()) ==
743 static_cast<VarImpBase*>(
y.
varimp()));
745 template<
class ViewA,
class ViewB>
748 return (ViewA::varderived() && ViewB::varderived() &&
749 static_cast<VarImpBase*>(
x.varimp()) ==
750 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.
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.
SetVarImp * copy(Space &home, bool share)
Return copy of this variable.
bool assigned(void) const
Test whether view is assigned.
VarImp * varimp(void) const
Return variable implementation of variable.
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.
void reschedule(Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p with propagation condition pc.
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.
void reschedule(Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p with propagation condition pc.
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.
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
double afc(void) 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.
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.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
VarImp * x
Pointer to variable implementation.
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.
bool before(const OffsetView &x, const OffsetView &y)
Test whether view x comes before y (arbitrary order)
Post propagator for SetVar SetOpType SetVar y
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.
const double base
Base for geometric restart sequence.
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.
double afc(void) const
Return accumulated failure count.
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.
Post propagator for SetVar x
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.
void reschedule(Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p with propagation condition pc.
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.
void reschedule(Space &home, Propagator &p, IntSet &y)
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.
double afc(void) const
Return accumulated failure count.