38 namespace Gecode {
namespace Int {
82 for (
int i =
n;
i--; ) {
83 xs[
i].idx =
i; xs[
i].view = xa[
i];
112 assert((i >= 0) && (i <
size()));
119 assert((i >= 0) && (i <
size()));
127 for (
int i =
n;
i--; )
128 xs[
i].view.subscribe(home,p,pc,process);
134 for (
int i =
n;
i--; )
135 xs[
i].view.cancel(home,p,pc);
141 for (
int i =
n;
i--; )
142 xs[
i].view.reschedule(home,p,pc);
151 for (
int i=
n;
i--; ) {
152 xs[
i].idx = a[
i].idx;
159 template<
class Char,
class Traits,
class View>
160 std::basic_ostream<Char,Traits>&
161 operator <<(std::basic_ostream<Char,Traits>& os,
163 std::basic_ostringstream<Char,Traits> s;
164 s.copyfmt(os); s.width(0);
167 s <<
x[0].idx <<
':' <<
x[0].view;
168 for (
int i=1;
i<
x.size();
i++)
169 s <<
", " <<
x[
i].idx <<
':' <<
x[
i].view;
172 return os << s.str();
void cancel(Space &home, Propagator &p, IntSet &y)
Base-class for propagators.
void update(Space &home, IdxViewArray< View > &x)
Cloning.
static IdxView * allocate(Space &home, int n)
Allocate memory for n index-view pairs.
T * alloc(long unsigned int n)
Allocate block of n objects of type T from space heap.
int p
Number of positive literals for node type.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
int PropCond
Type for propagation conditions.
void subscribe(Space &home, Propagator &p, IntSet &y)
unsigned int size(I &i)
Size of all ranges of range iterator i.
int size(void) const
Return the current size.
Passing integer variables.
Passing Boolean variables.
Integer view for integer variables.
Node * x
Pointer to corresponding Boolean expression node.
struct Gecode::@585::NNF::@62::@64 a
For atomic nodes.
IdxViewArray(void)
Default constructor.
An array of IdxView pairs.
Gecode toplevel namespace
void reschedule(Space &home, Propagator &p, IntSet &y)
Class to map VarArg type to view.
Class for pair of index and view.
void update(IntSet &y, Space &home, IntSet &py)
Boolean view for Boolean variables.