38#ifndef __GECODE_FLOAT_LINEAR_HH__
39#define __GECODE_FLOAT_LINEAR_HH__
49namespace Gecode {
namespace Float {
namespace Linear {
56 template<
class P,
class N, PropCond pc>
105 template<
class P,
class N>
106 class Eq :
public Lin<P,N,PC_FLOAT_BND> {
135 template<
class P,
class N>
136 class Lq :
public Lin<P,N,PC_FLOAT_BND> {
160namespace Gecode {
namespace Float {
namespace Linear {
union Gecode::@603::NNF::@65 u
Union depending on nodetype t.
int p
Number of positive literals for node type.
int n
Number of negative literals for node type.
Base-class for both propagators and branchers.
Float view for float variables.
Propagator for bounds consistent n-ary linear equality
static ExecStatus post(Home home, ViewArray< P > &x, ViewArray< N > &y, FloatVal c)
Post propagator for .
virtual Actor * copy(Space &home)
Create copy during cloning.
Eq(Space &home, Eq &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Base-class for n-ary linear propagators.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low linear)
virtual size_t dispose(Space &home)
Delete propagator and return its size.
void bounds_n(ModEventDelta med, ViewArray< View > &y, FloatVal &c, FloatNum &sl, FloatNum &su)
Compute bounds information for negative views.
void bounds_p(ModEventDelta med, ViewArray< View > &x, FloatVal &c, FloatNum &sl, FloatNum &su)
Compute bounds information for positive views.
Lin(Space &home, Lin< P, N, pc > &p)
Constructor for cloning p.
ViewArray< P > x
Array of positive views.
virtual void reschedule(Space &home)
Schedule function.
ViewArray< N > y
Array of negative views.
FloatVal c
Constant value.
Propagator for bounds consistent n-ary linear less or equal
static ExecStatus post(Home home, ViewArray< P > &x, ViewArray< N > &y, FloatVal c)
Post propagator for .
virtual Actor * copy(Space &home)
Create copy during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Lq(Space &home, Lq &p)
Constructor for cloning p.
Class for describing linear term .
Home class for posting propagators
Base-class for propagators.
ModEventDelta med
A set of modification events (used during propagation)
Reification specification.
#define GECODE_FLOAT_EXPORT
void post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
int ModEventDelta
Modification event deltas.
double FloatNum
Floating point number base type.
FloatRelType
Relation types for floats.
void estimate(Term *t, int n, FloatVal c, FloatNum &l, FloatNum &u)
Estimate lower and upper bounds.
const Gecode::PropCond PC_FLOAT_BND
Propagate when minimum or maximum of a view changes.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
Post propagator for SetVar SetOpType SetVar y
Post propagator for SetVar x