Generated on Sat Feb 7 2015 02:01:35 for Gecode by doxygen 1.8.9.1

Modules

 Support for GCC bounds propagation
 

Classes

class  Gecode::Int::Arithmetic::AbsBnd< View >
 Bounds consistent absolute value propagator. More...
 
class  Gecode::Int::Arithmetic::AbsDom< View >
 Domain consistent absolute value propagator. More...
 
class  Gecode::Int::Arithmetic::MaxBnd< View >
 Bounds consistent ternary maximum propagator. More...
 
class  Gecode::Int::Arithmetic::NaryMaxBnd< View >
 Bounds consistent n-ary maximum propagator. More...
 
class  Gecode::Int::Arithmetic::MaxDom< View >
 Domain consistent ternary maximum propagator. More...
 
class  Gecode::Int::Arithmetic::NaryMaxDom< View >
 Domain consistent n-ary maximum propagator. More...
 
class  Gecode::Int::Arithmetic::ArgMax< VA, VB, tiebreak >
 Argument maximum propagator. More...
 
class  Gecode::Int::Arithmetic::SqrOps
 Operations for square and square-root propagators. More...
 
class  Gecode::Int::Arithmetic::PowOps
 Operations for power and nroot propagators. More...
 
class  Gecode::Int::Arithmetic::PowBnd< Ops >
 Bounds consistent power propagator. More...
 
class  Gecode::Int::Arithmetic::PowDom< Ops >
 Domain consistent power propagator. More...
 
class  Gecode::Int::Arithmetic::NrootPlusBnd< Ops, minus >
 Positive bounds consistent n-th root propagator. More...
 
class  Gecode::Int::Arithmetic::NrootBnd< Ops >
 Bounds consistent n-th root propagator. More...
 
class  Gecode::Int::Arithmetic::NrootPlusDom< Ops, minus >
 Domain consistent n-th root propagator. More...
 
class  Gecode::Int::Arithmetic::NrootDom< Ops >
 Domain consistent n-th root propagator. More...
 
class  Gecode::Int::Arithmetic::MultZeroOne< View, pc >
 Bounds or domain consistent propagator for $x_0\times x_1=x_0$. More...
 
class  Gecode::Int::Arithmetic::MultBnd
 Bounds consistent multiplication propagator. More...
 
class  Gecode::Int::Arithmetic::MultDom
 Domain consistent multiplication propagator. More...
 
class  Gecode::Int::Arithmetic::DivBnd< View >
 Bounds consistent division propagator. More...
 
class  Gecode::Int::Arithmetic::DivMod< View >
 Integer division/modulo propagator. More...
 
class  Gecode::Int::BinPacking::Pack
 Bin-packing propagator. More...
 
class  Gecode::Int::Bool::Eq< BVA, BVB >
 Boolean equality propagator. More...
 
class  Gecode::Int::Bool::NaryEq< BV >
 n-ary Boolean equality propagator More...
 
class  Gecode::Int::Bool::Lq< BV >
 Boolean less or equal propagator. More...
 
class  Gecode::Int::Bool::NaryLq< VX >
 Nary Boolean less or equal propagator. More...
 
class  Gecode::Int::Bool::Le< BV >
 Boolean less propagator. More...
 
class  Gecode::Int::Bool::BinOrTrue< BVA, BVB >
 Binary Boolean disjunction propagator (true) More...
 
class  Gecode::Int::Bool::TerOrTrue< BV >
 Ternary Boolean disjunction propagator (true) More...
 
class  Gecode::Int::Bool::QuadOrTrue< BV >
 Quarternary Boolean disjunction propagator (true) More...
 
class  Gecode::Int::Bool::Or< BVA, BVB, BVC >
 Boolean disjunction propagator. More...
 
class  Gecode::Int::Bool::NaryOr< VX, VY >
 Boolean n-ary disjunction propagator. More...
 
class  Gecode::Int::Bool::NaryOrTrue< BV >
 Boolean n-ary disjunction propagator (true) More...
 
class  Gecode::Int::Bool::Eqv< BVA, BVB, BVC >
 Boolean equivalence propagator. More...
 
class  Gecode::Int::Bool::NaryEqv
 Boolean n-ary equivalence propagator. More...
 
class  Gecode::Int::Bool::Clause< VX, VY >::Tagged
 Advisors for views (tagged whether for x or y) More...
 
