40 namespace Gecode {
namespace Int {
49 plus(
long long int x,
long long int y) {
54 template<
class TaskView,
class Node>
57 return tasks.size()-1;
59 template<
class TaskView,
class Node>
62 return 2*tasks.size() - 1;
65 template<
class TaskView,
class Node>
70 template<
class TaskView,
class Node>
73 return i >= n_inner();
75 template<
class TaskView,
class Node>
80 template<
class TaskView,
class Node>
87 template<
class TaskView,
class Node>
92 template<
class TaskView,
class Node>
99 template<
class TaskView,
class Node>
105 template<
class TaskView,
class Node>
108 return node[_leaf[
i]];
111 template<
class TaskView,
class Node>
117 template<
class TaskView,
class Node>
120 for (
int i=n_inner();
i--; )
121 node[
i].init(node[n_left(
i)],node[n_right(
i)]);
124 template<
class TaskView,
class Node>
127 for (
int i=n_inner();
i--; )
128 node[
i].update(node[n_left(
i)],node[n_right(
i)]);
131 template<
class TaskView,
class Node>
139 node[
i].update(node[n_left(i)],node[n_right(i)]);
140 }
while (!n_root(i));
143 template<
class TaskView,
class Node>
148 node(r.alloc<Node>(n_nodes())),
149 _leaf(r.alloc<int>(tasks.
size())) {
152 sort<TaskView,STO_EST,true>(map,
tasks);
154 for (
int i=
tasks.size();
i--; )
159 while (fst <
tasks.size())
163 for (
int i=
tasks.size();
i--; )
170 template<
class TaskView,
class Node>
template<
class Node2>
175 node(r.alloc<Node>(n_nodes())),
176 _leaf(r.alloc<int>(tasks.
size())) {
177 for (
int i=
tasks.size();
i--; )