53 unsigned int degree(
void)
const;
60 VarImpType*
varimp(
void)
const;
133 void varimp(VarImpType* y);
140 VarImpType*
varimp(
void)
const;
142 unsigned int degree(
void)
const;
144 double afc(
const Space& home)
const;
200 template<
class VarA,
class VarB>
204 template<
class ViewA,
class ViewB>
205 bool before(
const ViewA&
x,
const ViewB& y);
233 VarImpType*
varimp(
void)
const;
235 View
base(
void)
const;
237 unsigned int degree(
void)
const;
239 double afc(
const Space& home)
const;
296 template<
class ViewA,
class ViewB>
302 template<
class Var,
class View>
308 template<
class ViewA,
class ViewB>
314 template<
class View,
class Var>
320 template<
class ViewA,
class ViewB>
326 template<
class VarA,
class VarB>
332 template<
class Var,
class View>
338 template<
class View,
class Var>
344 template<
class ViewA,
class ViewB>
404 View::schedule(home,p,me);
409 return View::me(med);
414 return View::med(me);
467 return x->assigned();
473 x->subscribe(home,p,pc,schedule);
478 x->cancel(home,p,pc);
483 x->reschedule(home,p,pc);
488 x->subscribe(home,a);
498 VarImpType::schedule(home,p,me);
503 return VarImpType::me(med);
508 return VarImpType::med(me);
513 return VarImpType::modevent(d);
518 x = y.
x->copy(home,share);
538 return View::varderived();
572 return View::schedule(home,p,me);
577 return View::me(med);
582 return View::med(me);
589 x.subscribe(home,p,pc,schedule);
599 x.reschedule(home,p,pc);
614 return View::modevent(d);
619 x.update(home,share,y.
x);
629 template<
class ViewA,
class ViewB>
635 template<
class Var,
class View>
641 template<
class ViewA,
class ViewB>
647 template<
class Var,
class View>
653 template<
class View,
class Var>
665 template<
class ViewA,
class ViewB>
676 template<
class ViewA,
class ViewB>
679 return x.varimp() < y.varimp();
688 template<
class ViewA,
class ViewB>
693 template<
class Var,
class View>
698 template<
class ViewA,
class ViewB>
703 template<
class View,
class Var>
708 template<
class ViewA,
class ViewB>
713 template<
class VarA,
class VarB>
716 return (static_cast<VarImpBase*>(x.
varimp()) ==
717 static_cast<VarImpBase*>(y.
varimp()));
719 template<
class Var,
class View>
722 return (View::varderived() &&
723 static_cast<VarImpBase*>(x.
varimp()) ==
724 static_cast<VarImpBase*>(y.
varimp()));
726 template<
class View,
class Var>
729 return (View::varderived() &&
730 static_cast<VarImpBase*>(x.
varimp()) ==
731 static_cast<VarImpBase*>(y.
varimp()));
733 template<
class ViewA,
class ViewB>
736 return (ViewA::varderived() && ViewB::varderived() &&
737 static_cast<VarImpBase*>(x.
varimp()) ==
738 static_cast<VarImpBase*>(y.
varimp()));
VarImpType * varimp(void) const
Return dummy variable implementation of view.
View base(void) const
Return view from which this view is derived.
View::VarType VarType
The variable type corresponding to the constant view.
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.
bool assigned(void) const
Test whether view is assigned.
void cancel(Space &home, Propagator &p, IntSet &y)
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.
int ModEvent
Type for modification events.
void varimp(VarImpType *y)
Set variable implementation to y.
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.
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::@554::NNF::@60::@62 a
For atomic nodes.
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 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.
bool before(const ViewA &x, const ViewB &y)
Base-class for variable implementation views.
Var VarType
The variable type corresponding to the view.
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.
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.
View::VarImpType VarImpType
The variable implementation type belonging to the View.
bool assigned(View x, int v)
Whether x is assigned to value v.
const ModEvent ME_GEN_NONE
Generic modification event: no modification.
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.
bool same(const DerivedView< ViewA > &x, const DerivedView< ViewB > &y)
Test whether two views are the same.
Gecode toplevel namespace
void reschedule(Space &home, Propagator &p, IntSet &y)
VarImpType * x
Pointer to variable implementation.
int ModEventDelta
Modification event deltas.
static ModEventDelta med(ModEvent me)
Translate modification event me to modification event delta for view.