38 namespace Gecode {
namespace Int {
namespace Unary {
40 template<
class ManTaskView>
43 sort<ManTaskView,STO_ECT,true>(
t);
49 int* est =
r.alloc<
int>(
t.size());
51 for (
int i=0;
i<
t.size();
i++) {
52 while (q() && (
t[
i].ect() >
t[q.
task()].lst())) {
58 for (
int i=
t.size();
i--; )
64 template<
class ManTask>
74 template<
class OptTaskView,
class PL>
77 sort<OptTaskView,STO_ECT,true>(
t);
83 int* est =
r.alloc<
int>(
t.size());
85 for (
int i=0;
i<
t.size();
i++) {
86 while (q() && (
t[
i].ect() >
t[q.
task()].lst())) {
94 if (
t[
i].mandatory()) {
96 }
else if (est[
i] >
t[
i].lst()) {
98 t[
i].cancel(home,
p,PL::pc);
t[
i]=
t[--
n];
105 template<
class OptTask,
class PL>
112 return detectable<typename TaskTraits<OptTask>::TaskViewBwd,PL>
ExecStatus ES_SUBSUMED(Propagator &p)
Base-class for propagators.
void insert(int i)
Insert task with index i.
Traits class for mapping tasks to task views.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
int p
Number of positive literals for node type.
Omega trees for computing ect of task sets.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
int task(void) const
Return current task position.
Allows to iterate over task views according to a specified order.
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
ExecStatus detectable(Space &home, TaskViewArray< ManTaskView > &t)
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
Post propagator for SetVar SetOpType SetVar SetRelType r
int ect(void) const
Return earliest completion time of all tasks.
Post propagator for f(x \diamond_{\mathit{op}} y) \sim_r z \f$ void rel(Home home
Allows to iterate over mandatory task views according to a specified order.
Gecode toplevel namespace