34namespace Gecode {
namespace Iter {
namespace Ranges {
45 template<
class I,
class J>
97 void init(I* i,
int n);
113 template<
class I,
class J>
117 mi = i.min(); ma = i.max();
119 if (!i() && j() && (j.min() == ma+1)) {
124 mi = j.min(); ma = j.max();
132 template<
class I,
class J>
136 template<
class I,
class J>
146 template<
class I,
class J>
165 mi =
r[active].min();
166 ma =
r[active].max();
168 while (!
r[active]()) {
175 }
while (!
r[active]());
176 if (
r[active].
min() == ma+1){
177 ma =
r[active].max();
192 :
r(r0),
n(n0), active(0) {
205 r = r0;
n = n0; active = 0;
206 while (active <
n && !
r[active]())
int n
Number of negative literals for node type.
Range iterator for appending two range iterators
void init(I &i, J &j)
Initialize with iterator i and j.
void operator++(void)
Move iterator to next range (if possible)
Append(void)
Default constructor.
J j
Iterator to be appended.
Base for range iterators with explicit min and max.
void finish(void)
Set range such that iteration stops
Range iterator for appending arbitrarily many iterators.
void operator++(void)
Move iterator to next range (if possible)
int n
Number of iterators.
NaryAppend(void)
Default constructor.
void init(I *i, int n)
Initialize with n iterators in i.
I * r
The array of iterators to be appended.
int active
Number of current iterator being processed.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .