48 template<
int UMIN,
int UMAX,
class I>
101 void init(
int umin,
int umax, I&
i);
112 template<
int UMIN,
int UMAX,
class I>
116 assert((
i.min() >= UMIN) && (
i.max() <= UMAX));
117 if (
i.min() > UMIN) {
120 }
else if (
i.max() < UMAX) {
123 ma =
i() ? (
i.min()-1) : UMAX;
133 template<
int UMIN,
int UMAX,
class I>
137 template<
int UMIN,
int UMAX,
class I>
143 template<
int UMIN,
int UMAX,
class I>
149 template<
int UMIN,
int UMAX,
class I>
152 assert(!
i() || (
i.max() <= UMAX));
153 if (
i() && (
i.max() < UMAX)) {
156 ma =
i() ? (
i.min()-1) : UMAX;
166 assert((
i.min() >=
UMIN) && (
i.max() <=
UMAX));
167 if (
i.min() >
UMIN) {
170 }
else if (
i.max() <
UMAX) {
203 assert(!
i() || (
i.max() <=
UMAX));
204 if (
i() && (
i.max() <
UMAX)) {
I i
Iterator to compute complement for.
void init(int umin, int umax, I &i)
Initialize with iterator i.
void start(void)
Initialize.
ComplVal(void)
Default constructor.
void operator++(void)
Move iterator to next range (if possible)
int UMIN
Values describing the universe set.
void start(void)
Initialize.
I i
Iterator to compute complement for.
void init(I &i)
Initialize with iterator i.
Compl(void)
Default constructor.
void operator++(void)
Move iterator to next range (if possible)
int ma
Maximum of current range.
int mi
Minimum of current range.
MinMax(void)
Default constructor.
void finish(void)
Set range such that iteration stops
Range and value iterators.
Gecode toplevel namespace