40 namespace Gecode {
namespace Int {
namespace Cumulative {
68 bool operator ()(
const Task& t1,
const Task& t2)
const;
86 return t1.c() > t2.c();
91 template<
class Task,
class Cap>
111 for (
int i=t.
size();
i--; )
114 if (t[
i].pmin() > 0) {
118 }
else if (t[
i].pmax() == 0) {
127 if (t[
i].lst() < t[
i].ect()) {
157 if (t[e->
i].mandatory()) {
158 tasks.
set(static_cast<unsigned int>(e->
i)); ccur += t[e->
i].c();
162 tasks.
clear(static_cast<unsigned int>(e->
i));
165 tasks.
set(static_cast<unsigned int>(e->
i));
169 if (ccur < cmin) cmin=ccur;
179 if (t[e->
i].mandatory()) {
180 tasks.
clear(static_cast<unsigned int>(e->
i));
182 if (ccur < cmin) cmin=ccur;
186 }
else if (t[e->
i].optional() && (t[e->
i].c() > ccur)) {
192 j() && (t[j.val()].c() > ccur); ++j)
194 if (t[j.val()].mandatory()) {
195 if (t[j.val()].pmin() > 0) {