34#ifndef __GECODE_INT_NVALUES_HH__
35#define __GECODE_INT_NVALUES_HH__
76 int pos(
int x,
int y)
const;
81 bool get(
int x,
int y)
const;
83 void set(
int x,
int y);
93namespace Gecode {
namespace Int {
namespace NValues {
104 int size(
void)
const;
123namespace Gecode {
namespace Int {
namespace NValues {
284namespace Gecode {
namespace Int {
namespace NValues {
Generic domain change information to be supplied to advisors.
Home class for posting propagators
Integer view for integer variables.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Council< ViewAdvisor< BoolView > > c
The advisor council.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
BoolBase(Home home, int status, ViewArray< BoolView > &x, VY y)
Constructor for posting.
static const int VS_ONE
View status: a one has already been encountered.
VY y
The view for counting the number of values.
virtual void reschedule(Space &home)
Schedule function.
static const int VS_ZERO
View status: a zero has already been encountered.
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
int status
Status information about the views.
EqBool(Home home, int status, ViewArray< BoolView > &x, VY y)
Constructor for posting.
static ExecStatus post(Home home, ViewArray< BoolView > &x, VY y)
Post propagator for .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
EqInt(Home home, ValSet &vs, ViewArray< IntView > &x, VY y)
Constructor for posting.
virtual Propagator * copy(Space &home)
Copy propagator during cloning.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
static ExecStatus post(Home home, ViewArray< IntView > &x, VY y)
Post propagator for .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
GqBool(Home home, int status, ViewArray< BoolView > &x, VY y)
Constructor for posting.
static ExecStatus post(Home home, ViewArray< BoolView > &x, VY y)
Post propagator for .
static ExecStatus post(Home home, ViewArray< IntView > &x, VY y)
Post propagator for .
virtual Propagator * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
GqInt(Home home, ValSet &vs, ViewArray< IntView > &x, VY y)
Constructor for posting.
View-value graph for propagation of upper bound.
void init(Space &home, const ValSet &vs, const ViewArray< IntView > &x)
Initialize graph including values in vs.
void sync(void)
Synchronize graph with new view domains.
Graph(void)
Construct graph as not yet initialized.
int n_matched
Number of matched edges.
ExecStatus prune(Space &home)
Prune all values corresponding to unused edges.
int size(void) const
Return size of maximal matching (excluding assigned views)
virtual size_t dispose(Space &home)
Delete propagator and return its size.
ValSet vs
Value set storing the values of already assigned views.
ExecStatus prune_lower(Space &home, int *dis, int n_dis)
void disjoint(Space &home, Region &r, int *&dis, int &n_dis)
virtual PropCost cost(const Space &, const ModEventDelta &) const
Cost function.
void add(Space &home)
Add values of assigned views to value set.
void eliminate(Space &home)
Eliminate subsumed views (all values included in the value set vs)
ExecStatus all_in_valset(Space &home)
Propagate that all views must take values from value set.
ExecStatus prune_upper(Space &home, Graph &g)
IntBase(Home home, ValSet &vs, ViewArray< IntView > &x, VY y)
Constructor for posting.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
LqBool(Home home, int status, ViewArray< BoolView > &x, VY y)
Constructor for posting.
static ExecStatus post(Home home, ViewArray< BoolView > &x, VY y)
Post propagator for .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, ViewArray< IntView > &x, VY y)
Post propagator for .
LqInt(Home home, ValSet &vs, ViewArray< IntView > &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.
virtual Propagator * copy(Space &home)
Copy propagator during cloning.
Event for range-based overlap analysis.
RangeEventType ret
The event type.
int view
Which view does this range belong to.
int val
The value for the range (first or last value, depending on type)
bool operator<(RangeEvent re) const
Order events: first by val, then by event type.
bool get(int x, int y) const
Is bit at position x, y set?
int pos(int x, int y) const
Return position in matrix.
void set(int x, int y)
Set bit at position x, y.
SymBitMatrix(Region &r, int n)
Initialize matrix for dimension n by n.
Class for storing values of already assigned views.
View-value graph base class.
MixNaryOnePropagator(Space &home, MixNaryOnePropagator &p)
ModEventDelta med
A set of modification events (used during propagation)
Propagator(Home home)
Constructor for posting.
int ModEventDelta
Modification event deltas.
Number of values propagators.
RangeEventType
Event type for range-based overlap analysis.
@ RET_END
No further events.
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
Post propagator for SetVar SetOpType SetVar y
Post propagator for SetVar x