54 : Support::RawBitSetBase(
r,static_cast<unsigned int>(
n)) {}
58 : Support::RawBitSetBase(
r,static_cast<unsigned int>(
n),ns) {}
69 return RawBitSetBase::get(static_cast<unsigned int>(
i));
73 RawBitSetBase::set(static_cast<unsigned int>(
i));
77 RawBitSetBase::clear(static_cast<unsigned int>(
i));
81 RawBitSetBase::copy(static_cast<unsigned int>(
n),ns);
85 RawBitSetBase::clearall(static_cast<unsigned int>(
n));
91 unsigned int n = static_cast<unsigned int>(_n);
93 unsigned int pos =
n / bpb;
94 unsigned int bits =
n % bpb;
98 for (
unsigned int i=0;
i<
pos;
i++) {
120 : ns(ns0),
c(ns.next(0)) {}
127 return static_cast<int>(
c);
132 :
n(
r,m),
c(0), w(0) {}
135 n.incl(
i);
c++; w += wi;
139 n.excl(
i);
c--; w -= wi;
146 bins(static_cast<unsigned int>(m)),
188 unsigned int m =
node[
p].
d;
195 while (j() <
nodes()) {
196 if (
node[j()].
d > m) {
217 assert(
i == static_cast<int>(
cur.
c));
255 bv[0]=
b[
i]; bv[1]=
b[j]; bv[2]=
b[k];
320 p.incl(
i); empty =
false;
339 assert(j == static_cast<int>(
max.
c));
bool adjacent(int i, int j) const
Test whether nodes i and j are adjacent.
void init(A &a, unsigned int sz, bool setbits=false)
Initialize for sz bits and allocator a (only after default constructor)
void excl(int i)
Exclude node i.
void empty(int n)
Clear the whole node set for n nodes.
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
int size(void) const
Return size of array (number of elements)
bool in(int i) const
Test whether node i is included.
T * alloc(long unsigned int n)
Allocate block of n objects of type T from region.
Node * node
The nodes in the graph.
unsigned int c
Cardinality of clique.
bool pos(const View &x)
Test whether x is postive.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator for views x.
ConflictGraph(Home &home, Region &r, const IntVarArgs &b, int m)
Initialize graph.
int pivot(const NodeSet &a, const NodeSet &b) const
Find a pivot node with maximal degree from a or b.
Node(void)
Default constructor.
bool get(unsigned int i) const
Access value at bit i.
void copy(int n, const NodeSet &ns)
Copy elements from node set ns with n nodes.
void allocate(A &a, unsigned int sz)
Allocate for sz bits and allocator a (only after default constructor)
ExecStatus clique(void)
Report the current clique.
ExecStatus post(void)
Post additional constraints.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
Gecode::FloatVal c(-8, 8)
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.
~ConflictGraph(void)
Destructor.
Execution has resulted in failure.
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
Nodes(const NodeSet &ns)
Initialize for nodes in ns.
Clique cur
Current clique.
bool none(unsigned int sz) const
Test whether no bits are set.
Clique(Region &r, int m)
Constructor for m nodes.
void o(BitSetData a)
Perform "or" with a.
void init(Region &r, int n)
Initialize node set for n nodes.
unsigned int w
Weight (initialized with degree before graph is reduced)
void edge(int i, int j, bool add=true)
Add or remove an edge between nodes i and j (i must be less than j)
ExecStatus bk(NodeSet &p, NodeSet &x)
Run Bosch-Kerbron algorithm for finding max cliques.
void operator++(void)
Move iterator to next node (if possible)
Passing integer variables.
void incl(int i)
Include node i.
int operator()(void) const
Return current node.
void init(bool setbits=false)
Initialize with all bits set if setbits.
Post propagator for SetVar SetOpType SetVar SetRelType r
IntSet maxclique(void) const
Return maximal clique found.
void a(BitSetData a)
Perform "and" with a.
Stack with fixed number of elements.
Clique max
Largest clique so far.
int nodes(void) const
Return number of nodes.
unsigned int w
Weight of clique.
Post propagator for SetVar x
NodeSet n
Nodes in the clique.
void allocate(Region &r, int n)
Allocate node set for n nodes.
const IntVarArgs & b
Bin variables.
BitSetData * data
Stored bits.
Gecode toplevel namespace
unsigned int bins
Number of bins.
NodeSet(void)
Keep uninitialized.
Home class for posting propagators
bool none(void) const
Whether no bits are set.
#define GECODE_NEVER
Assert that this command is never executed.
void incl(int i, unsigned int w)
Include node i with weight w.
void excl(int i, unsigned int w)
Exclude node i with weight w.
static bool iwn(NodeSet &iwa, const NodeSet &a, NodeSet &iwb, const NodeSet &b, const NodeSet &c, int n)