class  Gecode::Int::Bool::Clause< VX, VY >
 Boolean clause propagator (disjunctive) More...
 
class  Gecode::Int::Bool::ClauseTrue< VX, VY >
 Boolean clause propagator (disjunctive, true) More...
 
class  Gecode::Int::Bool::IteBase< View, pc >
 If-then-else propagator base-class. More...
 
class  Gecode::Int::Bool::IteBnd< View >
 If-then-else bounds-consistent propagator. More...
 
class  Gecode::Int::Bool::IteDom< View >
 If-then-else domain-consistent propagator. More...
 
class  Gecode::Int::Channel::Val< View, Offset, shared >
 Naive channel propagator. More...
 
class  Gecode::Int::Channel::Dom< View, Offset, shared >
 Domain consistent channel propagator. More...
 
class  Gecode::Int::Channel::LinkSingle
 Link propagator for a single Boolean view. More...
 
class  Gecode::Int::Channel::LinkMulti
 Link propagator for multiple Boolean views. More...
 
class  Gecode::Int::Circuit::Val< View, Offset >
 "Value-consistent" circuit propagator More...
 
class  Gecode::Int::Circuit::Dom< View, Offset >
 "Domain consistent" circuit propagator More...
 
class  Gecode::Int::Count::EqInt< VX, VY >
 Propagator for counting views (equal integer to number of equal views) More...
 
class  Gecode::Int::Count::GqInt< VX, VY >
 Propagator for counting views (greater or equal integer to number of equal views) More...
 
class  Gecode::Int::Count::LqInt< VX, VY >
 Propagator for counting views (less or equal integer to number of equal views) More...
 
class  Gecode::Int::Count::EqView< VX, VY, VZ, shr, dom >
 Propagator for counting views (equal to number of equal views) More...
 
class  Gecode::Int::Count::LqView< VX, VY, VZ, shr >
 Propagator for counting views (less or equal to number of equal views) More...
 
class  Gecode::Int::Count::GqView< VX, VY, VZ, shr, dom >
 Propagator for counting views (greater or equal to number of equal views) More...
 
class  Gecode::Int::Cumulative::ManProp< ManTask, Cap >
 Scheduling propagator for cumulative resource with mandatory tasks. More...
 
class  Gecode::Int::Cumulative::OptProp< OptTask, Cap >
 Scheduling propagator for cumulative resource with optional tasks. More...
 
class  Gecode::Int::Cumulatives::Val< ViewM, ViewP, ViewU, View >
 Propagator for the cumulatives constraint More...
 
class  Gecode::Int::Distinct::Val< View >
 Naive value distinct propagator. More...
 
class  Gecode::Int::Distinct::Bnd< View >
 Bounds consistent distinct propagator. More...
 
class  Gecode::Int::Distinct::DomCtrl< View >
 Propagation controller for domain consistent distinct. More...
 
class  Gecode::Int::Distinct::Dom< View >
 Domain consistent distinct propagator. More...
 
class  Gecode::Int::Distinct::TerDom< View >
 Ternary domain consistent distinct propagator. More...
 
class  Gecode::Int::Dom::ReRange< View, rm >
 Reified range dom-propagator. More...
 
class  Gecode::Int::Dom::ReIntSet< View, rm >
 Reified domain dom-propagator. More...
 
class  Gecode::Int::Element::Int< V0, V1, Idx, Val >::IdxVal
 Linked index-value pairs. More...
 
class  Gecode::Int::Element::Int< V0, V1, Idx, Val >::IterIdxUnmark
 Value iterator for indices in index-value map. More...
 
class  Gecode::Int::Element::Int< V0, V1, Idx, Val >::IterVal
 Value iterator for values in index-value map. More...
 
class  Gecode::Int::Element::Int< V0, V1, Idx, Val >::IterValUnmark
 Value iterator for values in index-value map. More...
 
class  Gecode::Int::Element::Int< V0, V1, Idx, Val >::ByVal
 Sorting pointers to (index,value) pairs in value order. More...
 
class  Gecode::Int::Element::Int< V0, V1, Idx, Val >
 Element propagator for array of integers More...
 
class  Gecode::Int::Element::ViewBnd< VA, VB, VC >
 Bounds consistent element propagator for array of views. More...
 
