53 unsigned int degree(
void)
const;
60 VarImpType*
varimp(
void)
const;
136 VarImpType*
varimp(
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);
227 VarImpType*
varimp(
void)
const;
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>
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()));
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.
bool assigned(void) const
Test whether view is assigned.
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.
VarImpType * varimp(void) const
Return variable implementation of view.
static ModEvent modevent(const Delta &d)
Return modification event.
double afc(const Space &home) const
Return accumulated failure count.
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.
VarImpView(void)
Default constructor.
VarImpType * varimp(void) const
Return dummy variable implementation of view.
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.
unsigned int degree(void) const
Return degree (number of subscribed propagators and advisors)
DerivedView(void)
Default constructor.
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.
unsigned int degree(void) const
Return degree (number of subscribed propagators and advisors)
bool same(const ConstView< ViewA > &, const ConstView< ViewB > &)
Test whether two views are the same.
int p
Number of positive literals for node type.
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.
View base(void) const
Return view from which this view is derived.
int PropCond
Type for propagation conditions.
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.
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.
Var::VarImpType VarImpType
The variable implementation type corresponding to the view.
View::VarType VarType
The variable type belonging to the View.
Base class for variables.
double afc(const Space &home) const
Return accumulated failure count.
Node * x
Pointer to corresponding Boolean expression node.
Generic domain change information to be supplied to advisors.
bool assigned(void) const
Test whether view is assigned.
static ModEvent modevent(const Delta &d)
Return modification event.
View::VarImpType VarImpType
The variable implementation type belonging to the View.
VarImpType * varimp(void) const
Return variable implementation of view.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
bool assigned(void) const
Test whether view is assigned.
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.
View x
View from which this view is derived.
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.
double afc(const Space &home) const
Return accumulated failure count.
Gecode toplevel namespace
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
VarImpType * x
Pointer to variable implementation.
unsigned int degree(void) const
Return degree (number of subscribed propagators)
int ModEventDelta
Modification event deltas.
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.
static ModEventDelta med(ModEvent me)
Translate modification event me to modification event delta for view.