40 #ifndef __GECODE_INT_CUMULATIVE_HH__ 41 #define __GECODE_INT_CUMULATIVE_HH__ 59 namespace Gecode {
namespace Int {
namespace Cumulative {
62 void mul_check(
long long int x,
long long int y);
65 void mul_check(
long long int x,
long long int y,
long long int z);
71 namespace Gecode {
namespace Int {
namespace Cumulative {
96 long long int e(
void)
const;
111 template<
class Char,
class Traits>
112 std::basic_ostream<Char,Traits>&
113 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPTask&
t);
150 long long int e(
void)
const;
165 template<
class Char,
class Traits>
166 std::basic_ostream<Char,Traits>&
167 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPSETask&
t);
192 long long int e(
void)
const;
207 template<
class Char,
class Traits>
208 std::basic_ostream<Char,Traits>&
209 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFlexTask&
t);
234 template<
class Char,
class Traits>
235 std::basic_ostream<Char,Traits>&
236 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPTask&
t);
260 template<
class Char,
class Traits>
261 std::basic_ostream<Char,Traits>&
262 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPSETask&
t);
286 template<
class Char,
class Traits>
287 std::basic_ostream<Char,Traits>&
288 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFlexTask&
t);
294 namespace Gecode {
namespace Int {
namespace Cumulative {
337 template<
class Char,
class Traits>
338 std::basic_ostream<Char,Traits>&
339 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPTaskBwd&
t);
345 template<
class Char,
class Traits>
346 std::basic_ostream<Char,Traits>&
347 operator <<(std::basic_ostream<Char,Traits>& os,
const ManFixPSETaskBwd&
t);
353 template<
class Char,
class Traits>
354 std::basic_ostream<Char,Traits>&
355 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPTaskBwd&
t);
361 template<
class Char,
class Traits>
362 std::basic_ostream<Char,Traits>&
363 operator <<(std::basic_ostream<Char,Traits>& os,
const OptFixPSETaskBwd&
t);
369 namespace Gecode {
namespace Int {
548 namespace Gecode {
namespace Int {
namespace Cumulative {
564 template<
class TaskView>
582 long long int env(
void)
const;
597 template<
class TaskView>
624 long long int env(
int i);
632 static const int undef = -1;
648 template<
class TaskView>
666 bool lempty(
void)
const;
668 int responsible(
void)
const;
670 long long int env(
void)
const;
672 long long int lenv(
void)
const;
679 namespace Gecode {
namespace Int {
namespace Cumulative {
682 template<
class Task,
class Cap>
686 template<
class ManTask>
699 template<
class ManTask,
class Cap>
717 virtual size_t dispose(
Space& home);
726 template<
class OptTask,
class Cap>
744 virtual size_t dispose(
Space& home);
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.
void post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
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.
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.
ExecStatus basic(Space &home, bool &subsumed, Cap c, TaskArray< Task > &t)
Perform basic propagation.
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.
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.
Gecode::IntArgs i(4, 1, 2, 3, 4)
Cumulative::OptFlexTask Task
The task type.
Cumulative::OptFixPTask Task
The task type.
Cumulative::OptFixPTaskBwd TaskViewBwd
The backward task view type.
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.
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.
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.
Cumulative::OptFlexTaskFwd TaskViewFwd
The forward task view type.
Cumulative::ManFixPSETaskFwd TaskViewFwd
The forward task view type.
ExecStatus subsumed(Space &home, Propagator &p, TaskArray< Task > &t)
Check tasks t for subsumption.
long long int le
Energy for subtree.
OptFlexTask OptFlexTaskFwd
Forward optional flexible task view.
Node * x
Pointer to corresponding Boolean expression node.
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.
ManFlexTask ManFlexTaskFwd
Forward mandatory flexible task view.
Traits class for mapping task views to tasks.
Scheduling propagator for cumulative resource with mandatory tasks.
bool shared(const ConstView< ViewA > &, const ConstView< ViewB > &)
Test whether views share same variable.
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.
Cumulative::OptFixPSETask Task
The task type.
long long int lenv
Energy envelope for subtree.
Cumulative::ManFixPTask Task
The task type.
ExecStatus edgefinding(Space &home, int c, TaskViewArray< TaskView > &t)