50 if ((a == 0) == nl.
l) {
51 if ((x.
min() == nl.
n) || (x.
max() == nl.
n))
52 return x.
eq(home,x.
min());
54 return x.
lq(home,nl.
n);
56 if ((x.
min() == nl.
n) || (x.
max() == nl.
n))
57 return x.
eq(home,x.
max());
59 return x.
gq(home,nl.
n);
69 std::ostream& o)
const {
70 o <<
"var[" << i <<
"] "
71 << (((a == 0) == nl.
l) ?
"<=" :
">=") <<
"(" << nl.
n <<
")";
Value description class for branching.
bool l
Whether to try the lower or upper half first.
FloatNum n
The middle value for branching.
NGL * ngl(Space &home, unsigned int a, FloatView x, FloatNumBranch n) const
Create no-good literal for alternative a.
ModEvent commit(Space &home, unsigned int a, FloatView x, int i, FloatNumBranch n)
Commit view x at position i to value n for alternative a.
void print(const Space &home, unsigned int a, FloatView x, int i, FloatNumBranch n, std::ostream &o) const
Print on o the alternative with view x at position i and value n.
ValCommitLqGq(Space &home, const ValBranch< Var > &vb)
Constructor for initialization.
Float view for float variables.
FloatNum max(void) const
Return maximum of domain.
ModEvent eq(Space &home, int n)
Restrict domain values to be equal to n.
ModEvent lq(Space &home, int n)
Restrict domain values to be less or equal than n.
FloatNum min(void) const
Return minimum of domain.
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
No-good literal recorded during search.
Value branching information.
ValCommit(Space &home, const ValBranch< Var > &vb)
Gecode toplevel namespace
int ModEvent
Type for modification events.