Test::Float::Test Class Referenceabstract

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.

## Detailed Description

Base class for tests with float constraints

Definition at line 244 of file float.hh.

## Constructor & Destructor Documentation

## Test() [1/2]

Test::Float::Test::Test | ( | const std::string & | s,
|  | int | a,
|  | const Gecode::FloatVal & | d,
|  | Gecode::FloatNum | st,
|  | AssignmentType | at,
|  | bool | r )

inline

Constructor.

Constructs a test with name s and arity a and variable domain d and step st and assignment type at. Also tests for a reified constraint, if r is true.

Definition at line 172 of file float.hpp.

## Test() [2/2]

Test::Float::Test::Test | ( | const std::string & | s,
|  | int | a,
|  | Gecode::FloatNum | min,
|  | Gecode::FloatNum | max,
|  | Gecode::FloatNum | st,
|  | AssignmentType | at,
|  | bool | r )

inline

Constructor.

Constructs a test with name s and arity a and variable domain min ... max and step st and assignment type at. Also tests for a reified constraint, if r is true.

Definition at line 182 of file float.hpp.

## Member Function Documentation

## eqv()

bool Test::Float::Test::eqv | ( | void |  | ) | const

inline protected

Test whether equivalence as reification mode is supported.

Definition at line 160 of file float.hpp.

## imp()

bool Test::Float::Test::imp | ( | void |  | ) | const

inline protected

Test whether implication as reification mode is supported.

Definition at line 164 of file float.hpp.

## pmi()

bool Test::Float::Test::pmi | ( | void |  | ) | const

inline protected

Test whether reverse implication as reification mode is supported.

Definition at line 168 of file float.hpp.

## assignment()

Assignment * Test::Float::Test::assignment | ( | void |  | ) | const

virtual

Create assignment.

Definition at line 420 of file float.cpp.

## extendAssignement()

bool Test::Float::Test::extendAssignement | ( | Assignment & | a | ) | const

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.

Definition at line 435 of file float.cpp.

## solution()

virtual MaybeType Test::Float::Test::solution | ( | const Assignment & |  | ) | const

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.

## subsumed()

bool Test::Float::Test::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.

Definition at line 441 of file float.cpp.

## ignore()

bool Test::Float::Test::ignore | ( | const Assignment & | a | ) | const

virtual

Whether to ignore assignment for reification.

Definition at line 465 of file float.cpp.

## post() [1/2]

virtual void Test::Float::Test::post | ( | Gecode::Space & | home,
|  | Gecode::FloatVarArray & | x )

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.

## post() [2/2]

void Test::Float::Test::post | ( | Gecode::Space & | home,
|  | Gecode::FloatVarArray & | x,
|  | Gecode::Reify | r )

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.

Definition at line 470 of file float.cpp.

## run()

bool Test::Float::Test::run | ( | void |  | ) |

virtual

Perform test.

Implements Test::Base.

Definition at line 474 of file float.cpp.

## str() [1/4]

std::string Test::Float::Test::str | ( | Gecode::FloatRelType | frt | ) |

inline static

Map float relation to string.

Definition at line 194 of file float.hpp.

## str() [2/4]

std::string Test::Float::Test::str | ( | Gecode::FloatNum | f | ) |

inline static

Map floatNum to string.

Definition at line 211 of file float.hpp.

## str() [3/4]

std::string Test::Float::Test::str | ( | Gecode::FloatVal | f | ) |

inline static

Map floatVal to string.

Definition at line 219 of file float.hpp.

## str() [4/4]

std::string Test::Float::Test::str | ( | const Gecode::FloatValArgs & | f | ) |

inline static

Map float array to string.

Definition at line 227 of file float.hpp.

## cmp()

MaybeType Test::Float::Test::cmp | ( | Gecode::FloatVal | x,
|  | Gecode::FloatRelType | r,
|  | Gecode::FloatVal | y )

inline static

Compare x and y with respect to r.

Definition at line 235 of file float.hpp.

## eq()

MaybeType Test::Float::Test::eq | ( | Gecode::FloatVal | x,
|  | Gecode::FloatVal | y )

inline static

Whether x and y are equal.

Definition at line 268 of file float.hpp.

## flip()

bool Test::Float::Test::flip | ( | void |  | ) |

inline

Flip a coin and return true or false randomly.

Definition at line 273 of file float.hpp.

## Member Data Documentation

## arity

int Test::Float::Test::arity

protected

Number of variables.

Definition at line 247 of file float.hh.

## dom

Gecode::FloatVal Test::Float::Test::dom

protected

Domain of variables.

Definition at line 249 of file float.hh.

## step

Gecode::FloatNum Test::Float::Test::step

protected

Step for going to next solution.

Definition at line 251 of file float.hh.

## assigmentType

AssignmentType Test::Float::Test::assigmentType

protected

Gives the type of assignment to use.

Definition at line 253 of file float.hh.

## reified

bool Test::Float::Test::reified

protected

Does the constraint also exist as reified constraint.

Definition at line 255 of file float.hh.

## rms

int Test::Float::Test::rms

protected

Which reification modes are supported.

Definition at line 257 of file float.hh.

## testsearch

bool Test::Float::Test::testsearch

protected

Whether to perform search test.

Definition at line 259 of file float.hh.

## testfix

bool Test::Float::Test::testfix

protected

Whether to perform fixpoint test.

Definition at line 261 of file float.hh.

## testsubsumed

bool Test::Float::Test::testsubsumed

protected

Whether to test for subsumption.

Definition at line 263 of file float.hh.

The documentation for this class was generated from the following files:

- test/float.hh
- test/float.cpp
- test/float.hpp