Generated on Sun Feb 17 15:24:47 2019 for Gecode by doxygen 1.6.3

Integer propagators
[Other available functionality]

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 >
 Boolean clause propagator (disjunctive). More...
class  Gecode::Int::Bool::ClauseTrue< VX, VY >
 Boolean clause propagator (disjunctive, true). More...
class  Gecode::Int::Bool::IteBase< V0, V1, V2, pc >
 If-then-else propagator base-class. More...
class  Gecode::Int::Bool::IteBnd< V0, V1, V2 >
 If-then-else bounds-consistent propagator. More...
class  Gecode::Int::Bool::IteDom< V0, V1, V2 >
 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, PL >
 Scheduling propagator for cumulative resource with mandatory tasks. More...
class  Gecode::Int::Cumulative::OptProp< OptTask, Cap, PL >
 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::Distinct::EqIte
 Equal-if-then-else domain-consistent 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 >
 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 >
 Domain consistent layered graph (regular) propagator. More...
class  Gecode::Int::Extensional::PosCompact< View, Table >
 Domain consistent positive extensional propagator. More...
class  Gecode::Int::Extensional::NegCompact< View, Table >
 Domain consistent negative 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 >
 Single value precedence propagator. More...
class  Gecode::Int::Rel::EqDom< View0, View1 >
 Binary domain consistent equality propagator. More...
class  Gecode::Int::Rel::EqVal< View0, View1 >
 Binary value propagation 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 >
 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< V0, V1 >
 Binary disequality propagator. More...
class  Gecode::Int::Rel::Lq< V0, V1 >
 Less or equal propagator. More...
class  Gecode::Int::Rel::Le< V0, V1 >
 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< VX, VY >
 Lexical ordering propagator. More...
class  Gecode::Int::Rel::LexNq< VX, VY >
 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, PL >
 Propagator for tasks More...
class  Gecode::Int::Unary::ManProp< ManTask, PL >
 Scheduling propagator for unary resource with mandatory tasks More...
class  Gecode::Int::Unary::OptProp< OptTask, PL >
 Scheduling propagator for unary resource with optional tasks More...
class  Gecode::Set::Precede::Single< View >
 Single value precedence propagator. More...

Modules

 Support for GCC bounds propagation

Functions

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

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,
IntPropLevel  = IPL_DEF 
)

Post propagator for linear constraint over integers.

Parameters:
home current space
t array of linear terms over integers
n size of array
irt type of relation
c result 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

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

Post reified propagator for linear constraint.

Parameters:
home current space
t array of linear terms
n size of array
irt type of relation
c result of linear constraint
r reification 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

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

Post propagator for linear constraint over Booleans.

Parameters:
home current space
t array of linear terms over Booleans
n size of array
irt type of relation
c result 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

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

Post propagator for reified linear constraint over Booleans.

Parameters:
home current space
t array of linear terms over Booleans
n size of array
irt type of relation
c result of linear constraint
r reification 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

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

Post propagator for linear constraint over Booleans.

Parameters:
home current space
t array of linear terms over Booleans
n size of array
irt type of relation
y variable right hand side of linear constraint
c constant 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

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

Post propagator for reified linear constraint over Booleans.

Parameters:
home current space
t array of linear terms over Booleans
n size of array
irt type of relation
y variable right hand side of linear constraint
r reification 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