34 namespace Gecode {
namespace Support {
41 template<
class T,
class A>
65 bool empty(
void)
const;
73 void push(
const T&
x);
76 static void*
operator new(
size_t s)
throw() { (void) s;
return NULL; }
78 static void operator delete(
void*
p) { (void)
p; };
86 template<
class T,
class A>
89 i = (i+1) & (limit - 1);
92 template<
class T,
class A>
96 T* nq = a.template alloc<T>(limit << 1);
98 for (
int i = fst; i<limit; i++)
100 for (
int i = 0; i<lst; i++)
102 a.template free<T>(q,limit);
109 template<
class T,
class A>
112 : a(a0), limit(8), fst(0), lst(0), q(a.template alloc<T>(limit)) {}
114 template<
class T,
class A>
120 template<
class T,
class A>
126 template<
class T,
class A>
132 template<
class T,
class A>
141 template<
class T,
class A>
~DynamicQueue(void)
Release memory.
void reset(void)
Reset queue to be empty.
int p
Number of positive literals for node type.
Gecode::IntArgs i({1, 2, 3, 4})
DynamicQueue(A &a)
Initialize queue.
bool empty(void) const
Test whether queue is empty.
Queue with arbitrary number of elements.
Node * x
Pointer to corresponding Boolean expression node.
void push(const T &x)
Push element x to queue.
Post propagator for SetVar x
T pop(void)
Pop element added first from queue and return it.
Gecode toplevel namespace
struct Gecode::@593::NNF::@62::@64 a
For atomic nodes.