38 namespace Gecode {
namespace Iter {
namespace Ranges {
49 template<
class I,
class J>
117 template<
class I,
class J>
121 mi =
i.min(); ma =
i.max();
123 if (!
i() && j() && (j.min() == ma+1)) {
128 mi = j.min(); ma = j.max();
136 template<
class I,
class J>
140 template<
class I,
class J>
150 template<
class I,
class J>
169 mi =
r[active].min();
170 ma =
r[active].max();
172 while (!
r[active]()) {
179 }
while (!
r[active]());
180 if (
r[active].
min() == ma+1){
181 ma =
r[active].max();
196 :
r(r0),
n(n0), active(0) {
209 r = r0;
n = n0; active = 0;
210 while (active <
n && !
r[active]())
Append(void)
Default constructor.
NaryAppend(void)
Default constructor.
void operator++(void)
Move iterator to next range (if possible)
Base for range iterators with explicit min and max.
void operator++(void)
Move iterator to next range (if possible)
void init(I &i, J &j)
Initialize with iterator i and j.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
void finish(void)
Set range such that iteration stops
int active
Number of current iterator being processed.
Post propagator for SetVar SetOpType SetVar SetRelType r
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
int n
Number of iterators.
void init(I *i, int n)
Initialize with n iterators in i.
Range iterator for appending two range iterators
Gecode toplevel namespace
Range iterator for appending arbitrarily many iterators.
I * r
The array of iterators to be appended.
J j
Iterator to be appended.