40 namespace Gecode {
namespace Set {
namespace LDSB {
47 if (n != y.
lubSize())
return false;
48 for (
unsigned int i = 0 ;
i <
n ;
i++)
57 namespace Gecode {
namespace Int {
namespace LDSB {
108 unsigned int seqNum = posIt / seq_size;
109 unsigned int seqPos = posIt % seq_size;
110 for (
unsigned int seq = 0 ; seq < n_seqs ; seq++) {
114 if (x[getVal(seq, seqPos)].
assigned()) {
118 const unsigned int *firstSeq = &indices[seqNum*seq_size];
119 const unsigned int *secondSeq = &indices[seq*seq_size];
120 for (
unsigned int i = 0 ;
i < seq_size ;
i++) {
148 unsigned int seqNum = location.first;
149 unsigned int seqPos = location.second;
150 for (
unsigned int seq = 0 ; seq < n_seqs ; seq++) {
151 if (seq == seqNum)
continue;
152 if (dead_sequences.get(seq))
continue;
A Literal is a pair of variable index and value.
std::pair< int, int > findVar(int *indices, unsigned int n_values, unsigned int seq_size, int index)
Find the location of an integer in a collection of sequences.
int _value
The value of the literal. For int and bool variables, this is the value itself; for set variables...
int _variable
Variable index. The ViewArray that the index is meant for is assumed to be known by context...
Heap heap
The single global heap.
virtual ArgArray< Literal > symmetric(Literal, const ViewArray< View > &) const
Compute symmetric literals.
Gecode::IntArgs i(4, 1, 2, 3, 4)
virtual ArgArray< Literal > symmetric(Literal, const ViewArray< View > &) const
Compute symmetric literals.
int n
Number of negative literals for node type.
Argument array for non-primitive types.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
Set view for set variables
virtual ArgArray< Literal > symmetric(Literal, const ViewArray< View > &) const
Compute symmetric literals.
void values(Home home, const IntVarArgs &x, IntSet y, IntConLevel icl=ICL_DEF)
Post constraint .
Value iterator for values in an offset bitset.
Node * x
Pointer to corresponding Boolean expression node.
bool assigned(View x, int v)
Whether x is assigned to value v.
bool equalLUB(const Set::SetView &x, const Set::SetView &y)
Do two set variables have equal least-upper-bounds?
bool assigned(void) const
Test whether view is assigned.
virtual ArgArray< Literal > symmetric(Literal, const ViewArray< View > &) const
Compute symmetric literals.
Stack with arbitrary number of elements.
Gecode toplevel namespace
ArgArray< T > dynamicStackToArgArray(const Support::DynamicStack< T, A > &s)
Convert a DynamicStack into an ArgArray
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
void push(const T &x)
Push element x on top of stack.
Bitsets with index offset.