38 #ifndef __GECODE_INT_NVALUES_HH__
39 #define __GECODE_INT_NVALUES_HH__
49 namespace Gecode {
namespace Int {
namespace NValues {
80 int pos(
int x,
int y)
const;
85 bool get(
int x,
int y)
const;
87 void set(
int x,
int y);
97 namespace Gecode {
namespace Int {
namespace NValues {
108 int size(
void)
const;
127 namespace Gecode {
namespace Int {
namespace NValues {
290 namespace Gecode {
namespace Int {
namespace NValues {
ExecStatus prune_lower(Space &home, int *dis, int n_dis)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static const int VS_ONE
View status: a one has already been encountered.
Greater or equal to number of values propagator for integer views.
Event for range-based overlap analysis.
void add(Space &home)
Add values of assigned views to value set.
int size(Space &home) const
Return a size estimate based on the union of all values.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
int n_matched
Number of matched edges.
int pos(int x, int y) const
Return position in matrix.
static ExecStatus post(Home home, ViewArray< BoolView > &x, VY y)
Post propagator for .
Less or equal to number of values propagator for Boolean views.
GqInt(Home home, ValSet &vs, ViewArray< IntView > &x, VY y)
Constructor for posting.
Graph(void)
Construct graph as not yet initialized.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Mixed (n+1)-ary propagator.
EqInt(Home home, ValSet &vs, ViewArray< IntView > &x, VY y)
Constructor for posting.
LqInt(Home home, ValSet &vs, ViewArray< IntView > &x, VY y)
Constructor for posting.
Equal to number of values propagator for integer views.
Base-class for propagators.
int val
The value for the range (first or last value, depending on type)
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
LqBool(Home home, int status, ViewArray< BoolView > &x, VY y)
Constructor for posting.
void eliminate(Space &home)
Eliminate subsumed views (all values included in the value set vs)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ViewArray< IntView > x
Array of views.
EqBool(Home home, int status, ViewArray< BoolView > &x, VY y)
Constructor for posting.
Base-class for both propagators and branchers.
int status
Status information about the views.
static ExecStatus post(Home home, ViewArray< BoolView > &x, VY y)
Post propagator for .
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
VY y
The view for counting the number of values.
ExecStatus all_in_valset(Space &home)
Propagate that all views must take values from value set.
int p
Number of positive literals for node type.
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
IntBase(Home home, ValSet &vs, ViewArray< IntView > &x, VY y)
Constructor for posting.
ExecStatus prune_upper(Space &home, Graph &g)
ModEventDelta med
A set of modification events (used during propagation)
int view
Which view does this range belong to.
Number of values propagator for Boolean views base class.
static ExecStatus post(Home home, ViewArray< BoolView > &x, VY y)
Post propagator for .
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual Propagator * copy(Space &home, bool share)
Copy propagator during cloning.
GqBool(Home home, int status, ViewArray< BoolView > &x, VY y)
Constructor for posting.
static const int VS_ZERO
View status: a zero has already been encountered.
static ExecStatus post(Home home, ViewArray< IntView > &x, VY y)
Post propagator for .
View-value graph for propagation of upper bound.
int size(void) const
Return size of maximal matching (excluding assigned views)
virtual Propagator * copy(Space &home, bool share)
Copy propagator during cloning.
View-value graph base class.
ValSet vs
Value set storing the values of already assigned views.
void sync(Space &home)
Synchronize graph with new view domains.
RangeEventType
Event type for range-based overlap analysis.
void set(int x, int y)
Set bit at position x, y.
Less or equal to number of values propagator for integer views.
void disjoint(Space &home, Region &r, int *&dis, int &n_dis)
bool operator<(RangeEvent re) const
Order events: first by val, then by event type.
RangeEventType ret
The event type.
Node * x
Pointer to corresponding Boolean expression node.
Generic domain change information to be supplied to advisors.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Symmetric diagonal bit matrix.
Greater or equal to number of values propagator for Boolean views.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Class for storing values of already assigned views.
SymBitMatrix(Region &r, int n)
Initialize matrix for dimension n by n.
Equal to number of values propagator for Boolean views.
Gecode toplevel namespace
BoolBase(Home home, int status, ViewArray< BoolView > &x, VY y)
Constructor for posting.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Number of values propagator for integer views base class.
int ModEventDelta
Modification event deltas.
virtual PropCost cost(const Space &, const ModEventDelta &) const
Cost function.
Council< ViewAdvisor< BoolView > > c
The advisor council.
Home class for posting propagators
virtual size_t dispose(Space &home)
Delete propagator and return its size.
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.
static ExecStatus post(Home home, ViewArray< IntView > &x, VY y)
Post propagator for .
static ExecStatus post(Home home, ViewArray< IntView > &x, VY y)
Post propagator for .
void init(Space &home, const ValSet &vs, const ViewArray< IntView > &x)
Initialize graph including values in vs.
virtual Propagator * copy(Space &home, bool share)
Copy propagator during cloning.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
ExecStatus prune(Space &home)
Prune all values corresponding to unused edges.