36 #ifndef __GECODE_INT_CUMULATIVE_HH__ 37 #define __GECODE_INT_CUMULATIVE_HH__ 55 namespace Gecode {
namespace Int {
namespace Cumulative {
61 void mul_check(
long long int x,
long long int y,
long long int z);
67 namespace Gecode {
namespace Int {
namespace Cumulative {
92 long long int e(
void)
const;
107 template<
class Char,
class Traits>
108 std::basic_ostream<Char,Traits>&
109 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPTask&
t);
146 long long int e(
void)
const;
161 template<
class Char,
class Traits>
162 std::basic_ostream<Char,Traits>&
163 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPSETask&
t);
188 long long int e(
void)
const;
203 template<
class Char,
class Traits>
204 std::basic_ostream<Char,Traits>&
205 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFlexTask&
t);
230 template<
class Char,
class Traits>
231 std::basic_ostream<Char,Traits>&
232 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPTask&
t);
256 template<
class Char,
class Traits>
257 std::basic_ostream<Char,Traits>&
258 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPSETask&
t);
282 template<
class Char,
class Traits>
283 std::basic_ostream<Char,Traits>&
284 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFlexTask&
t);
290 namespace Gecode {
namespace Int {
namespace Cumulative {
333 template<
class Char,
class Traits>
334 std::basic_ostream<Char,Traits>&
335 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPTaskBwd&
t);
341 template<
class Char,
class Traits>
342 std::basic_ostream<Char,Traits>&
343 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPSETaskBwd&
t);
349 template<
class Char,
class Traits>
350 std::basic_ostream<Char,Traits>&
351 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPTaskBwd&
t);
357 template<
class Char,
class Traits>
358 std::basic_ostream<Char,Traits>&
359 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPSETaskBwd&
t);
365 namespace Gecode {
namespace Int {
544 namespace Gecode {
namespace Int {
namespace Cumulative {
560 template<
class TaskView>
578 long long int env(
void)
const;
593 template<
class TaskView>
620 long long int env(
int i);
628 static const int undef = -1;
644 template<
class TaskView>
662 bool lempty(
void)
const;
664 int responsible(
void)
const;
666 long long int env(
void)
const;
668 long long int lenv(
void)
const;
675 namespace Gecode {
namespace Int {
namespace Cumulative {
683 template<
class ManTask>
687 template<
class Task,
class Cap>
701 template<
class ManTask,
class Cap,
class PL>
719 virtual size_t dispose(
Space& home);
728 template<
class OptTask,
class Cap,
class PL>
746 virtual size_t dispose(
Space& home);
750 template<
class ManTask,
class Cap>
755 template<
class OptTask,
class Cap>
Unary (mandatory) task with fixed processing, start or end time
Cumulative (mandatory) task with flexible processing time.
long long int cenv
Energy envelope for subtree.
Cumulative::OptFixPSETaskBwd TaskViewBwd
The backward task view type.
Cumulative::ManFixPTaskFwd TaskViewFwd
The forward task view type.
Cumulative (mandatory) task with fixed processing, start or end time.
Omega-lambda trees for computing ect of task sets.
TaskType
Type of task for scheduling constraints.
Unary optional task with flexible processing time
Cumulative::OptFixPTask Task
The task type.
FwdToBwd< OptFlexTaskFwd > OptFlexTaskBwd
Backward (dual) optional flexible task view.
Cumulative::OptFixPSETaskFwd TaskViewFwd
The forward task view type.
Cumulative::OptFixPTaskFwd TaskViewFwd
The forward task view type.
Cumulative::ManFlexTaskFwd TaskViewFwd
The forward task view type.
ExecStatus subsumed(Space &home, Propagator &p, int c, TaskArray< Task > &t)
Check for subsumption (all tasks must be assigned)
Node for an omega lambda tree.
Cumulative::ManFlexTask Task
The task type.
Unary::ManFixPSETask UnaryTask
The corresponding unary task type.
Omega trees for computing ect of task sets.
Unary (mandatory) task with fixed processing time
long long int env
Energy envelope for subtree.
Omega trees for computing ect of task sets.
FwdToBwd< ManFlexTaskFwd > ManFlexTaskBwd
Backward (dual) mandatory flexible task view.
ExecStatus overload(Space &home, int c, TaskArray< ManTask > &t)
Check mandatory tasks t for overload.
FwdToBwd< ManFixPTaskFwd > ManFixPTaskBwd
Backward (dual) mandatory fixed task view.
Base-class for propagators.
Cumulative optional task with flexible processing time
FwdToBwd< OptFixPTaskFwd > OptFixPTaskBwd
Backward (dual) optional fixed task view.
Cumulative::ManFixPSETaskBwd TaskViewBwd
The backward task view type.
Scheduling propagator for cumulative resource with optional tasks.
Traits class for mapping tasks to task views.
Base-class for both propagators and branchers.
Cumulative::ManFixPSETask ManTask
The corresponding mandatory task.
Cumulative::ManFlexTask Task
The task type.
Cumulative::OptFixPSETask Task
The task type.
Gecode::FloatVal c(-8, 8)
Unary optional task with fixed processing time
int p
Number of positive literals for node type.
Cumulative::OptFlexTask Task
The task type.
Cumulative::OptFixPTask Task
The task type.
Cumulative::OptFixPTaskBwd TaskViewBwd
The backward task view type.
Gecode::IntArgs i({1, 2, 3, 4})
Cumulative (mandatory) task with fixed processing time.
int resLe
Node which is responsible for le.
Cumulative::ManFixPSETask Task
The task type.
Cumulative::ManFixPTask Task
The task type.
int resLenv
Node which is responsible for lenv.
Unary::OptFixPSETask UnaryTask
The corresponding unary task type.
ManFixPSETask ManFixPSETaskFwd
Forward mandatory fixed task view.
Class to define an optional from a mandatory task.
Unary::OptFlexTask UnaryTask
The corresponding unary task type.
Cumulative::ManFixPSETask Task
The task type.
Cumulative::OptFlexTaskBwd TaskViewBwd
The backward task view type.
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
FwdToBwd< OptFixPSETaskFwd > OptFixPSETaskBwd
Backward (dual) optional fixed task view.
OptFixPTask OptFixPTaskFwd
Forward optional fixed task view.
OptFixPSETask OptFixPSETaskFwd
Forward optional fixed task view.
Boolean integer variables.
Task mapper: turns a task view into its dual.
Post propagator for SetVar SetOpType SetVar SetRelType r
Cumulative optional task with fixed processing time.
Cumulative::ManFixPTaskBwd TaskViewBwd
The backward task view type.
Unary::ManFixPTask UnaryTask
The corresponding unary task type.
Unary::OptFixPTask UnaryTask
The corresponding unary task type.
IntPropLevel
Propagation levels for integer propagators.
Cumulative::OptFlexTaskFwd TaskViewFwd
The forward task view type.
Cumulative::ManFixPSETaskFwd TaskViewFwd
The forward task view type.
Post propagator for SetVar SetOpType SetVar y
long long int le
Energy for subtree.
OptFlexTask OptFlexTaskFwd
Forward optional flexible task view.
ExecStatus coptpost(Home home, Cap c, TaskArray< OptTask > &t, IntPropLevel ipl)
Post optional task propagator according to propagation level.
ExecStatus timetabling(Space &home, Propagator &p, Cap c, TaskArray< Task > &t)
Perform time-tabling propagation.
ManFixPTask ManFixPTaskFwd
Forward mandatory fixed task view.
Node for an extended omega tree.
void mul_check(long long int x, long long int y)
Throw exception if multiplication of x and y overflows.
Unary optional task with fixed processing, start or end time.
Cumulative::OptFlexTask Task
The task type.
Post propagator for SetVar x
ManFlexTask ManFlexTaskFwd
Forward mandatory flexible task view.
Traits class for mapping task views to tasks.
Scheduling propagator for cumulative resource with mandatory tasks.
FwdToBwd< ManFixPSETaskFwd > ManFixPSETaskBwd
Backward (dual) mandatory fixed task view.
Gecode toplevel namespace
Cumulative::ManFixPTask ManTask
The corresponding mandatory task.
Unary (mandatory) task with flexible processing time
Cumulative optional task with fixed processing, start or end time.
int ModEventDelta
Modification event deltas.
Cumulative::ManFlexTask ManTask
The corresponding mandatory task.
Home class for posting propagators
Task trees for task views with node type Node.
Cumulative::ManFlexTaskBwd TaskViewBwd
The backward task view type.
Unary::ManFlexTask UnaryTask
The corresponding unary task type.
long long int e
Energy for subtree.
void update(IntSet &y, Space &home, IntSet &py)
Cumulative::OptFixPSETask Task
The task type.
long long int lenv
Energy envelope for subtree.
Cumulative::ManFixPTask Task
The task type.
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
ExecStatus edgefinding(Space &home, int c, TaskViewArray< TaskView > &t)
ExecStatus cmanpost(Home home, Cap c, TaskArray< ManTask > &t, IntPropLevel ipl)
Post mandatory task propagator according to propagation level.