class  Gecode::Int::Element::ViewDom< VA, VB, VC >
 Domain consistent element propagator for array of views. More...
 
class  Gecode::Int::Element::Pair
 Domain consistent pair propagator. More...
 
class  Gecode::Int::Exec::When
 Conditional propagator. More...
 
class  Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::State
 States are described by number of incoming and outgoing edges. More...
 
class  Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::Edge
 Edge defined by in-state and out-state More...
 
class  Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::Support
 Support information for a value More...
 
class  Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::Layer
 Layer for a view in the layered graph More...
 
class  Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::LayerValues
 Iterator for telling variable domains by scanning support. More...
 
class  Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::Index
 Advisors for views (by position in array) More...
 
class  Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >::IndexRange
 Range approximation of which positions have changed. More...
 
class  Gecode::Int::Extensional::LayeredGraph< View, Val, Degree, StateIdx >
 Domain consistent layered graph (regular) propagator. More...
 
class  Gecode::Int::Extensional::Base< View, subscribe >
 Base for domain consistent extensional propagation More...
 
class  Gecode::Int::Extensional::Basic< View, shared >
 Domain consistent extensional propagator. More...
 
class  Gecode::Int::Extensional::Incremental< View >::SupportEntry
 Entry for storing support. More...
 
class  Gecode::Int::Extensional::Incremental< View >::WorkEntry
 Description of work to be done. More...
 
class  Gecode::Int::Extensional::Incremental< View >::Work
 Work stack More...
 
class  Gecode::Int::Extensional::Incremental< View >
 Domain consistent extensional propagator. More...
 
class  Gecode::Int::GCC::Val< Card >
 Value consistent global cardinality propagator. More...
 
class  Gecode::Int::GCC::Bnd< Card >
 Bounds consistent global cardinality propagator. More...
 
class  Gecode::Int::GCC::Dom< Card >
 Domain consistent global cardinality propagator. More...
 
class  Gecode::Int::Linear::EqBin< Val, A, B >
 Propagator for bounds consistent binary linear equality More...
 
class  Gecode::Int::Linear::ReEqBin< Val, A, B, Ctrl, rm >
 Propagator for reified bounds consistent binary linear equality More...
 
class  Gecode::Int::Linear::NqBin< Val, A, B >
 Propagator for bounds consistent binary linear disequality More...
 
class  Gecode::Int::Linear::LqBin< Val, A, B >
 Propagator for bounds consistent binary linear less or equal More...
 
class  Gecode::Int::Linear::GqBin< Val, A, B >
 Propagator for bounds consistent binary linear greater or equal More...
 
class  Gecode::Int::Linear::ReLqBin< Val, A, B, rm >
 Propagator for reified bounds consistent binary linear less or equal More...
 
class  Gecode::Int::Linear::EqTer< Val, A, B, C >
 Propagator for bounds consistent ternary linear equality More...
 
class  Gecode::Int::Linear::NqTer< Val, A, B, C >
 Propagator for bounds consistent ternary linear disquality More...
 
class  Gecode::Int::Linear::LqTer< Val, A, B, C >
 Propagator for bounds consistent ternary linear less or equal More...
 
class  Gecode::Int::Linear::Eq< Val, P, N >
 Propagator for bounds consistent n-ary linear equality More...
 
class  Gecode::Int::Linear::DomEq< Val, View >
 Propagator for domain consistent n-ary linear equality More...
 
class  Gecode::Int::Linear::ReEq< Val, P, N, Ctrl, rm >
 Propagator for reified bounds consistent n-ary linear equality More...
 
class  Gecode::Int::Linear::Nq< Val, P, N >
 Propagator for bounds consistent n-ary linear disequality More...
 
class  Gecode::Int::Linear::Lq< Val, P, N >
 Propagator for bounds consistent n-ary linear less or equal More...
 
class  Gecode::Int::Linear::ReLq< Val, P, N, rm >
 Propagator for reified bounds consistent n-ary linear less or equal More...
 
class  Gecode::Int::Linear::EqBoolInt< VX >
 Propagator for integer equal to Boolean sum (cardinality) More...
 
class  Gecode::Int::Linear::GqBoolInt< VX >
 Propagator for integer less or equal to Boolean sum (cardinality) More...
 
class  Gecode::Int::Linear::NqBoolInt< VX >
 Propagator for integer disequal to Boolean sum (cardinality) More...
 
