56 for ( ; (e->type() ==
Event::LRT) && (e->time() == time); e++)
57 if (t[e->idx()].mandatory()) {
58 tasks.
set(
static_cast<unsigned int>(e->idx()));
63 for ( ; (e->type() ==
Event::LCT) && (e->time() == time); e++)
64 tasks.
clear(
static_cast<unsigned int>(e->idx()));
67 for ( ; (e->type() ==
Event::EST) && (e->time() == time); e++)
68 tasks.
set(
static_cast<unsigned int>(e->idx()));
71 for ( ; (e->type() ==
Event::ZRO) && (e->time() == time); e++)
78 for ( ; (e->type() ==
Event::ERT) && (e->time() == time); e++)
79 if (t[e->idx()].mandatory()) {
80 tasks.
clear(
static_cast<unsigned int>(e->idx()));
85 }
else if (t[e->idx()].optional() && !free) {
93 if (t[j.val()].mandatory())
Time-tabling event for task.
static Event * events(Region &r, const TaskArray< Task > &t, bool &assigned)
Allocate from r and initialize event array with tasks t.
@ ZRO
Zero-length task start time.
@ ERT
Earliest required time of task.
@ LRT
Latest required time of task.
@ EST
Earliest start time of task.
@ LCT
Latest completion time of task.
int size(void) const
Return size of array (number of elements)
Value iterator for values in a bitset.
Base-class for propagators.
void clear(unsigned int i)
Clear bit i.
void set(unsigned int i)
Set bit i.
ExecStatus ES_SUBSUMED(Propagator &p)
Propagator p is subsumed
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
ExecStatus timetabling(Space &home, Propagator &p, TaskArray< Task > &t)
Perform time-tabling propagation.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
@ ES_FAILED
Execution has resulted in failure.
@ ES_NOFIX
Propagation has not computed fixpoint.