Go to the documentation of this file.
45 namespace Test {
namespace Int {
48 namespace Arithmetic {
64 double d0 =
static_cast<double>(
x[0]);
65 double d1 =
static_cast<double>(
x[1]);
66 double d2 =
static_cast<double>(
x[2]);
84 double d0 =
static_cast<double>(
x[0]);
85 double d1 =
static_cast<double>(
x[0]);
86 double d2 =
static_cast<double>(
x[1]);
101 :
Test(
"Arithmetic::Mult::XYX::"+
str(
ipl)+
"::"+s,2,
d,false,
ipl) {}
104 double d0 =
static_cast<double>(
x[0]);
105 double d1 =
static_cast<double>(
x[1]);
106 double d2 =
static_cast<double>(
x[0]);
121 :
Test(
"Arithmetic::Mult::XYY::"+
str(
ipl)+
"::"+s,2,
d,false,
ipl) {}
124 double d0 =
static_cast<double>(
x[0]);
125 double d1 =
static_cast<double>(
x[1]);
126 double d2 =
static_cast<double>(
x[1]);
141 :
Test(
"Arithmetic::Mult::XXX::"+
str(
ipl)+
"::"+s,1,
d,false,
ipl) {}
144 double d0 =
static_cast<double>(
x[0]);
145 double d1 =
static_cast<double>(
x[0]);
146 double d2 =
static_cast<double>(
x[0]);
164 double d0 =
static_cast<double>(
x[0]);
165 double d1 =
static_cast<double>(
x[1]);
183 double d0 =
static_cast<double>(
x[0]);
201 double d0 =
static_cast<double>(
x[0]);
202 double d1 =
static_cast<double>(
x[1]);
203 return (d0 >= 0) && (d0 >=
d1*
d1) && (d0 < (
d1+1)*(
d1+1));
220 double d0 =
static_cast<double>(
x[0]);
221 return (d0 >= 0) && (d0 >= d0*d0) && (d0 < (d0+1)*(d0+1));
239 2,
d,false,
ipl),
n(n0) {}
243 for (
int i=0;
i<
n;
i++) {
271 1,
d,false,
ipl),
n(n0) {}
275 for (
int i=0;
i<
n;
i++) {
310 long long int m = (
l +
u) >> 1;
313 return static_cast<int>(
l);
338 long long int m = (
l +
u) >> 1;
341 return static_cast<int>(
u);
354 :
Test(
"Arithmetic::Nroot::XY::"+
str(n0)+
"::"+
str(
ipl)+
"::"+s,
355 2,
d,false,
ipl),
n(n0) {}
360 if ((
n % 2 == 0) && ((
x[0] < 0) || (
x[1] < 0)))
384 :
Test(
"Arithmetic::Nroot::XX::"+
str(n0)+
"::"+
str(
ipl)+
"::"+s,
385 1,
d,false,
ipl),
n(n0) {}
391 return (
x[0] >= 0) && (
x[0] <= 1);
393 return (
x[0] >= -2) && (
x[0] <= 1);
406 static int abs(
int a) {
return a<0 ? -
a:
a; }
408 static int sgn(
int a) {
return a<0 ? -1:1; }
412 :
Test(
"Arithmetic::DivMod::"+s,4,
d) {}
415 return x[0] ==
x[1]*
x[2]+
x[3] &&
417 (
x[3] == 0 || sgn(
x[3]) == sgn(
x[0]));
430 :
Test(
"Arithmetic::Div::"+s,3,
d) {}
435 int divsign = (
x[0] /
x[1] < 0) ? -1 : 1;
438 static_cast<int>(floor(
static_cast<double>(
std::abs(
x[0]))/
440 return x[2] == divresult;
453 :
Test(
"Arithmetic::Mod::"+s,3,
d) {}
458 int divsign = (
x[0] /
x[1] < 0) ? -1 : 1;
461 static_cast<int>(floor(
static_cast<double>(
std::abs(
x[0]))/
463 return x[0] ==
x[1]*divresult+
x[2];
480 double d0 =
static_cast<double>(
x[0]);
481 double d1 =
static_cast<double>(
x[1]);
482 return (d0<0 ? -d0 : d0) ==
d1;
499 double d0 =
static_cast<double>(
x[0]);
500 double d1 =
static_cast<double>(
x[0]);
501 return (d0<0 ? -d0 : d0) ==
d1;
515 :
Test(
"Arithmetic::Min::Bin::XYZ::"+
str(
ipl)+
"::"+s,3,
d,false,
ipl) {}
532 :
Test(
"Arithmetic::Min::Bin::XYX::"+
str(
ipl)+
"::"+s,2,
d) {}
549 :
Test(
"Arithmetic::Min::Bin::XYX::"+
str(
ipl)+
"::"+s,2,
d) {}
566 :
Test(
"Arithmetic::Min::Bin::XYY::"+
str(
ipl)+
"::"+s,2,
d) {}
583 :
Test(
"Arithmetic::Min::Bin::XXX::"+
str(
ipl)+
"::"+s,1,
d) {}
600 :
Test(
"Arithmetic::Max::Bin::XYZ::"+
str(
ipl)+
"::"+s,3,
d) {
619 :
Test(
"Arithmetic::Max::Bin::XXY::"+
str(
ipl)+
"::"+s,2,
d) {}
636 :
Test(
"Arithmetic::Max::Bin::XYX::"+
str(
ipl)+
"::"+s,2,
d) {}
653 :
Test(
"Arithmetic::Max::Bin::XYY::"+
str(
ipl)+
"::"+s,2,
d) {}
670 :
Test(
"Arithmetic::Max::Bin::XXX::"+
str(
ipl)+
"::"+s,1,
d) {}
686 :
Test(
"Arithmetic::Min::Nary::"+
str(
ipl),4,-4,4,false,
ipl) {}
694 m[0]=
x[0]; m[1]=
x[1]; m[2]=
x[2];
704 :
Test(
"Arithmetic::Min::Nary::Shared::"+
str(
ipl),3,-4,4,false,
ipl) {}
712 m[0]=
x[0]; m[1]=
x[1]; m[2]=
x[2];
722 :
Test(
"Arithmetic::Max::Nary::"+
str(
ipl),4,-4,4,false,
ipl) {}
730 m[0]=
x[0]; m[1]=
x[1]; m[2]=
x[2];
740 :
Test(
"Arithmetic::Max::Nary::Shared::"+
str(
ipl),3,-4,4,false,
ipl) {}
748 m[0]=
x[0]; m[1]=
x[1]; m[2]=
x[2];
770 if ((
x[
n] < offset) || (
x[
n] >=
n + offset))
773 for (
int i=1;
i<
n;
i++)
783 for (
int i=0;
i<
n;
i++)
797 :
Test(
"Arithmetic::ArgMax::Shared::"+
str(tb)+
"::"+
str(
n),
n+1,0,
n+1,
805 if ((
x[
n] < 0) || (
x[
n] >= 2*
n))
808 for (
int i=0;
i<
n;
i++)
811 for (
int i=1;
i<2*
n;
i++)
821 for (
int i=0;
i<
n;
i++)
822 m[2*
i+0]=m[2*
i+1]=
x[
i];
844 if ((
x[
n] < offset) || (
x[
n] >=
n + offset))
847 for (
int i=1;
i<
n;
i++)
857 for (
int i=0;
i<
n;
i++)
871 :
Test(
"Arithmetic::ArgMin::Shared::"+
str(tb)+
"::"+
str(
n),
n+1,0,
n+1,
879 if ((
x[
n] < 0) || (
x[
n] >= 2*
n))
882 for (
int i=0;
i<
n;
i++)
885 for (
int i=1;
i<2*
n;
i++)
895 for (
int i=0;
i<
n;
i++)
896 m[2*
i+0]=m[2*
i+1]=
x[
i];
915 static_cast<int>(-
sqrt(
static_cast<double>
918 static_cast<int>(
sqrt(
static_cast<double>
931 (void)
new Div(
"A",
a);
932 (void)
new Div(
"B",
b);
933 (void)
new Div(
"C",
c);
935 (void)
new Mod(
"A",
a);
936 (void)
new Mod(
"B",
b);
937 (void)
new Mod(
"C",
c);
941 (void)
new AbsXY(
"A",
a,ipls.ipl());
942 (void)
new AbsXY(
"B",
b,ipls.ipl());
943 (void)
new AbsXY(
"C",
c,ipls.ipl());
945 (void)
new AbsXX(
"A",
a,ipls.ipl());
946 (void)
new AbsXX(
"B",
b,ipls.ipl());
947 (void)
new AbsXX(
"C",
c,ipls.ipl());
949 (void)
new MultXYZ(
"A",
a,ipls.ipl());
950 (void)
new MultXYZ(
"B",
b,ipls.ipl());
951 (void)
new MultXYZ(
"C",
c,ipls.ipl());
953 (void)
new MultXXY(
"A",
a,ipls.ipl());
954 (void)
new MultXXY(
"B",
b,ipls.ipl());
955 (void)
new MultXXY(
"C",
c,ipls.ipl());
957 (void)
new MultXYX(
"A",
a,ipls.ipl());
958 (void)
new MultXYX(
"B",
b,ipls.ipl());
959 (void)
new MultXYX(
"C",
c,ipls.ipl());
961 (void)
new MultXYY(
"A",
a,ipls.ipl());
962 (void)
new MultXYY(
"B",
b,ipls.ipl());
963 (void)
new MultXYY(
"C",
c,ipls.ipl());
965 (void)
new MultXXX(
"A",
a,ipls.ipl());
966 (void)
new MultXXX(
"B",
b,ipls.ipl());
967 (void)
new MultXXX(
"C",
c,ipls.ipl());
969 (void)
new SqrXY(
"A",
a,ipls.ipl());
970 (void)
new SqrXY(
"B",
b,ipls.ipl());
971 (void)
new SqrXY(
"C",
c,ipls.ipl());
973 (void)
new SqrXX(
"A",
a,ipls.ipl());
974 (void)
new SqrXX(
"B",
b,ipls.ipl());
975 (void)
new SqrXX(
"C",
c,ipls.ipl());
977 for (
int n=0;
n<=6;
n++) {
978 (void)
new PowXY(
"A",
n,
a,ipls.ipl());
979 (void)
new PowXY(
"B",
n,
b,ipls.ipl());
980 (void)
new PowXY(
"C",
n,
c,ipls.ipl());
981 (void)
new PowXY(
"D",
n,
d,ipls.ipl());
983 (void)
new PowXX(
"A",
n,
a,ipls.ipl());
984 (void)
new PowXX(
"B",
n,
b,ipls.ipl());
985 (void)
new PowXX(
"C",
n,
c,ipls.ipl());
986 (void)
new PowXX(
"D",
n,
d,ipls.ipl());
989 for (
int n=1;
n<=6;
n++) {
1001 for (
int n=30;
n<=34;
n++) {
1002 (void)
new PowXY(
"C",
n,
c,ipls.ipl());
1003 (void)
new PowXX(
"C",
n,
c,ipls.ipl());
1008 (void)
new SqrtXY(
"A",
a,ipls.ipl());
1009 (void)
new SqrtXY(
"B",
b,ipls.ipl());
1010 (void)
new SqrtXY(
"C",
c,ipls.ipl());
1012 (void)
new SqrtXX(
"A",
a,ipls.ipl());
1013 (void)
new SqrtXX(
"B",
b,ipls.ipl());
1014 (void)
new SqrtXX(
"C",
c,ipls.ipl());
1016 (void)
new MinXYZ(
"A",
a,ipls.ipl());
1017 (void)
new MinXYZ(
"B",
b,ipls.ipl());
1018 (void)
new MinXYZ(
"C",
c,ipls.ipl());
1020 (void)
new MinXXY(
"A",
a,ipls.ipl());
1021 (void)
new MinXXY(
"B",
b,ipls.ipl());
1022 (void)
new MinXXY(
"C",
c,ipls.ipl());
1024 (void)
new MinXYX(
"A",
a,ipls.ipl());
1025 (void)
new MinXYX(
"B",
b,ipls.ipl());
1026 (void)
new MinXYX(
"C",
c,ipls.ipl());
1028 (void)
new MinXYY(
"A",
a,ipls.ipl());
1029 (void)
new MinXYY(
"B",
b,ipls.ipl());
1030 (void)
new MinXYY(
"C",
c,ipls.ipl());
1032 (void)
new MinXXX(
"A",
a,ipls.ipl());
1033 (void)
new MinXXX(
"B",
b,ipls.ipl());
1034 (void)
new MinXXX(
"C",
c,ipls.ipl());
1036 (void)
new MaxXYZ(
"A",
a,ipls.ipl());
1037 (void)
new MaxXYZ(
"B",
b,ipls.ipl());
1038 (void)
new MaxXYZ(
"C",
c,ipls.ipl());
1040 (void)
new MaxXXY(
"A",
a,ipls.ipl());
1041 (void)
new MaxXXY(
"B",
b,ipls.ipl());
1042 (void)
new MaxXXY(
"C",
c,ipls.ipl());
1044 (void)
new MaxXYX(
"A",
a,ipls.ipl());
1045 (void)
new MaxXYX(
"B",
b,ipls.ipl());
1046 (void)
new MaxXYX(
"C",
c,ipls.ipl());
1048 (void)
new MaxXYY(
"A",
a,ipls.ipl());
1049 (void)
new MaxXYY(
"B",
b,ipls.ipl());
1050 (void)
new MaxXYY(
"C",
c,ipls.ipl());
1052 (void)
new MaxXXX(
"A",
a,ipls.ipl());
1053 (void)
new MaxXXX(
"B",
b,ipls.ipl());
1054 (void)
new MaxXXX(
"C",
c,ipls.ipl());
1056 (void)
new MinNary(ipls.ipl());
1058 (void)
new MaxNary(ipls.ipl());
1063 for (
int i=1;
i<5;
i++) {
MinXXY(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
SqrtXY(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test for n-ary minimmum constraint
void pow(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n\geq 0$.
bool tiebreak
Whether to use tie-breaking.
Test for multiplication constraint with shared variables
bool powle(int n, long long int r, int x)
PowXY(const std::string &s, int n0, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Post propagator for SetVar SetOpType SetVar y
Test for division constraint
ConTestLevel contest
Whether to test for certain consistency.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
MaxXYZ(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
MaxXYY(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
void min(Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl)
Post propagator for .
Test for argument maximum constraint
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
DivMod(const std::string &s, const Gecode::IntSet &d)
Create and register test.
Test for binary minimum constraint with shared variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Gecode::IntPropLevel ipl
Propagation level.
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test for absolute value constraint with shared variables
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test for squaring constraint with shared variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Passing integer variables.
BoolVar expr(Home home, const BoolExpr &e, IntPropLevel ipl)
Post Boolean expression and return its value.
void pow(Home home, IntVar x0, int n, IntVar x1, IntPropLevel ipl)
Post propagator for .
void sqr(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
Gecode::IntArgs i(4, 1, 2, 3, 4)
virtual bool solution(const Assignment &x) const
Test whether x is solution
@ CTL_BOUNDS_Z
Test for bounds(z)-consistency.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test for binary maximum constraint with shared variables
Test for binary maximum constraint with shared variables
@ IPL_VAL
Value propagation.
virtual bool solution(const Assignment &x) const
Test whether x is solution
NrootXX(const std::string &s, int n0, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
Test for multiplication constraint with shared variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
IntPropLevel
Propagation levels for integer propagators.
virtual bool solution(const Assignment &x) const
Test whether x is solution
MinXYY(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
Gecode::FloatVal a(-8, 5)
Help class to create and register tests.
Test for nroot constraint
SqrtXX(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
void argmin(Home home, const IntVarArgs &x, IntVar y, bool tiebreak, IntPropLevel)
Post propagator for .
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
union Gecode::@579::NNF::@61 u
Union depending on nodetype t.
MaxNary(Gecode::IntPropLevel ipl)
Create and register test.
bool tiebreak
Whether to use tie-breaking.
MinXXX(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
Test for argument maximum constraint with shared variables
ArgMin(int n, int o, bool tb)
Create and register test.
void div(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Gecode toplevel namespace
PowXX(const std::string &s, int n0, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
Create(void)
Perform creation and registration.
Test for modulo constraint
Test for binary minimum constraint with shared variables
AbsXY(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
bool testfix
Whether to perform fixpoint test.
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
ArgMinShared(int n, bool tb)
Create and register test.
MaxNaryShared(Gecode::IntPropLevel ipl)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test for argument minimum constraint with shared variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
int offset
Offset to be used.
Node * x
Pointer to corresponding Boolean expression node.
Test for binary maximum constraint
void nroot(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n\geq 0$.
Test for n-ary maximum constraint with shared variables
Test for multiplication constraint
virtual bool solution(const Assignment &x) const
Test whether x is solution
Test for absolute value constraint
Test for n-ary maximum constraint
virtual bool solution(const Assignment &x) const
Test whether x is solution
MultXYX(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
Test for squaring constraint
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
void argmax(Home home, const IntVarArgs &x, IntVar y, bool tiebreak, IntPropLevel)
Post propagator for .
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual bool solution(const Assignment &x) const
Test whether x is solution
void sqrt(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
@ IPL_DOM
Domain propagation Preferences: prefer speed or memory.
Test for n-ary minimmum constraint with shared variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
const int max
Largest allowed integer value.
MaxXXY(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
void mult(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
MultXXY(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
Test for binary maximum constraint with shared variables
Iterator for simple integer propagation levels.
Test for power constraint with shared variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
Gecode::FloatVal b(9, 12)
NrootXY(const std::string &s, int n0, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Floor.
MinXYZ(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
ArgMax(int n, int o, bool tb)
Create and register test.
Test for square root constraint with shared variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
void abs(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Div(const std::string &s, const Gecode::IntSet &d)
Create and register test.
Base class for assignments
Test for multiplication constraint with shared variables
void divmod(Home home, IntVar x0, IntVar x1, IntVar x2, IntVar x3, IntPropLevel)
Post propagator for .
MultXXX(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
void abs(Home home, IntVar x0, IntVar x1, IntPropLevel ipl)
Post propagator for .
MinNaryShared(Gecode::IntPropLevel ipl)
Create and register test.
SqrXY(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
@ IPL_DEF
Simple propagation levels.
void mod(Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl)
Post propagator for .
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
Test for binary minimum constraint with shared variables
void nroot(Home home, IntVar x0, int n, IntVar x1, IntPropLevel ipl)
Post propagator for .
Test for binary minimum constraint with shared variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
MinXYX(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
bool powgr(int n, long long int r, int x)
virtual bool solution(const Assignment &x) const
Test whether x is solution
MaxXYX(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
AbsXX(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
MultXYZ(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
virtual bool solution(const Assignment &x) const
Test whether x is solution
int offset
Which offset to use.
void max(Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl)
Post propagator for .
Test for argument minimum constraint
virtual bool solution(const Assignment &x) const
Test whether x is solution
bool tiebreak
Whether to use tie-breaking.
MaxXXX(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
const int min
Smallest allowed integer value.
ArgMaxShared(int n, bool tb)
Create and register test.
Test for division/modulo constraint
Test for square root constraint
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Test for binary maximum constraint with shared variables
MinNary(Gecode::IntPropLevel ipl)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test for multiplication constraint with shared variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
LDSB< TieBreak > tiebreak("TieBreak")
bool tiebreak
Whether to use tie-breaking.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
SqrXX(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
Test for nroot constraint with shared variables
Passing integer arguments.
virtual bool solution(const Assignment &x) const
Test whether x is solution
MultXYY(const std::string &s, const Gecode::IntSet &d, Gecode::IntPropLevel ipl)
Create and register test.
int p
Number of positive literals for node type.
Test for binary minimum constraint
Mod(const std::string &s, const Gecode::IntSet &d)
Create and register test.
Test for power constraint
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
void sqrt(Home home, IntVar x0, IntVar x1, IntPropLevel ipl)
Post propagator for .
static std::string str(Gecode::IntPropLevel ipl)
Map integer propagation level to string.