38 template<
class ManTask,
class Cap,
class PL>
45 template<
class ManTask,
class Cap,
class PL>
52 template<
class ManTask,
class Cap,
class PL>
58 for (
int i=0; i<
t.size(); i++)
59 if (
t[i].
c() >
c.max())
64 if (
c.assigned() &&
c.val()==1) {
66 for (
int i=0; i<
t.size(); i++)
77 template<
class ManTask,
class Cap,
class PL>
83 template<
class ManTask,
class Cap,
class PL>
91 template<
class ManTask,
class Cap,
class PL>
104 if (Cap::varderived() &&
c.assigned() && (
c.val() == 1)) {
106 for (
int i=0; i<
t.size(); i++)
111 for (
int i=0; i<
t.size(); i++)
118 if (!PL::basic &&
c.assigned())
Base-class for both propagators and branchers.
Home class for posting propagators
virtual Actor * copy(Space &home)
Perform copying during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
static ExecStatus post(Home home, Cap c, TaskArray< ManTask > &t)
Post propagator that schedules tasks on cumulative resource.
ManProp(Home home, Cap c, TaskArray< ManTask > &t)
Constructor for creation.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
TaskProp(Home home, TaskArray< ManTask > &t)
Traits class for mapping tasks to task views.
Scheduling propagator for unary resource with mandatory tasks
ModEventDelta med
A set of modification events (used during propagation)
static ModEvent me(const ModEventDelta &med)
int ModEventDelta
Modification event deltas.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
Scheduling for cumulative resources
ExecStatus timetabling(Space &home, Propagator &p, Cap c, TaskArray< Task > &t)
Perform time-tabling propagation.
ExecStatus subsumed(Space &home, Propagator &p, int c, TaskArray< Task > &t)
Check for subsumption (all tasks must be assigned)
ExecStatus edgefinding(Space &home, int c, TaskArray< Task > &t)
Propagate by edge-finding.
ExecStatus overload(Space &home, int c, TaskArray< ManTask > &t)
Check mandatory tasks t for overload.
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
const Gecode::ModEvent ME_INT_DOM
Domain operation has changed the domain.
Gecode toplevel namespace
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
@ ES_OK
Execution is okay.
@ ES_FAILED
Execution has resulted in failure.
@ ES_NOFIX
Propagation has not computed fixpoint.