37 template<
class ManTask>
46 for (
int i=0; i<f.size(); i++) {
48 if (o.
ect() > f[i].lct())
55 template<
class OptTask,
class PL>
64 bool to_purge =
false;
66 for (
int i=0; i<f.size(); i++) {
67 if (f[i].optional()) {
69 }
else if (f[i].mandatory()) {
71 if (ol.
ect() > f[i].lct())
74 while (!ol.
lempty() && (ol.
lect() > f[i].lct())) {
Omega-lambda trees for computing ect of task sets.
int responsible(void) const
Return responsible task.
void lremove(int i)
Remove task with index i from lambda.
bool lempty(void) const
Whether has responsible task.
void oinsert(int i)
Insert task with index i to omega.
int lect(void) const
Return earliest completion time of all tasks excluding lambda tasks.
void linsert(int i)
Insert task with index i to lambda.
int ect(void) const
Return earliest completion time of all tasks.
Omega trees for computing ect of task sets.
void insert(int i)
Insert task with index i.
int ect(void) const
Return earliest completion time of all tasks.
Base-class for propagators.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
ExecStatus overload(TaskArray< ManTask > &t)
Check mandatory tasks t for overload.
void sort(TaskViewArray< TaskView > &t)
Sort task view array t according to sto and inc (increasing or decreasing)
ExecStatus purge(Space &home, Propagator &p, TaskArray< OptTask > &t)
Purge optional tasks that are excluded and possibly rewrite propagator.
@ STO_LCT
Sort by latest completion times.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
@ ES_OK
Execution is okay.
@ ES_FAILED
Execution has resulted in failure.