36 namespace Gecode {
namespace Int {
namespace Unary {
53 template<
class TaskView>
63 template<
class TaskView>
71 template<
class TaskView>
78 template<
class TaskView>
84 template<
class TaskView>
108 lp =
p; lect =
ect; resEct = undef; resLp = undef;
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>
int resEct
Node which is responsible for lect.
void init(const OmegaLambdaNode &l, const OmegaLambdaNode &r)
Initialize node from left child l and right child r.
const FloatNum max
Largest allowed float value.
int lp
Processing times for subtree.
void update(const OmegaNode &l, const OmegaNode &r)
Update node from left child l and right child r.
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
Earliest completion time for subtree.
void insert(int i)
Insert task with index i.
int lect
Earliest completion times for subtree.
void oinsert(int i)
Insert task with index i to omega.
bool lempty(void) const
Whether has responsible task.
int p
Number of positive literals for node type.
Omega trees for computing ect of task sets.
void update(const OmegaLambdaNode &l, const OmegaLambdaNode &r)
Update node from left child l and right child r.
Gecode::IntArgs i({1, 2, 3, 4})
void update(void)
Update all inner nodes of tree after leaves have been initialized.
void remove(int i)
Remove task with index i.
void init(void)
Initialize tree after leaves have been initialized.
int ect(void) const
Return earliest completion time of all tasks.
Node for an omega lambda tree.
int plus(int x, int y)
Safe addition in case x is -IntLimits::infinity.
int responsible(void) const
Return responsible task.
Post propagator for SetVar SetOpType SetVar SetRelType r
int resLp
Node which is responsible for lp.
OmegaLambdaTree(Region &r, const TaskViewArray< TaskView > &t, bool inc=true)
Initialize tree for tasks t with all tasks included, if inc is true.
int ect(void) const
Return earliest completion time of all tasks.
const int infinity
Infinity for integers.
OmegaTree(Region &r, const TaskViewArray< TaskView > &t)
Initialize tree for tasks t.
const OmegaNode & root(void) const
Return root node.
void lremove(int i)
Remove task with index i from lambda.
OmegaNode & leaf(int i)
Return leaf for task i.
void init(const OmegaNode &l, const OmegaNode &r)
Initialize node from left child l and right child r.
void shift(int i)
Shift task with index i from omega to lambda.
Gecode toplevel namespace
const TaskViewArray< TaskView > & tasks
The tasks from which the tree is computed.
static const int undef
Undefined task.
Task trees for task views with node type Node.
int p
Processing time for subtree.