class  Gecode::Int::Linear::ReGqBoolInt< VX, VB, rm >
 Propagator for reified integer less or equal to Boolean sum (cardinality) More...
 
class  Gecode::Int::Linear::ReEqBoolInt< VX, VB, rm >
 Propagator for reified integer equal to Boolean sum (cardinality) More...
 
class  Gecode::Int::Linear::EqBoolView< XV, YV >
 Propagator for equality to Boolean sum (cardinality) More...
 
class  Gecode::Int::Linear::NqBoolView< XV, YV >
 Propagator for disequality to Boolean sum (cardinality) More...
 
class  Gecode::Int::Linear::GqBoolView< XV, YV >
 Propagator for greater or equal to Boolean sum (cardinality) More...
 
class  Gecode::Int::Linear::EqBoolScale< SBAP, SBAN, VX >
 Propagator for equality to Boolean sum with coefficients More...
 
class  Gecode::Int::Linear::LqBoolScale< SBAP, SBAN, VX >
 Propagator for inequality to Boolean sum with coefficients More...
 
class  Gecode::Int::Linear::NqBoolScale< SBAP, SBAN, VX >
 Propagator for disequality to Boolean sum with coefficients More...
 
class  Gecode::Int::Member::Prop< View >
 Membership propagator. More...
 
class  Gecode::Int::Member::ReProp< View, rm >
 Reified membership propagator. More...
 
class  Gecode::Int::NoOverlap::Base< Box >
 Base class for no-overlap propagator. More...
 
class  Gecode::Int::NoOverlap::ManProp< Box >
 No-overlap propagator for mandatory boxes. More...
 
class  Gecode::Int::NoOverlap::OptProp< Box >
 No-overlap propagator for optional boxes. More...
 
class  Gecode::Int::NValues::IntBase< VY >
 Number of values propagator for integer views base class. More...
 
class  Gecode::Int::NValues::EqInt< VY >
 Equal to number of values propagator for integer views. More...
 
class  Gecode::Int::NValues::LqInt< VY >
 Less or equal to number of values propagator for integer views. More...
 
class  Gecode::Int::NValues::GqInt< VY >
 Greater or equal to number of values propagator for integer views. More...
 
class  Gecode::Int::NValues::BoolBase< VY >
 Number of values propagator for Boolean views base class. More...
 
class  Gecode::Int::NValues::EqBool< VY >
 Equal to number of values propagator for Boolean views. More...
 
class  Gecode::Int::NValues::LqBool< VY >
 Less or equal to number of values propagator for Boolean views. More...
 
class  Gecode::Int::NValues::GqBool< VY >
 Greater or equal to number of values propagator for Boolean views. More...
 
class  Gecode::Int::Precede::Single< View >::Index
 Advisors for views (by position in array) More...
 
class  Gecode::Int::Precede::Single< View >
 Single value precedence propagator. More...
 
class  Gecode::Int::Rel::EqDom< View0, View1 >
 Binary domain consistent equality propagator. More...
 
class  Gecode::Int::Rel::EqBnd< View0, View1 >
 Binary bounds consistent equality propagator. More...
 
class  Gecode::Int::Rel::NaryEqDom< View >
 n-ary domain consistent equality propagator More...
 
class  Gecode::Int::Rel::NaryEqBnd< View >
 n-ary bounds consistent equality propagator More...
 
class  Gecode::Int::Rel::NaryLqLe< View, o >::Index
 Advisors for views (by position in array) More...
 
class  Gecode::Int::Rel::NaryLqLe< View, o >::Pos
 Positions in view array that have to be propagated. More...
 
class  Gecode::Int::Rel::NaryLqLe< View, o >
 n-ary less and less or equal propagator More...
 
class  Gecode::Int::Rel::NaryNq< View >
 Nary disequality propagator. More...
 
class  Gecode::Int::Rel::ReEqDom< View, CtrlView, rm >
 Reified binary domain consistent equality propagator. More...
 
class  Gecode::Int::Rel::ReEqBnd< View, CtrlView, rm >
 Reified binary bounds consistent equality propagator. More...
 
class  Gecode::Int::Rel::ReEqDomInt< View, CtrlView, rm >
 Reified domain consistent equality with integer propagator. More...
 
