Generated on Sat Aug 25 2012 15:53:06 for Gecode by doxygen 1.7.5
Integer propagators

Classes

class  Gecode::Int::Arithmetic::AbsBnd
 Bounds consistent absolute value propagator. More...
class  Gecode::Int::Arithmetic::AbsDom
 Domain consistent absolute value propagator. More...
class  Gecode::Int::Arithmetic::MaxBnd
 Bounds consistent ternary maximum propagator. More...
class  Gecode::Int::Arithmetic::NaryMaxBnd
 Bounds consistent n-ary maximum propagator. More...
class  Gecode::Int::Arithmetic::MaxDom
 Domain consistent ternary maximum propagator. More...
class  Gecode::Int::Arithmetic::NaryMaxDom
 Domain consistent n-ary maximum propagator. More...
class  Gecode::Int::Arithmetic::SqrBnd
 Bounds consistent square propagator. More...
class  Gecode::Int::Arithmetic::SqrDom
 Domain consistent square propagator. More...
class  Gecode::Int::Arithmetic::SqrtBnd
 Bounds consistent square root propagator. More...
class  Gecode::Int::Arithmetic::SqrtDom
 Domain consistent square root propagator. More...
class  Gecode::Int::Arithmetic::MultZeroOne
 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
 Bounds consistent division propagator. More...
class  Gecode::Int::Arithmetic::DivMod
 Integer division/modulo propagator. More...
class  Gecode::Int::BinPacking::Pack
 Bin-packing propagator. More...
class  Gecode::Int::Bool::Eq
 Boolean equality propagator. More...
class  Gecode::Int::Bool::NaryEq
 n-ary Boolean equality propagator More...
class  Gecode::Int::Bool::Lq
 Boolean less or equal propagator. More...
class  Gecode::Int::Bool::NaryLq
 Nary Boolean less or equal propagator. More...
class  Gecode::Int::Bool::Le
 Boolean less propagator. More...
class  Gecode::Int::Bool::BinOrTrue
 Binary Boolean disjunction propagator (true) More...
class  Gecode::Int::Bool::TerOrTrue
 Ternary Boolean disjunction propagator (true) More...
class  Gecode::Int::Bool::QuadOrTrue
 Quarternary Boolean disjunction propagator (true) More...
class  Gecode::Int::Bool::Or
 Boolean disjunction propagator. More...
class  Gecode::Int::Bool::NaryOr
 Boolean n-ary disjunction propagator. More...
class  Gecode::Int::Bool::NaryOrTrue
 Boolean n-ary disjunction propagator (true) More...
class  Gecode::Int::Bool::Eqv
 Boolean equivalence propagator. More...
class  Gecode::Int::Bool::NaryEqv
 Boolean n-ary equivalence propagator. More...
class  Gecode::Int::Bool::Clause
 Boolean clause propagator (disjunctive) More...
class  Gecode::Int::Bool::ClauseTrue
 Boolean clause propagator (disjunctive, true) More...
class  Gecode::Int::Channel::Val
 Naive channel propagator. More...
class  Gecode::Int::Channel::Dom
 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::Count::EqInt
 Propagator for counting views (equal integer to number of equal views) More...
class  Gecode::Int::Count::GqInt
 Propagator for counting views (greater or equal integer to number of equal views) More...
class  Gecode::Int::Count::LqInt
 Propagator for counting views (less or equal integer to number of equal views) More...
class  Gecode::Int::Count::EqView
 Propagator for counting views (equal to number of equal views) More...
class  Gecode::Int::Count::LqView
 Propagator for counting views (less or equal to number of equal views) More...
class  Gecode::Int::Count::GqView
 Propagator for counting views (greater or equal to number of equal views) More...
class  Gecode::Int::Cumulative::ManProp
 Scheduling propagator for cumulative resource with mandatory tasks. More...
class  Gecode::Int::Cumulative::OptProp
 Scheduling propagator for cumulative resource with optional tasks. More...
class  Gecode::Int::Distinct::Bnd
 Bounds consistent distinct propagator. More...
class  Gecode::Int::Distinct::DomCtrl
 Propagation controller for domain consistent distinct. More...
class  Gecode::Int::Distinct::TerDom
 Ternary domain consistent distinct propagator. More...
