42 #ifndef __GECODE_INT_LINEAR_HH__ 43 #define __GECODE_INT_LINEAR_HH__ 52 namespace Gecode {
namespace Int {
namespace Linear {
68 template<
class Val,
class A,
class B, PropCond pc>
99 template<
class Val,
class A,
class B, PropCond pc,
class Ctrl>
133 template<
class Val,
class A,
class B>
167 template<
class Val,
class A,
class B,
class Ctrl, ReifyMode rm>
200 template<
class Val,
class A,
class B>
236 template<
class Val,
class A,
class B>
270 template<
class Val,
class A,
class B>
304 template<
class Val,
class A,
class B, ReifyMode rm>
329 namespace Gecode {
namespace Int {
namespace Linear {
345 template<
class Val,
class A,
class B,
class C, PropCond pc>
381 template<
class Val,
class A,
class B,
class C>
416 template<
class Val,
class A,
class B,
class C>
451 template<
class Val,
class A,
class B,
class C>
478 namespace Gecode {
namespace Int {
namespace Linear {
494 template<
class Val,
class P,
class N, PropCond pc>
524 template<
class Val,
class P,
class N, PropCond pc,
class Ctrl>
543 template<
class Val,
class View>
545 Val&
c, Val& sl, Val& su);
552 template<
class Val,
class View>
554 Val&
c, Val& sl, Val& su);
568 template<
class Val,
class P,
class N>
569 class Eq :
public Lin<Val,P,N,PC_INT_BND> {
599 template<
class Val,
class View>
601 :
public Lin<Val,View,View,PC_INT_DOM> {
640 template<
class Val,
class P,
class N,
class Ctrl, ReifyMode rm>
674 template<
class Val,
class P,
class N>
675 class Nq :
public Lin<Val,P,N,PC_INT_VAL> {
707 template<
class Val,
class P,
class N>
708 class Lq :
public Lin<Val,P,N,PC_INT_BND> {
740 template<
class Val,
class P,
class N, ReifyMode rm>
741 class ReLq :
public ReLin<Val,P,N,PC_INT_BND,BoolView> {
767 namespace Gecode {
namespace Int {
namespace Linear {
901 template<
class VX,
class VB>
940 template<
class VX,
class VB, ReifyMode rm>
970 template<
class VX,
class VB, ReifyMode rm>
998 namespace Gecode {
namespace Int {
namespace Linear {
1004 template<
class XV,
class YV>
1031 template<
class XV,
class YV>
1057 template<
class XV,
class YV>
1083 template<
class XV,
class YV>
1107 namespace Gecode {
namespace Int {
namespace Linear {
1145 bool empty(
void)
const;
1147 int size(
void)
const;
1183 bool empty(
void)
const;
1185 int size(
void)
const;
1195 template<
class SBAP,
class SBAN,
class VX, PropCond pcx>
1211 SBAP& p, SBAN& n, VX x,
int c);
1224 template<
class SBAP,
class SBAN,
class VX>
1236 SBAP& p, SBAN& n, VX x,
int c);
1251 template<
class SBAP,
class SBAN,
class VX>
1263 SBAP& p, SBAN& n, VX x,
int c);
1278 template<
class SBAP,
class SBAN,
class VX>
1290 SBAP& p, SBAN& n, VX x,
int c);
1303 namespace Gecode {
namespace Int {
namespace Linear {
1309 template<
class View>
1332 template<
class View>
Propagator for bounds consistent binary linear disequality
ViewArray< VX > x
Boolean views.
ViewArray< XV > x
Boolean views.
Propagator for inequality to Boolean sum with coefficients
Propagator for bounds consistent n-ary linear equality
IntConLevel
Consistency levels for integer propagators.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low binary)
Empty array of scale Boolean views.
ViewArray< N > y
Array of negative views.
Propagator for reified bounds consistent n-ary linear less or equal
Propagator for bounds consistent binary linear greater or equal
int n_s
Number of subscriptions.
virtual Actor * copy(Space &home, bool share)=0
Create copy.
Base-class for Boolean linear propagators.
void post(Home home, Term< BoolView > *t, int n, IntRelType irt, IntView x, int c, IntConLevel)
Post propagator for linear constraint over Booleans.
Propagator for bounds consistent n-ary linear disequality
void cancel(Space &home, Propagator &p, IntSet &y)
Propagator for domain consistent n-ary linear equality
ExecStatus resubscribe(Space &home, Propagator &p, VX &x0, ViewArray< VX > &x, VY &x1, ViewArray< VY > &y)
Baseclass for integer Boolean sum.
Propagator for integer disequal to Boolean sum (cardinality)
Propagator for bounds consistent ternary linear equality
bool normalize(Term< View > *t, int &n, Term< View > *&t_p, int &n_p, Term< View > *&t_n, int &n_n, int &g)
Normalize linear integer constraints.
Base-class for reified n-ary linear propagators.
Base-class for propagators.
YV y
View to compare number of assigned Boolean views to.
Base-class for ternary linear propagators.
Base-class for n-ary linear propagators.
Propagator for bounds consistent binary linear equality
Base-class for binary linear propagators.
Propagator for equality to Boolean sum (cardinality)
Base-class for both propagators and branchers.
int c
Integer constant on right-hand side.
Propagator for equality to Boolean sum with coefficients
ViewArray< P > x
Array of positive views.
Council< Advisor > co
Council for single advisor.
Propagator for bounds consistent ternary linear less or equal
Propagator for greater or equal to Boolean sum (cardinality)
void sort(TaskViewArray< TaskView > &t)
Sort task view array t according to sto and inc (increasing or decreasing)
int p
Number of positive literals for node type.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
int n
Number of negative literals for node type.
int n_as
Number of active subscriptions.
int c
Righthandside (constant part from Boolean views assigned to 1)
void bounds_n(ModEventDelta med, ViewArray< View > &y, Val &c, Val &sl, Val &su)
IntRelType
Relation types for integers.
Propagator for integer less or equal to Boolean sum (cardinality)
Propagator for integer equal to Boolean sum (cardinality)
void subscribe(Space &home, Propagator &p, IntSet &y)
ModEventDelta med
A set of modification events (used during propagation)
Propagator for bounds consistent binary linear less or equal
Reification specification.
size_t size
The size of the propagator (used during subsumption)
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Advise function.
struct Gecode::@519::NNF::@60::@62 a
For atomic nodes.
Propagator for reified bounds consistent n-ary linear equality
void bounds_p(ModEventDelta med, ViewArray< View > &x, Val &c, Val &sl, Val &su)
Propagator for reified integer less or equal to Boolean sum (cardinality)
Propagator for reified integer equal to Boolean sum (cardinality)
Propagator for disequality to Boolean sum with coefficients
bool empty(void) const
Test whether actor link is empty (points to itself)
SBAN n
Negative Boolean views with coefficients on left-hand side.
Baseclass for reified integer Boolean sum.
Propagator for reified bounds consistent binary linear less or equal
Base class for linear Boolean constraints with coefficients.
Integer view for integer variables.
struct Gecode::@519::NNF::@60::@61 b
For binary nodes (and, or, eqv)
Array of scale Boolean views.
Node * x
Pointer to corresponding Boolean expression node.
SBAP p
Positive Boolean views with coefficients on left-hand side.
Generic domain change information to be supplied to advisors.
Traits for Boolean negation view.
Base-class for reified binary linear propagators.
void estimate(Term< View > *t, int n, int c, int &l, int &u)
Estimate lower and upper bounds.
Ctrl b
Control view for reification.
The default consistency for a constraint.
Propagator for reified bounds consistent binary linear equality
Coefficient and Boolean view.
Council< Advisor > co
Council for managing single advisor.
int n_hs
Number of views that have or had subscriptions.
Ctrl b
Control view for reification.
Class for describing linear term .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)=0
Propagation function.
ViewArray< VX > x
Views not yet subscribed to.
LinBin(Space &home, bool share, LinBin &p)
Constructor for cloning p.
Gecode toplevel namespace
Propagator for bounds consistent n-ary linear less or equal
Propagator for disequality to Boolean sum (cardinality)
int a
Integer coefficient.
#define GECODE_INT_EXPORT
Propagator for bounds consistent ternary linear disquality
int ModEventDelta
Modification event deltas.
Home class for posting propagators
VX x
Integer view on right-hand side.
Boolean view for Boolean variables.