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.
No-good literal recorded during search.
Value branching information.
ValCommit(Space &home, const ValBranch< Var > &vb)
Gecode toplevel namespace
Post propagator for SetVar x
int ModEvent
Type for modification events.