43 namespace Gecode {
namespace Int {
namespace LDSB {
46 findVar(
int *indices,
unsigned int n_values,
unsigned int seq_size,
int index) {
49 for (
unsigned int i = 0 ;
i < n_values ;
i++) {
50 if (indices[
i] == index)
51 return std::pair<int,int>(seq,
pos);
53 if (pos == seq_size) {
58 return std::pair<int,int>(-1,-1);
64 using namespace Int::LDSB;
68 for (
int i = 0 ;
i < vars.
size() ;
i++)
69 a[
i] = vars[
i].varimp();
74 for (
int i = 0 ;
i < vars.
size() ;
i++)
75 a[
i] = vars[
i].varimp();
81 for (
int i = 0 ;
i < indices.
size() ;
i++)
82 xs[
i] = x[indices[
i]];
96 for (
int i = 0 ;
i < vars.
size() ;
i++)
97 a[
i] = vars[
i].varimp();
102 for (
int i = 0 ;
i < vars.
size() ;
i++)
103 a[
i] = vars[
i].varimp();
111 int n = upper-lower+1;
130 namespace Gecode {
namespace Int {
namespace LDSB {
155 int* indices = home.
alloc<
int>(
n);
156 for (
int i = 0 ;
i <
n ;
i++) {
157 VariableMap::const_iterator index = variableMap.find(varref->
xs[
i]);
158 if (index == variableMap.end())
160 indices[
i] = index->second;
166 int *vs = home.
alloc<
int>(
n);
175 int n = varseqref->
nxs;
176 int* indices = home.
alloc<
int>(
n);
177 for (
int i = 0 ;
i <
n ;
i++) {
178 VariableMap::const_iterator index =
179 variableMap.find(varseqref->
xs[
i]);
180 if (index == variableMap.end())
182 indices[
i] = index->second;
189 int *vs = home.
alloc<
int>(
n);
190 for (
unsigned int i = 0 ;
i <
n ;
i++)
212 int* indices = home.
alloc<
int>(
n);
213 for (
int i = 0 ;
i <
n ;
i++) {
214 VariableMap::const_iterator index = variableMap.find(varref->
xs[
i]);
215 if (index == variableMap.end())
217 indices[
i] = index->second;
223 int *vs = home.
alloc<
int>(
n);
232 int n = varseqref->
nxs;
233 int* indices = home.
alloc<
int>(
n);
234 for (
int i = 0 ;
i <
n ;
i++) {
235 VariableMap::const_iterator index =
236 variableMap.find(varseqref->
xs[
i]);
237 if (index == variableMap.end())
239 indices[
i] = index->second;
246 int *vs = home.
alloc<
int>(
n);
247 for (
unsigned int i = 0 ;
i <
n ;
i++)
259 using namespace Int::LDSB;
281 if (vals.
commit() != NULL)
289 for (
int i = 0 ;
i < x.
size() ;
i++)
290 variableMap[x[
i].varimp()] =
i;
297 for (
int i = 0 ;
i <
n ;
i++) {
312 vars.
a.expand(home,x);
316 vars.
b.expand(home,x);
320 vars.
c.expand(home,x);
324 vars.
d.expand(home,x);
326 return branch(home,x,vars.
a,vals,syms,bf);
331 for (
int i = 0 ;
i < x.
size() ;
i++)
332 variableMap[x[
i].varimp()] =
i;
339 for (
int i = 0 ;
i <
n ;
i++) {
358 if (vals.
commit() != NULL)
382 if (vals.
commit() != NULL)
406 if (vals.
commit() != NULL)
435 for (
int i = 0 ;
i < x.
size() ;
i++)
436 variableMap[x[
i].varimp()] =
i;
443 for (
int i = 0 ;
i <
n ;
i++) {
461 if (vals.
commit() != NULL)
480 vars.
a.expand(home,x);
484 vars.
b.expand(home,x);
488 vars.
c.expand(home,x);
492 vars.
d.expand(home,x);
494 return branch(home,x,vars.
a,vals,syms,bf);
499 for (
int i = 0 ;
i < x.
size() ;
i++)
500 variableMap[x[
i].varimp()] =
i;
507 for (
int i = 0 ;
i <
n ;
i++) {
525 if (vals.
commit() != NULL)