42 #ifndef __GECODE_TEST_FLOAT_HH__
43 #define __GECODE_TEST_FLOAT_HH__
100 int size(
void)
const;
264 bool eqv(
void)
const;
267 bool imp(
void)
const;
269 bool pmi(
void)
const;
289 Test(
const std::string& s,
int a,
311 virtual bool run(
void);
static MaybeType eq(Gecode::FloatVal x, Gecode::FloatVal y)
Whether x and y are equal.
bool subsumed(const TestSpace &ts) const
Test if ts is subsumed or not (i.e. if there is no more propagator unless the assignment is an extend...
Gecode::FloatNum step
Step for going to next solution.
virtual ~RandomAssignment(void)
Destructor.
virtual Gecode::FloatVal operator[](int i) const
Return value for variable i.
AssignmentType
Assignment possible types.
bool operator()(void) const
Test whether iterator is done.
void reset(void)
Reset iterator.
const FloatNum max
Largest allowed float value.
virtual bool operator()(void) const
Test whether all assignments have been iterated.
Test(const std::string &s, int a, const Gecode::FloatVal &d, Gecode::FloatNum st, AssignmentType at, bool r)
Constructor.
Gecode::FloatNum step
Step for next assignment.
void prune(void)
Prune some random values for some random variable.
virtual void set(int i, const Gecode::FloatVal &val)
Set assignment to value val for variable i.
ExtAssignment(int n, const Gecode::FloatVal &d, Gecode::FloatNum s, const Test *pb)
Initialize assignments for n variables and values d with step s.
bool testfix
Whether to perform fixpoint test.
static MaybeType cmp(Gecode::FloatVal x, Gecode::FloatRelType r, Gecode::FloatVal y)
Compare x and y with respect to r.
virtual bool operator()(void) const
Test whether all assignments have been iterated.
bool testsubsumed
Whether to test for subsumption.
int n
Number of variables.
static std::string str(Gecode::FloatRelType frt)
Map float relation to string.
void post(void)
Post propagator.
void bound(void)
Assing a random variable to a random bound.
bool pmi(void) const
Test whether reverse implication as reification mode is supported.
Gecode::FloatRelType frt(void) const
Return current relation type.
virtual void operator++(void)
Move to next assignment.
FloatRelTypes(void)
Initialize iterator.
int a
How many assigments still to be generated Generate new value according to domain. ...
bool imp(void) const
Test whether implication as reification mode is supported.
Test * test
The test currently run.
virtual void set(int i, const Gecode::FloatVal &val)=0
Set assignment to value val for variable i.
virtual MaybeType solution(const Assignment &) const =0
Check for solution.
const FloatNum min
Smallest allowed float value.
Iterator for float relation types.
Gecode::IntArgs i(4, 1, 2, 3, 4)
virtual ~Assignment(void)
Destructor.
CpltAssignment(int n, const Gecode::FloatVal &d, Gecode::FloatNum s)
Initialize assignments for n variables and values d with step s.
Gecode::FloatNum randval(void)
int n
Number of negative literals for node type.
Generate all assignments except the last variable and complete it to get a solution.
TestSpace(int n, Gecode::FloatVal &d, Gecode::FloatNum s, Test *t)
Create test space.
FloatRelType
Relation types for floats.
RandomAssignment(int n, const Gecode::FloatVal &d, int a)
Initialize for a assignments for n variables and values d.
bool assigned(void) const
Test whether all variables are assigned.
const Test * curPb
Current problem used to complete assignment.
virtual void dropUntil(const Assignment &a)
Add constraints to skip solutions to the a assignment.
Reification specification.
virtual bool ignore(const Assignment &a) const
Whether to ignore assignment for reification.
Base class for all tests to be run
bool testsearch
Whether to perform search test.
virtual void operator++(void)
Move to next assignment.
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x)=0
Post constraint.
Generate random selection of assignments.
Gecode::Reify r
Reification information.
virtual void operator++(void)=0
Move to next assignment.
virtual ~ExtAssignment(void)
Destructor.
Gecode::FloatVarArray x
Variables to be tested.
Gecode::FloatVal d
Initial domain.
virtual Gecode::FloatVal operator[](int i) const
Return value for variable i.
virtual bool extendAssignement(Assignment &a) const
Complete the current assignment to get a feasible one (which satisfies all constraint). If such an assignment is computed, it returns true, false otherwise.
void operator++(void)
Increment to next relation type.
virtual Gecode::FloatVal operator[](int i) const =0
Return value for variable i.
void assign(const Assignment &a, MaybeType &sol, bool skip=false)
Assign all (or all but one, if skip is true) variables to values in a If assignment of a variable is ...
Node * x
Pointer to corresponding Boolean expression node.
Gecode::FloatVal d
Domain for each variable.
Gecode::FloatVal dom
Domain of variables.
AssignmentType assigmentType
Gives the type of assignment to use.
virtual Assignment * assignment(void) const
Create assignment.
MaybeType
Type for comparisons and solutions.
bool matchAssignment(const Assignment &a) const
Test whether all variables match assignment a.
Space for executing tests.
Gecode::FloatVal * dsv
Iterator for each variable.
MaybeType operator&(MaybeType a, MaybeType b)
Three-valued conjunction of MaybeType.
int size(void) const
Return number of variables.
Gecode::FloatVal * vals
The current values for the variables.
virtual void set(int i, const Gecode::FloatVal &val)
Set assignment to value val for variable i.
virtual bool run(void)
Perform test.
virtual Gecode::FloatVal operator[](int i) const
Return value for variable i.
virtual bool operator()(void) const
Test whether all assignments have been iterated.
struct Gecode::@518::NNF::@57::@58 b
For binary nodes (and, or, eqv)
int arity
Number of variables.
std::basic_ostream< Char, Traits > & operator<<(std::basic_ostream< Char, Traits > &os, const FloatView &x)
Print float variable view.
bool failed(void)
Compute a fixpoint and check for failure.
virtual void operator++(void)
Move to next assignment.
Gecode::FloatVal * dsv
Iterator for each variable.
bool reified
Does the constraint also exist as reified constraint.
Generate all assignments.
double FloatNum
Floating point number base type.
ReifyMode
Mode for reification.
Gecode::FloatNum cut(int *cutDirections)
Cut the bigger variable to an half sized interval. It returns the new size of the cut interval...
void rel(int i, Gecode::FloatRelType frt, Gecode::FloatVal n)
Perform integer tell operation on x[i].
virtual void set(int i, const Gecode::FloatVal &val)
Set assignment to value val for variable i.
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.
Gecode::FloatNum step
Step for going to next solution.
Gecode::FloatNum step
Step for next assignment.
virtual ~CpltAssignment(void)
Destructor.
int rms
Which reification modes are supported.
bool reified
Whether the test is for a reified propagator.
bool eqv(void) const
Test whether equivalence as reification mode is supported.
Assignment(int n0, const Gecode::FloatVal &d0)
Initialize assignments for n0 variables and values d0.
virtual Gecode::Space * copy(bool share)
Copy space during cloning.
bool flip(void)
Flip a coin and return true or false randomly.
Base class for assignments
virtual bool operator()(void) const =0
Test whether all assignments have been iterated.