53 template<
class TaskView>
57 for (
int i=0; i<
tasks.size(); i++) {
63 template<
class TaskView>
71 template<
class TaskView>
78 template<
class TaskView>
84 template<
class TaskView>
114 if (l.
lp +
r.p > l.
p +
r.lp) {
134 template<
class TaskView>
142 for (
int i=0; i<
tasks.size(); i++) {
151 for (
int i=0; i<
tasks.size(); i++) {
161 template<
class TaskView>
173 template<
class TaskView>
181 template<
class TaskView>
191 template<
class TaskView>
201 template<
class TaskView>
204 return root().resEct < 0;
207 template<
class TaskView>
210 return root().resEct;
213 template<
class TaskView>
219 template<
class TaskView>
const TaskViewArray< TaskView > & tasks
TaskTree(Region &r, const TaskViewArray< TaskView > &t)
void update(int i, bool l=true)
const OmegaNode & root(void) const
Node for an omega lambda tree.
void update(const OmegaLambdaNode &l, const OmegaLambdaNode &r)
Update node from left child l and right child r.
void init(const OmegaLambdaNode &l, const OmegaLambdaNode &r)
Initialize node from left child l and right child r.
int lp
Processing times for subtree.
static const int undef
Undefined task.
int resEct
Node which is responsible for lect.
int resLp
Node which is responsible for lp.
int lect
Earliest completion times for subtree.
int responsible(void) const
Return responsible task.
OmegaLambdaTree(Region &r, const TaskViewArray< TaskView > &t, bool inc=true)
Initialize tree for tasks t with all tasks included, if inc is true.
void shift(int i)
Shift task with index i from omega to lambda.
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.
int ect
Earliest completion time for subtree.
void init(const OmegaNode &l, const OmegaNode &r)
Initialize node from left child l and right child r.
int p
Processing time for subtree.
void update(const OmegaNode &l, const OmegaNode &r)
Update node from left child l and right child r.
void insert(int i)
Insert task with index i.
int ect(void) const
Return earliest completion time of all tasks.
void remove(int i)
Remove task with index i.
OmegaTree(Region &r, const TaskViewArray< TaskView > &t)
Initialize tree for tasks t.
void update(const NoOffset &)
Integer-precision integer scale view.
const int infinity
Infinity for integers.
int plus(int x, int y)
Safe addition in case x is -Int::Limits::infinity.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r