class  Gecode::Int::Dom::ReRange
 Reified range dom-propagator. More...
class  Gecode::Int::Dom::ReIntSet
 Reified domain dom-propagator. More...
class  Gecode::Int::Element::Int
 Element propagator for array of integers More...
class  Gecode::Int::Element::ViewBnd
 Bounds consistent element propagator for array of views. More...
class  Gecode::Int::Element::ViewDom
 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
 Domain consistent layered graph (regular) propagator. More...
class  Gecode::Int::Extensional::Base
 Base for domain consistent extensional propagation More...
class  Gecode::Int::Extensional::Basic
 Domain consistent extensional propagator. More...
class  Gecode::Int::Extensional::Incremental
 Domain consistent extensional propagator. More...
class  Gecode::Int::Linear::EqBin
 Propagator for bounds consistent binary linear equality More...
class  Gecode::Int::Linear::ReEqBin
 Propagator for reified bounds consistent binary linear equality More...
class  Gecode::Int::Linear::NqBin
 Propagator for bounds consistent binary linear disequality More...
class  Gecode::Int::Linear::LqBin
 Propagator for bounds consistent binary linear less or equal More...
class  Gecode::Int::Linear::GqBin
 Propagator for bounds consistent binary linear greater or equal More...
class  Gecode::Int::Linear::ReLqBin
 Propagator for reified bounds consistent binary linear less or equal More...
class  Gecode::Int::Linear::EqTer
 Propagator for bounds consistent ternary linear equality More...
class  Gecode::Int::Linear::NqTer
 Propagator for bounds consistent ternary linear disquality More...
class  Gecode::Int::Linear::LqTer
 Propagator for bounds consistent ternary linear less or equal More...
class  Gecode::Int::Linear::DomEq
 Propagator for domain consistent n-ary linear equality More...
class  Gecode::Int::Linear::ReEq
 Propagator for reified bounds consistent n-ary linear equality More...
class  Gecode::Int::Linear::Nq
 Propagator for bounds consistent n-ary linear disequality More...
class  Gecode::Int::Linear::ReLq
 Propagator for reified bounds consistent n-ary linear less or equal More...
class  Gecode::Int::Linear::EqBoolInt
 Propagator for integer equal to Boolean sum (cardinality) More...
class  Gecode::Int::Linear::GqBoolInt
 Propagator for integer less or equal to Boolean sum (cardinality) More...
class  Gecode::Int::Linear::NqBoolInt
 Propagator for integer disequal to Boolean sum (cardinality) More...
class  Gecode::Int::Linear::ReGqBoolInt
 Propagator for reified integer less or equal to Boolean sum (cardinality) More...
class  Gecode::Int::Linear::ReEqBoolInt
 Propagator for reified integer equal to Boolean sum (cardinality) More...
class  Gecode::Int::Linear::EqBoolView
 Propagator for equality to Boolean sum (cardinality) More...
class  Gecode::Int::Linear::NqBoolView
 Propagator for disequality to Boolean sum (cardinality) More...
class  Gecode::Int::Linear::GqBoolView
 Propagator for greater or equal to Boolean sum (cardinality) More...
class  Gecode::Int::Linear::EqBoolScale
 Propagator for equality to Boolean sum with coefficients More...
class  Gecode::Int::Linear::LqBoolScale
 Propagator for inequality to Boolean sum with coefficients More...
class  Gecode::Int::Linear::NqBoolScale
 Propagator for disequality to Boolean sum with coefficients More...
class  Gecode::Int::Member::Prop
 Membership propagator. More...
class  Gecode::Int::Member::ReProp
 Reified membership propagator. More...
class  Gecode::Int::NValues::IntBase
 Number of values propagator for integer views base class. More...
class  Gecode::Int::NValues::BoolBase
 Number of values propagator for Boolean views base class. More...
class  Gecode::Int::NValues::EqBool
 Equal to number of values propagator for Boolean views. More...
class  Gecode::Int::NValues::LqBool
 Less or equal to number of values propagator for Boolean views. More...
class  Gecode::Int::NValues::GqBool
 Greater or equal to number of values propagator for Boolean views. More...
class  Gecode::Int::Precede::Single
 Single value precedence propagator. More...
