Go to the documentation of this file.
50 : Support::RawBitSetBase(
r,static_cast<unsigned int>(
n)) {}
54 : Support::RawBitSetBase(
r,static_cast<unsigned int>(
n),ns) {}
65 return RawBitSetBase::get(
static_cast<unsigned int>(
i));
69 RawBitSetBase::set(
static_cast<unsigned int>(
i));
73 RawBitSetBase::clear(
static_cast<unsigned int>(
i));
77 RawBitSetBase::copy(
static_cast<unsigned int>(
n),ns);
81 RawBitSetBase::clearall(
static_cast<unsigned int>(
n));
87 unsigned int n =
static_cast<unsigned int>(_n);
89 unsigned int pos =
n / bpb;
90 unsigned int bits =
n % bpb;
94 for (
unsigned int i=0;
i<
pos;
i++) {
116 : ns(ns0),
c(ns.next(0)) {}
123 return static_cast<int>(
c);
128 :
n(
r,m),
c(0), w(0) {}
131 n.incl(
i);
c++; w += wi;
135 n.excl(
i);
c--; w -= wi;
142 bins(static_cast<unsigned int>(m)),
184 unsigned int m =
node[
p].
d;
191 while (j() <
nodes()) {
192 if (
node[j()].
d > m) {
213 assert(
i ==
static_cast<int>(
cur.
c));
251 bv[0]=
b[
i]; bv[1]=
b[j]; bv[2]=
b[k];
316 p.incl(
i); empty =
false;
336 assert(j ==
static_cast<int>(
max.
c));
Post propagator for SetVar x
unsigned int w
Weight (initialized with degree before graph is reduced)
void a(BitSetData a)
Perform "and" with a.
ExecStatus bk(NodeSet &p, NodeSet &x)
Run Bosch-Kerbron algorithm for finding max cliques.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator for views x.
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
const IntVarArgs & b
Bin variables.
Passing integer variables.
IntSet maxclique(void) const
Return maximal clique found.
BitSetData * data
Stored bits.
Stack with fixed number of elements.
T * alloc(long unsigned int n)
Allocate block of n objects of type T from region.
Clique(Region &r, int m)
Constructor for m nodes.
void o(BitSetData a)
Perform "or" with a.
Nodes(const NodeSet &ns)
Initialize for nodes in ns.
Clique cur
Current clique.
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)
void incl(int i, unsigned int w)
Include node i with weight w.
Gecode toplevel namespace
bool in(int i) const
Test whether node i is included.
void allocate(Region &r, int n)
Allocate node set for n nodes.
~ConflictGraph(void)
Destructor.
void copy(int n, const NodeSet &ns)
Copy elements from node set ns with n nodes.
int pivot(const NodeSet &a, const NodeSet &b) const
Find a pivot node with maximal degree from a or b.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
NodeSet(void)
Keep uninitialized.
bool none(void) const
Whether no bits are set.
void excl(int i)
Exclude node i.
Home class for posting propagators
void init(A &a, unsigned int sz, bool setbits=false)
Initialize for sz bits and allocator a (only after default constructor)
Post propagator for SetVar SetOpType SetVar SetRelType r
Clique max
Largest clique so far.
void operator++(void)
Move iterator to next node (if possible)
bool adjacent(int i, int j) const
Test whether nodes i and j are adjacent.
struct Gecode::@602::NNF::@65::@66 b
For binary nodes (and, or, eqv)
void free(void)
Free allocate memory.
ExecStatus post(void)
Post additional constraints.
void empty(int n)
Clear the whole node set for n nodes.
#define GECODE_NEVER
Assert that this command is never executed.
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
Node(void)
Default constructor.
void incl(int i)
Include node i.
Node * node
The nodes in the graph.
unsigned int c
Cardinality of clique.
int operator()(void) const
Return current node.
void allocate(A &a, unsigned int sz)
Allocate for sz bits and allocator a (only after default constructor)
int nodes(void) const
Return number of nodes.
ConflictGraph(Home &home, Region &r, const IntVarArgs &b, int m)
Initialize graph.
unsigned int w
Weight of clique.
Gecode::FloatVal c(-8, 8)
ExecStatus clique(void)
Report the current clique.
NodeSet n
Nodes in the clique.
int n
Number of negative literals for node type.
static bool iwn(NodeSet &iwa, const NodeSet &a, NodeSet &iwb, const NodeSet &b, const NodeSet &c, int n)
@ ES_FAILED
Execution has resulted in failure.
Gecode::IntArgs i({1, 2, 3, 4})
bool pos(const View &x)
Test whether x is postive.
void init(Region &r, int n)
Initialize node set for n nodes.
@ ES_OK
Execution is okay.
void init(bool setbits=false)
Initialize with all bits set if setbits.
bool get(unsigned int i) const
Access value at bit i.
int p
Number of positive literals for node type.
bool none(unsigned int sz) const
Test whether no bits are set.
void excl(int i, unsigned int w)
Exclude node i with weight w.
unsigned int bins
Number of bins.