Go to the documentation of this file.
41 namespace Test {
namespace Int {
66 for (
int i=
x.size();
i--; )
67 if ((
x[
i] < 0) || (
x[
i] >
x.size()-1))
72 for (
int i=
x.size();
i--; ) {
73 j=
x[j]; reachable |= (1 << j);
76 for (
int i=
x.size();
i--; )
77 if (!(reachable & (1 <<
i)))
85 for (
int i=
x.size();
i--;)
109 int n =
x.size() - 2;
112 if ((s < 0) || (s >
n) || (e < 0) || (e >
n) || (
x[e] !=
n))
115 if ((
i != e) && ((
x[
i] < 0) || (
x[
i] >
n)))
117 int reachable = (1 << s);
120 for (
int i=
n;
i--; ) {
121 j=
x[j]; reachable |= (1 << j);
125 if (!(reachable & (1 <<
i)))
131 int n =
x.size() - 2;
164 if ((
x[
i] < 0) || (
x[
i] >
n-1))
169 for (
int i=
n;
i--; ) {
170 j=
x[j]; reachable |= (1 << j);
174 if (!(reachable & (1 <<
i)))
186 for (
int i=0;
i<
n;
i++)
187 for (
int j=0; j<
n; j++)
195 for (
int i=0;
i<
n;
i++)
217 int n =
x.size() - 3;
221 if ((s < 0) || (s >
n) || (e < 0) || (e >
n) || (
x[e] !=
n))
224 if ((
i != e) && ((
x[
i] < 0) || (
x[
i] >
n)))
226 int reachable = (1 << s);
229 for (
int i=
n;
i--; ) {
230 j=
x[j]; reachable |= (1 << j);
234 if (!(reachable & (1 <<
i)))
245 for (
int i=0;
i<
n;
i++)
246 for (
int j=0; j<
n; j++)
254 expr(home,
x[
n+1]+offset),
257 for (
int i=0;
i<
n;
i++)
280 int n=(
x.size()-1) / 2;
282 if ((
x[
i] < 0) || (
x[
i] >
n-1))
287 for (
int i=
n;
i--; ) {
288 j=
x[j]; reachable |= (1 << j);
292 if (!(reachable & (1 <<
i)))
295 if ((
x[
i]/2) !=
x[
n+
i])
305 int n=(
x.size()-1)/2;
307 for (
int i=0;
i<
n;
i++)
308 for (
int j=0; j<
n; j++)
311 for (
int i=0;
i<
n;
i++) {
319 for (
int i=0;
i<
n;
i++)
331 for (
int i=1;
i<=6;
i++) {
337 for (
int i=1;
i<=4;
i++) {
Simple test for circuit constraint.
Circuit(int n, int min, int max, int off, Gecode::IntPropLevel ipl)
Create and register test.
Post propagator for SetVar SetOpType SetVar y
ConTestLevel contest
Whether to test for certain consistency.
virtual bool solution(const Assignment &x) const
Check whether x is solution.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post circuit constraint on x.
Gecode::IntPropLevel ipl
Propagation level.
Passing integer variables.
BoolVar expr(Home home, const BoolExpr &e, IntPropLevel ipl)
Post Boolean expression and return its value.
PathCost(int n, int min, int max, int off, Gecode::IntPropLevel ipl)
Create and register test.
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
@ CTL_NONE
No consistency-test.
Gecode::IntArgs i(4, 1, 2, 3, 4)
@ IPL_VAL
Value propagation.
const FloatNum min
Smallest allowed float value.
IntPropLevel
Propagation levels for integer propagators.
Create(void)
Perform creation and registration.
Gecode toplevel namespace
bool testfix
Whether to perform fixpoint test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post circuit constraint on x.
Node * x
Pointer to corresponding Boolean expression node.
Path(int n, int min, int max, int off, Gecode::IntPropLevel ipl)
Create and register test.
Simple test for circuit constraint with total cost.
CircuitFullCost(int n, int min, int max, int off, Gecode::IntPropLevel ipl)
Create and register test.
Help class to create and register tests.
Simple test for path constraint with total cost.
@ IPL_DOM
Domain propagation Preferences: prefer speed or memory.
CircuitCost(int n, int min, int max, int off, Gecode::IntPropLevel ipl)
Create and register test.
void circuit(Home home, int offset, const IntVarArgs &x, IntPropLevel ipl)
Post propagator such that x forms a circuit.
void path(Home home, const IntArgs &c, const IntVarArgs &x, IntVar s, IntVar e, IntVar z, IntPropLevel ipl)
Post propagator such that x forms a Hamiltonian path with cost z.
void circuit(Home home, const IntArgs &c, const IntVarArgs &x, IntVar z, IntPropLevel ipl)
Post propagator such that x forms a circuit with cost z.
Simple test for circuit constraint with full cost information.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post circuit constraint on x.
Simple test for Hamiltonian path constraint.
Base class for assignments
virtual bool solution(const Assignment &x) const
Check whether x is solution.
virtual bool solution(const Assignment &x) const
Check whether x is solution.
void path(Home home, int offset, const IntVarArgs &x, IntVar s, IntVar e, IntPropLevel ipl)
Post propagator such that x forms a Hamiltonian path.
virtual bool solution(const Assignment &x) const
Check whether x is solution.
int n
Number of negative literals for node type.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post circuit constraint on x.
Passing integer arguments.
virtual bool solution(const Assignment &x) const
Check whether x is solution.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post path constraint on x.
const FloatNum max
Largest allowed float value.
static std::string str(Gecode::IntPropLevel ipl)
Map integer propagation level to string.