class  Gecode::Int::Rel::EqDom
 Binary domain consistent equality propagator. More...
class  Gecode::Int::Rel::EqBnd
 Binary bounds consistent equality propagator. More...
class  Gecode::Int::Rel::NaryEqDom
 n-ary domain consistent equality propagator More...
class  Gecode::Int::Rel::NaryEqBnd
 n-ary bounds consistent equality propagator More...
class  Gecode::Int::Rel::NaryLqLe
 n-ary less and less or equal propagator More...
class  Gecode::Int::Rel::NaryNq
 Nary disequality propagator. More...
class  Gecode::Int::Rel::ReEqDom
 Reified binary domain consistent equality propagator. More...
class  Gecode::Int::Rel::ReEqBnd
 Reified binary bounds consistent equality propagator. More...
class  Gecode::Int::Rel::ReEqDomInt
 Reified domain consistent equality with integer propagator. More...
class  Gecode::Int::Rel::ReEqBndInt
 Reified bounds consistent equality with integer propagator. More...
class  Gecode::Int::Rel::ReLqInt
 Reified less or equal with integer propagator. More...
class  Gecode::Int::Rel::LexLqLe
 Lexical ordering propagator. More...
class  Gecode::Int::Rel::LexNq
 Lexical disequality propagator. More...
class  Gecode::Int::Sequence::Sequence
 Sequence propagator for array of integers More...
class  Gecode::Int::Sorted::Sorted
 Bounds consistent sortedness propagator. More...
class  Gecode::Int::SupportValues
 Support value iterator and recorder More...
class  Gecode::Int::TaskProp
 Propagator for tasks More...

Modules

 Support for GCC bounds propagation

Functions

void Gecode::Int::Linear::post (Home home, Term< IntView > *t, int n, IntRelType r, int c, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over integers.
void Gecode::Int::Linear::post (Home home, Term< IntView > *t, int n, IntRelType r, int c, BoolView b, IntConLevel=ICL_DEF)
 Post reified propagator for linear constraint.
void Gecode::Int::Linear::post (Home home, Term< BoolView > *t, int n, IntRelType r, int c, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over Booleans.
void Gecode::Int::Linear::post (Home home, Term< BoolView > *t, int n, IntRelType r, int c, BoolView b, IntConLevel=ICL_DEF)
 Post propagator for reified linear constraint over Booleans.
void Gecode::Int::Linear::post (Home home, Term< BoolView > *t, int n, IntRelType r, IntView y, int c=0, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over Booleans.
void Gecode::Int::Linear::post (Home home, Term< BoolView > *t, int n, IntRelType r, IntView y, BoolView b, IntConLevel=ICL_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  r,
int  c,
IntConLevel  = ICL_DEF 
)

Post propagator for linear constraint over integers.

Parameters:
homecurrent space
tarray of linear terms over integers
nsize of array
rtype 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_r c$. If $|c|+\sum_{i=0}^{|x|-1}a_i\cdot x_i$ exceeds the limits for doubles 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 203 of file int-post.cpp.

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

Post reified propagator for linear constraint.

Parameters:
homecurrent space
tarray of linear terms
nsize of array
rtype of relation
cresult of linear constraint
bBoolean control view

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_r c$. If $|c|+\sum_{i=0}^{|x|-1}a_i\cdot x_i$ exceeds the limits for doubles 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 397 of file int-post.cpp.

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

Post propagator for linear constraint over Booleans.

Parameters:
homecurrent space
tarray of linear terms over Booleans
nsize of array
rtype 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_r 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 507 of file bool-post.cpp.

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

Post propagator for reified linear constraint over Booleans.

Parameters:
homecurrent space
tarray of linear terms over Booleans
nsize of array
rtype of relation
cresult of linear constraint
bBoolean control varaible

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_r 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 526 of file bool-post.cpp.

void Gecode::Int::Linear::post ( Home  home,
Term< BoolView > *  t,
int  n,
IntRelType  r,
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
rtype 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_r 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 500 of file bool-post.cpp.

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

Post propagator for reified linear constraint over Booleans.

Parameters:
homecurrent space
tarray of linear terms over Booleans
nsize of array
rtype of relation
yvariable right hand side of linear constraint
bBoolean control variable

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_r 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 515 of file bool-post.cpp.