class  Gecode::Int::Rel::ReEqBndInt< View, CtrlView, rm >
 Reified bounds consistent equality with integer propagator. More...
 
class  Gecode::Int::Rel::Nq< View >
 Binary disequality propagator. More...
 
class  Gecode::Int::Rel::Lq< View >
 Less or equal propagator. More...
 
class  Gecode::Int::Rel::Le< View >
 Less propagator. More...
 
class  Gecode::Int::Rel::ReLq< View, CtrlView, rm >
 Reified less or equal propagator. More...
 
class  Gecode::Int::Rel::ReLqInt< View, CtrlView, rm >
 Reified less or equal with integer propagator. More...
 
class  Gecode::Int::Rel::LexLqLe< View >
 Lexical ordering propagator. More...
 
class  Gecode::Int::Rel::LexNq< View >
 Lexical disequality propagator. More...
 
class  Gecode::Int::Sequence::Sequence< View, Val >
 Sequence propagator for array of integers More...
 
class  Gecode::Int::Sorted::Sorted< View, Perm >
 Bounds consistent sortedness propagator. More...
 
class  Gecode::Int::SupportValues< View, A >
 Support value iterator and recorder More...
 
class  Gecode::Int::TaskProp< Task, pc >
 Propagator for tasks More...
 
class  Gecode::Int::Unary::ManProp< ManTask >
 Scheduling propagator for unary resource with mandatory tasks More...
 
class  Gecode::Int::Unary::OptProp< OptTask >
 Scheduling propagator for unary resource with optional tasks More...
 
class  Gecode::Set::Precede::Single< View >::Index
 Advisors for views (by position in array) More...
 
class  Gecode::Set::Precede::Single< View >
 Single value precedence propagator. More...
 

Functions

