44 namespace Test {
namespace Float {
62 :
Test(
"Rel::Float::Var::XY::"+
str(frt0)+
"::"+
str(n),
68 return cmp(x[0],frt,x[1]);
81 rel(home, x[0], frt, x[1]);
85 rel(home, y, frt, x[2]);
91 assert(x.
size() == 2);
104 :
Test(
"Rel::Float::Var::XX::"+
str(frt0),
109 return cmp(x[0],frt,x[0]);
133 :
Test(
"Rel::Float::Float::"+
str(frt0)+
"::"+
str(n)+
"::"+
str(c0),
139 return cmp(x[0],frt,c);
141 return cmp(x[0],frt,c) &
cmp(x[1],frt,c);
148 rel(home, x[0], frt, c);
150 rel(home, x, frt, c);
155 assert(x.
size() == 1);
171 for (
int c=-4;
c<=4;
c++) {
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x, Gecode::Reify r)
Post reified constraint on x for r.
virtual MaybeType solution(const Assignment &x) const
Test whether x is solution
Gecode::FloatNum step
Step for going to next solution.
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x, Gecode::Reify r)
Post reified constraint on x for r.
Create(void)
Perform creation and registration.
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x)
Post constraint on x.
Help class to create and register tests.
Test for simple relation involving float variables
Gecode::FloatVal c
Float constant.
static MaybeType cmp(Gecode::FloatVal x, Gecode::FloatRelType r, Gecode::FloatVal y)
Compare x and y with respect to r.
FloatVarXX(Gecode::FloatRelType frt0, Gecode::FloatNum st)
Create and register test.
static std::string str(Gecode::FloatRelType frt)
Map float relation to string.
Gecode::FloatRelType frt
Float relation type to propagate.
Iterator for float relation types.
int n
Number of negative literals for node type.
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x)
Post constraint on x.
void rel(Home home, IntVar x, SetRelType rt, SetVar s, Reify r)
Post propagator for .
FloatRelType
Relation types for floats.
Reification specification.
Test for simple relation involving shared float variables
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x, Gecode::Reify r)
Post reified constraint on x for r.
FloatFloat(Gecode::FloatRelType frt0, int n, Gecode::FloatNum c0, Gecode::FloatNum st)
Create and register test.
int size(void) const
Return size of array (number of elements)
virtual MaybeType solution(const Assignment &x) const
Test whether x is solution
FloatVarXY(Gecode::FloatRelType frt0, int n, Gecode::FloatNum st)
Create and register test.
Node * x
Pointer to corresponding Boolean expression node.
MaybeType
Type for comparisons and solutions.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
Gecode::FloatRelType frt
Float relation type to propagate.
int size(void) const
Return number of variables.
virtual MaybeType solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x)
Post constraint on x.
Gecode toplevel namespace
double FloatNum
Floating point number base type.
Test for simple relation involving float variable and float constant
Base class for assignments
Gecode::FloatRelType frt
Float relation type to propagate.