Go to the documentation of this file.
49 if (s.size() !=
p.size())
51 for (
int i=0;
i<
p.size();
i++) {
58 for (
int i=0;
i<
p.size();
i++) {
78 for (
int i=0;
i<s.size();
i++)
89 if ((flex.size() != fix.size()) || (flex.size() !=
t.size()))
91 for (
int i=0;
i<fix.size();
i++) {
101 for (
int i=0;
i<
t.size();
i++)
106 unary(home, flex, fix, ipl);
109 for (
int i=0;
i<flex.size();
i++)
110 tasks[
i].init(
t[
i],flex[
i],fix[
i]);
122 if ((s.size() !=
p.size()) || (s.size() != m.size()))
124 for (
int i=0;
i<
p.size();
i++) {
129 bool allMandatory =
true;
130 for (
int i=0;
i<m.size();
i++) {
132 allMandatory =
false;
141 for (
int i=0;
i<s.size();
i++)
142 t[
i].init(s[
i],
p[
i],m[
i]);
153 if ((flex.size() != fix.size()) || (flex.size() !=
t.size()) ||
154 (flex.size() != m.size()))
157 for (
int i=0;
i<fix.size();
i++) {
168 bool allMandatory =
true;
169 for (
int i=0;
i<m.size();
i++) {
171 allMandatory =
false;
176 unary(home,
t,flex,fix,ipl);
180 for (
int i=0;
i<flex.size();
i++)
181 tasks[
i].init(flex[
i],fix[
i],m[
i]);
185 for (
int i=0;
i<flex.size();
i++)
186 tasks[
i].init(
t[
i],flex[
i],fix[
i],m[
i]);
197 if ((s.size() !=
p.size()) || (s.size() != e.size()))
200 for (
int i=0;
i<
p.size();
i++) {
205 for (
int i=0;
i<
p.size();
i++) {
213 for (
int i=0;
i<
p.size();
i++)
215 unary(home,s,pp,ipl);
218 for (
int i=0;
i<s.size();
i++)
219 t[
i].init(s[
i],
p[
i],e[
i]);
229 if ((s.size() !=
p.size()) || (s.size() != m.size()) ||
230 (s.size() != e.size()))
233 for (
int i=0;
i<
p.size();
i++) {
237 bool allMandatory =
true;
238 for (
int i=0;
i<m.size();
i++) {
240 allMandatory =
false;
248 for (
int i=0;
i<s.size();
i++)
249 t[
i].init(s[
i],
p[
i],e[
i],m[
i]);
Exception: Arguments are of different size
#define GECODE_ES_FAIL(es)
Check whether execution status es is failed, and fail space home.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Bounds consistent distinct propagator.
Passing integer variables.
bool assigned(View x, int v)
Whether x is assigned to value v.
void check(int n, const char *l)
Check whether n is in range, otherwise throw out of limits with information l.
IntPropLevel
Propagation levels for integer propagators.
Gecode toplevel namespace
IntPropLevel vbd(IntPropLevel ipl)
Extract value, bounds, or domain propagation from propagation level.
Exception: Arguments contain same variable multiply
Argument array for non-primitive types.
Passing Boolean variables.
Home class for posting propagators
@ IPL_DOM
Domain propagation Options: basic versus advanced propagation.
void nonnegative(int n, const char *l)
Check whether n is in range and nonnegative, otherwise throw out of limits with information l.
bool one(const Gecode::FloatValArgs &a)
Check whether has only one coefficients.
Domain consistent distinct propagator.
@ IPL_BND
Bounds propagation.
ExecStatus optpost(Home home, TaskArray< OptTask > &t, IntPropLevel ipl)
Post optional task propagator according to propagation level.
#define GECODE_POST
Check for failure in a constraint post function.
Integer view for integer variables.
#define GECODE_ME_FAIL(me)
Check whether modification event me is failed, and fail space home.
ExecStatus manpost(Home home, TaskArray< ManTask > &t, IntPropLevel ipl)
Post mandatory task propagator according to propagation level.
bool same(VarArgArray< Var > x, VarArgArray< Var > y)
Passing integer arguments.
Gecode::IntArgs i({1, 2, 3, 4})
void unary(Home home, const IntVarArgs &s, const IntArgs &p, IntPropLevel ipl)
Post propagators for scheduling tasks on unary resources.
int p
Number of positive literals for node type.
Naive value distinct propagator.