41 namespace Gecode {
namespace Int {
namespace LDSB {
45 : _variable(-1), _value(-1) {}
49 : _variable(idx), _value(val) {}
55 if (d > 0)
return true;
64 const Val&
n,
const Literal* literals,
66 :
PosValChoice<Val>(b,a,p,n), _literals(literals), _nliterals(nliterals)
93 for (
int i = 0 ;
i < _nliterals ;
i++) {
94 e << _literals[
i]._variable;
95 e << _literals[
i]._value;
101 template<
class View,
int n,
class Val,
unsigned int a>
117 template<
class View,
int n,
class Val,
unsigned int a>
123 BranchFilter bf, VarValPrint vvp) {
124 return *
new (home)
LDSBBrancher<View,n,Val,a>(home,x,vs,vsc,syms,nsyms,bf,vvp);
127 template<
class View,
int n,
class Val,
unsigned int a>
133 _prevPos(b._prevPos) {
139 template<
class View,
int n,
class Val,
unsigned int a>
147 template<
class View,
int n,
class Val,
unsigned int a>
156 int choicePos = pvc->
pos().pos;
157 int choiceVal = pvc->
val();
160 _prevPos = choicePos;
164 std::deque<Literal> queue;
165 std::set<Literal> seen;
167 seen.insert(
Literal(choicePos, choiceVal));
168 queue.push_back(
Literal(choicePos, choiceVal));
174 for (
int i = 0 ;
i < _nsyms ;
i++) {
176 for (
int j = 0 ; j < toExclude.
size() ; ++j) {
177 if (seen.find(toExclude[j]) == seen.end())
178 queue.push_back(toExclude[j]);
179 seen.insert(toExclude[j]);
182 }
while (queue.size() > 0);
185 int nliterals = seen.
size();
187 std::set<Literal>::iterator it = seen.begin();
188 for (
int i = 0 ;
i < nliterals ;
i++) {
193 return new LDSBChoice<Val>(*
this,
a,choicePos,choiceVal, literals, nliterals);
197 template<
class View,
int n,
class Val,
unsigned int a>
203 int nliterals; e >> nliterals;
205 for (
int i = 0 ;
i < nliterals ;
i++) {
216 return x.nq(home,
v);
223 return x.nq(home,
v);
227 template<
class View,
int n,
class Val,
unsigned int a>
233 int choicePos = pvc.
pos().pos;
234 int choiceVal = pvc.
val();
240 for (
int i = 0 ;
i < this->_nsyms ;
i++)
241 this->_syms[
i]->update(
Literal(choicePos, choiceVal));
250 for (
int i = 0 ;
i < nliterals ;
i++) {
260 template<
class View,
int n,
class Val,
unsigned int a>