36namespace Gecode {
namespace Int {
namespace Cumulative {
38 template<
class ManTask,
class Cap,
class PL>
41 :
TaskProp<ManTask,PL>(home,t), c(c0) {
45 template<
class ManTask,
class Cap,
class PL>
52 template<
class ManTask,
class Cap,
class PL>
58 for (
int i=0; i<t.
size(); i++)
59 if (t[i].c() > c.
max())
64 if (c.assigned() && c.val()==1) {
66 for (
int i=0; i<t.
size(); i++)
77 template<
class ManTask,
class Cap,
class PL>
83 template<
class ManTask,
class Cap,
class PL>
91 template<
class ManTask,
class Cap,
class PL>
104 if (Cap::varderived() && c.assigned() && (c.val() == 1)) {
106 for (
int i=0; i<t.
size(); i++)
111 for (
int i=0; i<t.
size(); i++)
118 if (!PL::basic && c.assigned())
Base-class for both propagators and branchers.
int size(void) const
Return size of array (number of elements)
friend FloatVal max(const FloatVal &x, const FloatVal &y)
Home class for posting propagators
Scheduling propagator for cumulative resource with mandatory tasks.
virtual Actor * copy(Space &home)
Perform copying during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
static ExecStatus post(Home home, Cap c, TaskArray< ManTask > &t)
Post propagator that schedules tasks on cumulative resource.
ManProp(Home home, Cap c, TaskArray< ManTask > &t)
Constructor for creation.
int size(void) const
Return size of array (number of elements)
Traits class for mapping tasks to task views.
Scheduling propagator for unary resource with mandatory tasks
static ModEvent me(const ModEventDelta &med)
int ModEventDelta
Modification event deltas.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
ExecStatus timetabling(Space &home, Propagator &p, Cap c, TaskArray< Task > &t)
Perform time-tabling propagation.
ExecStatus subsumed(Space &home, Propagator &p, int c, TaskArray< Task > &t)
Check for subsumption (all tasks must be assigned)
ExecStatus edgefinding(Space &home, int c, TaskArray< Task > &t)
Propagate by edge-finding.
ExecStatus overload(Space &home, int c, TaskArray< ManTask > &t)
Check mandatory tasks t for overload.
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
const Gecode::ModEvent ME_INT_DOM
Domain operation has changed the domain.
Gecode toplevel namespace
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
@ ES_OK
Execution is okay.
@ ES_FAILED
Execution has resulted in failure.
@ ES_NOFIX
Propagation has not computed fixpoint.