void Gecode::Int::Linear::post (Home home, Term< IntView > *t, int n, IntRelType irt, int c, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over integers. More...
 
void Gecode::Int::Linear::post (Home home, Term< IntView > *t, int n, IntRelType irt, int c, Reify r, IntConLevel=ICL_DEF)
 Post reified propagator for linear constraint. More...
 
void Gecode::Int::Linear::post (Home home, Term< BoolView > *t, int n, IntRelType irt, int c, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over Booleans. More...
 
void Gecode::Int::Linear::post (Home home, Term< BoolView > *t, int n, IntRelType irt, int c, Reify r, IntConLevel=ICL_DEF)
 Post propagator for reified linear constraint over Booleans. More...
 
void Gecode::Int::Linear::post (Home home, Term< BoolView > *t, int n, IntRelType irt, IntView y, int c=0, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over Booleans. More...
 
void Gecode::Int::Linear::post (Home home, Term< BoolView > *t, int n, IntRelType irt, IntView y, Reify r, IntConLevel=ICL_DEF)
 Post propagator for reified linear constraint over Booleans. More...
 

Detailed Description

This module contains a description of all predefined integer propagators. They can be reused, for example, for rewriting newly defined integer propagators into already available propagators.

Function Documentation

void Gecode::Int::Linear::post ( Home  home,
Term< IntView > *  t,
int  n,
IntRelType  irt,
int  c,
IntConLevel  = ICL_DEF 
)

Post propagator for linear constraint over integers.

Parameters
homecurrent space
tarray of linear terms over integers
nsize of array
irttype of relation
cresult of linear constraint

All variants for linear constraints share the following properties:

  • Variables occuring multiply in the term array are replaced by a single occurence: for example, $ax+bx$ becomes $(a+b)x$.
  • If in the above simplification the value for $(a+b)$ (or for $a$ and $b$) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • Assume linear terms for the constraint $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c$. If $|c|+\sum_{i=0}^{|x|-1}a_i\cdot x_i$ exceeds the limits for long long ints as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • In all other cases, the created propagators are accurate (that is, they will not silently overflow during propagation).

Requires

Definition at line 223 of file int-post.cpp.

void Gecode::Int::Linear::post ( Home  home,
Term< IntView > *  t,
int  n,
IntRelType  irt,
int  c,
Reify  r,
IntConLevel  = ICL_DEF 
)

Post reified propagator for linear constraint.

Parameters
homecurrent space
tarray of linear terms
nsize of array
irttype of relation
cresult of linear constraint
rreification specification

All variants for linear constraints share the following properties:

  • Only bounds consistency is supported.
  • Variables occuring multiply in the term array are replaced by a single occurence: for example, $ax+bx$ becomes $(a+b)x$.
  • If in the above simplification the value for $(a+b)$ (or for $a$ and $b$) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • Assume linear terms for the constraint $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c$. If $|c|+\sum_{i=0}^{|x|-1}a_i\cdot x_i$ exceeds the limits for long long ints as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • In all other cases, the created propagators are accurate (that is, they will not silently overflow during propagation).

Requires

Definition at line 520 of file int-post.cpp.

void Gecode::Int::Linear::post ( Home  home,
Term< BoolView > *  t,
int  n,
IntRelType  irt,
int  c,
IntConLevel  = ICL_DEF 
)

Post propagator for linear constraint over Booleans.

Parameters
homecurrent space
tarray of linear terms over Booleans
nsize of array
irttype of relation
cresult of linear constraint

All variants for linear constraints share the following properties:

  • Variables occuring multiply in the term array are replaced by a single occurence: for example, $ax+bx$ becomes $(a+b)x$.
  • If in the above simplification the value for $(a+b)$ (or for $a$ and $b$) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • Assume linear terms for the constraint $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c$. If $|c|+\sum_{i=0}^{|x|-1}a_i\cdot x_i$ exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • In all other cases, the created propagators are accurate (that is, they will not silently overflow during propagation).

Requires

Definition at line 615 of file bool-post.cpp.

void Gecode::Int::Linear::post ( Home  home,
Term< BoolView > *  t,
int  n,
IntRelType  irt,
int  c,
Reify  r,
IntConLevel  = ICL_DEF 
)

Post propagator for reified linear constraint over Booleans.

Parameters
homecurrent space
tarray of linear terms over Booleans
nsize of array
irttype of relation
cresult of linear constraint
rreification specification

All variants for linear constraints share the following properties:

  • Variables occuring multiply in the term array are replaced by a single occurence: for example, $ax+bx$ becomes $(a+b)x$.
  • If in the above simplification the value for $(a+b)$ (or for $a$ and $b$) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • Assume linear terms for the constraint $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c$. If $|c|+\sum_{i=0}^{|x|-1}a_i\cdot x_i$ exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • In all other cases, the created propagators are accurate (that is, they will not silently overflow during propagation).

Requires

All coefficients are 1

Definition at line 634 of file bool-post.cpp.

void Gecode::Int::Linear::post ( Home  home,
Term< BoolView > *  t,
int  n,
IntRelType  irt,
IntView  y,
int  c = 0,
IntConLevel  = ICL_DEF 
)

Post propagator for linear constraint over Booleans.

Parameters
homecurrent space
tarray of linear terms over Booleans
nsize of array
irttype of relation
yvariable right hand side of linear constraint
cconstant right hand side of linear constraint

All variants for linear constraints share the following properties:

  • Variables occuring multiply in the term array are replaced by a single occurence: for example, $ax+bx$ becomes $(a+b)x$.
  • If in the above simplification the value for $(a+b)$ (or for $a$ and $b$) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • Assume linear terms for the constraint $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c$. If $|c|+\sum_{i=0}^{|x|-1}a_i\cdot x_i$ exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • In all other cases, the created propagators are accurate (that is, they will not silently overflow during propagation).

Requires

Definition at line 608 of file bool-post.cpp.

void Gecode::Int::Linear::post ( Home  home,
Term< BoolView > *  t,
int  n,
IntRelType  irt,
IntView  y,
Reify  r,
IntConLevel  = ICL_DEF 
)

Post propagator for reified linear constraint over Booleans.

Parameters
homecurrent space
tarray of linear terms over Booleans
nsize of array
irttype of relation
yvariable right hand side of linear constraint
rreification specification

All variants for linear constraints share the following properties:

  • Variables occuring multiply in the term array are replaced by a single occurence: for example, $ax+bx$ becomes $(a+b)x$.
  • If in the above simplification the value for $(a+b)$ (or for $a$ and $b$) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • Assume linear terms for the constraint $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{irt} c$. If $|c|+\sum_{i=0}^{|x|-1}a_i\cdot x_i$ exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
  • In all other cases, the created propagators are accurate (that is, they will not silently overflow during propagation).

Requires

Definition at line 623 of file bool-post.cpp.