Base class for tests with float constraints More...
#include <float.hh>
Protected Attributes | |
int | arity |
Number of variables. | |
Gecode::FloatVal | dom |
Domain of variables. | |
Gecode::FloatNum | step |
Step for going to next solution. | |
AssignmentType | assigmentType |
Gives the type of assignment to use. | |
bool | reified |
Does the constraint also exist as reified constraint. | |
int | rms |
Which reification modes are supported. | |
bool | testsearch |
Whether to perform search test. | |
bool | testfix |
Whether to perform fixpoint test. | |
bool | testsubsumed |
Whether to test for subsumption. |
Test for reification modes | |
bool | eqv (void) const |
Test whether equivalence as reification mode is supported. | |
bool | imp (void) const |
Test whether implication as reification mode is supported. | |
bool | pmi (void) const |
Test whether reverse implication as reification mode is supported. | |
Test (const std::string &s, int a, const Gecode::FloatVal &d, Gecode::FloatNum st, AssignmentType at, bool r) | |
Constructor. | |
Test (const std::string &s, int a, Gecode::FloatNum min, Gecode::FloatNum max, Gecode::FloatNum st, AssignmentType at, bool r) | |
Constructor. | |
virtual Assignment * | assignment (void) const |
Create assignment. | |
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. | |
virtual MaybeType | solution (const Assignment &) const =0 |
Check for solution. | |
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 extended assigment. | |
virtual bool | ignore (const Assignment &a) const |
Whether to ignore assignment for reification. | |
virtual void | post (Gecode::Space &home, Gecode::FloatVarArray &x)=0 |
Post constraint. | |
virtual void | post (Gecode::Space &home, Gecode::FloatVarArray &x, Gecode::Reify r) |
Post reified constraint. | |
virtual bool | run (void) |
Perform test. |
General support | |
bool | flip (void) |
Flip a coin and return true or false randomly. | |
static MaybeType | cmp (Gecode::FloatVal x, Gecode::FloatRelType r, Gecode::FloatVal y) |
Compare x and y with respect to r. | |
static MaybeType | eq (Gecode::FloatVal x, Gecode::FloatVal y) |
Whether x and y are equal. |
Mapping scalar values to strings | |
static std::string | str (Gecode::FloatRelType frt) |
Map float relation to string. | |
static std::string | str (Gecode::FloatNum f) |
Map floatNum to string. | |
static std::string | str (Gecode::FloatVal f) |
Map floatVal to string. | |
static std::string | str (const Gecode::FloatValArgs &f) |
Map float array to string. |
Additional Inherited Members | |
Public Member Functions inherited from Test::Base | |
Base (const std::string &s) | |
Create and register test with name s. | |
const std::string & | name (void) const |
Return name of test. | |
Base * | next (void) const |
Return next test. | |
void | next (Base *n) |
Set next test. | |
virtual | ~Base (void) |
Destructor. | |
Static Public Member Functions inherited from Test::Base | |
static void | sort (void) |
Sort tests alphabetically. | |
static Base * | tests (void) |
Return all tests. | |
static bool | fixpoint (void) |
Throw a coin whether to compute a fixpoint. | |
Static Public Attributes inherited from Test::Base | |
static Gecode::Support::RandomGenerator | rand = Gecode::Support::RandomGenerator() |
Random number generator. | |
Related Symbols inherited from Test::Base | |
int | main (int argc, char *argv[]) |
Main function. |
|
inline |
|
inline |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
virtual |
|
virtual |
Complete the current assignment to get a feasible one (which satisfies all constraint). If such an assignment is computed, it returns true, false otherwise.
Reimplemented in Test::Float::Arithmetic::DivSol, Test::Float::Arithmetic::MultXXYSol, Test::Float::Arithmetic::MultXYZSol, Test::Float::Arithmetic::NRootXYSol, Test::Float::Arithmetic::PowXYSol, Test::Float::Arithmetic::SqrtXYSol, Test::Float::Arithmetic::SqrXYSol, Test::Float::Transcendental::ExpXYSol, Test::Float::Transcendental::LogNXYSol, Test::Float::Transcendental::LogXYSol, Test::Float::Transcendental::PowXYSol, Test::Float::Trigonometric::ACosXYSol, Test::Float::Trigonometric::ASinXYSol, Test::Float::Trigonometric::ATanXYSol, Test::Float::Trigonometric::CosXYSol, Test::Float::Trigonometric::SinXYSol, and Test::Float::Trigonometric::TanXYSol.
|
pure virtual |
Check for solution.
Implemented in Test::Float::Arithmetic::AbsXX, Test::Float::Arithmetic::AbsXY, Test::Float::Arithmetic::Div, Test::Float::Arithmetic::DivSol, Test::Float::Arithmetic::MaxNary, Test::Float::Arithmetic::MaxNaryShared, Test::Float::Arithmetic::MaxXXX, Test::Float::Arithmetic::MaxXXY, Test::Float::Arithmetic::MaxXYX, Test::Float::Arithmetic::MaxXYY, Test::Float::Arithmetic::MaxXYZ, Test::Float::Arithmetic::MinNary, Test::Float::Arithmetic::MinNaryShared, Test::Float::Arithmetic::MinXXX, Test::Float::Arithmetic::MinXXY, Test::Float::Arithmetic::MinXYX, Test::Float::Arithmetic::MinXYY, Test::Float::Arithmetic::MinXYZ, Test::Float::Arithmetic::MultXXX, Test::Float::Arithmetic::MultXXY, Test::Float::Arithmetic::MultXXYSol, Test::Float::Arithmetic::MultXYX, Test::Float::Arithmetic::MultXYY, Test::Float::Arithmetic::MultXYZ, Test::Float::Arithmetic::MultXYZSol, Test::Float::Arithmetic::NRootXX, Test::Float::Arithmetic::NRootXY, Test::Float::Arithmetic::NRootXYSol, Test::Float::Arithmetic::PowXX, Test::Float::Arithmetic::PowXY, Test::Float::Arithmetic::PowXYSol, Test::Float::Arithmetic::SqrtXX, Test::Float::Arithmetic::SqrtXY, Test::Float::Arithmetic::SqrtXYSol, Test::Float::Arithmetic::SqrXX, Test::Float::Arithmetic::SqrXY, Test::Float::Arithmetic::SqrXYSol, Test::Float::Basic::Basic, Test::Float::Channel::Bool, Test::Float::Channel::Int, Test::Float::Dom::Num, Test::Float::Dom::Val, Test::Float::Linear::FloatFloat, Test::Float::Linear::FloatVar, Test::Float::Rel::FloatFloat, Test::Float::Rel::FloatVarXX, Test::Float::Rel::FloatVarXY, Test::Float::Transcendental::ExpXX, Test::Float::Transcendental::ExpXY, Test::Float::Transcendental::ExpXYSol, Test::Float::Transcendental::LogNXX, Test::Float::Transcendental::LogNXY, Test::Float::Transcendental::LogNXYSol, Test::Float::Transcendental::LogXX, Test::Float::Transcendental::LogXY, Test::Float::Transcendental::LogXYSol, Test::Float::Transcendental::PowXX, Test::Float::Transcendental::PowXY, Test::Float::Transcendental::PowXYSol, Test::Float::Trigonometric::ACosXX, Test::Float::Trigonometric::ACosXY, Test::Float::Trigonometric::ACosXYSol, Test::Float::Trigonometric::ASinXX, Test::Float::Trigonometric::ASinXY, Test::Float::Trigonometric::ASinXYSol, Test::Float::Trigonometric::ATanXX, Test::Float::Trigonometric::ATanXY, Test::Float::Trigonometric::ATanXYSol, Test::Float::Trigonometric::CosXX, Test::Float::Trigonometric::CosXY, Test::Float::Trigonometric::CosXYSol, Test::Float::Trigonometric::SinXX, Test::Float::Trigonometric::SinXY, Test::Float::Trigonometric::SinXYSol, Test::Float::Trigonometric::TanXX, Test::Float::Trigonometric::TanXY, and Test::Float::Trigonometric::TanXYSol.
bool Test::Float::Test::subsumed | ( | const TestSpace & | ts | ) | const |
|
virtual |
|
pure virtual |
Post constraint.
Implemented in Test::Float::Arithmetic::AbsXX, Test::Float::Arithmetic::AbsXY, Test::Float::Arithmetic::Div, Test::Float::Arithmetic::DivSol, Test::Float::Arithmetic::MaxNary, Test::Float::Arithmetic::MaxNaryShared, Test::Float::Arithmetic::MaxXXX, Test::Float::Arithmetic::MaxXXY, Test::Float::Arithmetic::MaxXYX, Test::Float::Arithmetic::MaxXYY, Test::Float::Arithmetic::MaxXYZ, Test::Float::Arithmetic::MinNary, Test::Float::Arithmetic::MinNaryShared, Test::Float::Arithmetic::MinXXX, Test::Float::Arithmetic::MinXXY, Test::Float::Arithmetic::MinXYX, Test::Float::Arithmetic::MinXYY, Test::Float::Arithmetic::MinXYZ, Test::Float::Arithmetic::MultXXX, Test::Float::Arithmetic::MultXXY, Test::Float::Arithmetic::MultXXYSol, Test::Float::Arithmetic::MultXYX, Test::Float::Arithmetic::MultXYY, Test::Float::Arithmetic::MultXYZ, Test::Float::Arithmetic::MultXYZSol, Test::Float::Arithmetic::NRootXX, Test::Float::Arithmetic::NRootXY, Test::Float::Arithmetic::NRootXYSol, Test::Float::Arithmetic::PowXX, Test::Float::Arithmetic::PowXY, Test::Float::Arithmetic::PowXYSol, Test::Float::Arithmetic::SqrtXX, Test::Float::Arithmetic::SqrtXY, Test::Float::Arithmetic::SqrtXYSol, Test::Float::Arithmetic::SqrXX, Test::Float::Arithmetic::SqrXY, Test::Float::Arithmetic::SqrXYSol, Test::Float::Basic::Basic, Test::Float::Channel::Bool, Test::Float::Channel::Int, Test::Float::Dom::Num, Test::Float::Dom::Val, Test::Float::Linear::FloatFloat, Test::Float::Linear::FloatVar, Test::Float::Rel::FloatFloat, Test::Float::Rel::FloatVarXX, Test::Float::Rel::FloatVarXY, Test::Float::Transcendental::ExpXX, Test::Float::Transcendental::ExpXY, Test::Float::Transcendental::ExpXYSol, Test::Float::Transcendental::LogNXX, Test::Float::Transcendental::LogNXY, Test::Float::Transcendental::LogNXYSol, Test::Float::Transcendental::LogXX, Test::Float::Transcendental::LogXY, Test::Float::Transcendental::LogXYSol, Test::Float::Transcendental::PowXX, Test::Float::Transcendental::PowXY, Test::Float::Transcendental::PowXYSol, Test::Float::Trigonometric::ACosXX, Test::Float::Trigonometric::ACosXY, Test::Float::Trigonometric::ACosXYSol, Test::Float::Trigonometric::ASinXX, Test::Float::Trigonometric::ASinXY, Test::Float::Trigonometric::ASinXYSol, Test::Float::Trigonometric::ATanXX, Test::Float::Trigonometric::ATanXY, Test::Float::Trigonometric::ATanXYSol, Test::Float::Trigonometric::CosXX, Test::Float::Trigonometric::CosXY, Test::Float::Trigonometric::CosXYSol, Test::Float::Trigonometric::SinXX, Test::Float::Trigonometric::SinXY, Test::Float::Trigonometric::SinXYSol, Test::Float::Trigonometric::TanXX, Test::Float::Trigonometric::TanXY, and Test::Float::Trigonometric::TanXYSol.
|
virtual |
Post reified constraint.
Reimplemented in Test::Float::Basic::Basic, Test::Float::Dom::Num, Test::Float::Dom::Val, Test::Float::Linear::FloatFloat, Test::Float::Linear::FloatVar, Test::Float::Rel::FloatFloat, Test::Float::Rel::FloatVarXX, and Test::Float::Rel::FloatVarXY.
|
virtual |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |