42 #ifndef __GECODE_FLOAT_LINEAR_HH__
43 #define __GECODE_FLOAT_LINEAR_HH__
53 namespace Gecode {
namespace Float {
namespace Linear {
60 template<
class P,
class N, PropCond pc>
107 template<
class P,
class N>
108 class Eq :
public Lin<P,N,PC_FLOAT_BND> {
137 template<
class P,
class N>
138 class Lq :
public Lin<P,N,PC_FLOAT_BND> {
162 namespace Gecode {
namespace Float {
namespace Linear {
#define GECODE_FLOAT_EXPORT
Propagator for bounds consistent n-ary linear equality
Lq(Space &home, bool share, Lq &p)
Constructor for cloning p.
void post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
Propagator for bounds consistent n-ary linear less or equal
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Base-class for n-ary linear propagators.
Base-class for propagators.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ViewArray< N > y
Array of negative views.
Base-class for both propagators and branchers.
Gecode::FloatVal c(-8, 8)
ViewArray< P > x
Array of positive views.
int p
Number of positive literals for node type.
int n
Number of negative literals for node type.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, ViewArray< P > &x, ViewArray< N > &y, FloatVal c)
Post propagator for .
void bounds_n(ModEventDelta med, ViewArray< View > &y, Val &c, Val &sl, Val &su)
FloatRelType
Relation types for floats.
Eq(Space &home, bool share, Eq &p)
Constructor for cloning p.
ModEventDelta med
A set of modification events (used during propagation)
virtual Actor * copy(Space &home, bool share)
Create copy during cloning.
Reification specification.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low linear)
void bounds_p(ModEventDelta med, ViewArray< View > &x, Val &c, Val &sl, Val &su)
FloatVal c
Constant value.
Float view for float variables.
union Gecode::@518::NNF::@57 u
Union depending on nodetype t.
Node * x
Pointer to corresponding Boolean expression node.
virtual Actor * copy(Space &home, bool share)
Create copy during cloning.
void estimate(Term *t, int n, FloatVal c, FloatNum &l, FloatNum &u)
Estimate lower and upper bounds.
Class for describing linear term .
Lin(Space &home, bool share, Lin< P, N, pc > &p)
Constructor for cloning p.
Gecode toplevel namespace
static ExecStatus post(Home home, ViewArray< P > &x, ViewArray< N > &y, FloatVal c)
Post propagator for .
int ModEventDelta
Modification event deltas.
Home class for posting propagators
double FloatNum
Floating point number base type.