38 namespace Gecode {
namespace Iter {
namespace Ranges {
48 template<
class I,
class M,
bool strict=true>
58 Map(I& i,
const M& m);
62 void init(I& i,
const M& m);
80 unsigned int width(
void)
const;
85 template<
class I,
class M>
102 Map(I& i,
const M& m);
106 void init(I& i,
const M& m);
117 template<
class I,
class M>
132 Map(I& i,
const M& m);
136 void init(I& i,
const M& m);
154 unsigned int width(
void)
const;
159 template<
class I,
class M>
163 template<
class I,
class M>
170 while (
i() && (ma+1 >= m.min(
i.min()))) {
171 ma = m.max(
i.max()); ++
i;
178 template<
class I,
class M>
183 template<
class I,
class M>
189 template<
class I,
class M>
194 template<
class I,
class M>
200 template<
class I,
class M>
208 template<
class I,
class M>
212 template<
class I,
class M>
217 template<
class I,
class M>
223 template<
class I,
class M>
226 template<
class I,
class M>
230 template<
class I,
class M>
235 template<
class I,
class M>
241 template<
class I,
class M>
244 return m.min(
i.min());
246 template<
class I,
class M>
249 return m.max(
i.max());
251 template<
class I,
class M>
254 return static_cast<unsigned int>(
max()-
min())+1;
bool operator()(void) const
Test whether iterator is still at a range or done.
void init(I &i)
Initialize with ranges from i.
Base for range iterators with explicit min and max.
unsigned int width(void) const
Return width of range (distance between minimum and maximum)
Gecode::IntArgs i(4, 1, 2, 3, 4)
Map(void)
Default constructor.
int min(void) const
Return smallest value of range.
Range iterator for mapping ranges.
Gecode toplevel namespace
int max(void) const
Return largest value of range.
void operator++(void)
Move iterator to next range (if possible)