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 . 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, becomes .
- If in the above simplification the value for (or for and ) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
- Assume linear terms for the constraint . If 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
#include <gecode/int/linear.hh>
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, becomes .
- If in the above simplification the value for (or for and ) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
- Assume linear terms for the constraint . If 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
#include <gecode/int/linear.hh>
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, becomes .
- If in the above simplification the value for (or for and ) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
- Assume linear terms for the constraint . If 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
#include <gecode/int/linear.hh>
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, becomes .
- If in the above simplification the value for (or for and ) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
- Assume linear terms for the constraint . If 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
#include <gecode/int/linear.hh>
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, becomes .
- If in the above simplification the value for (or for and ) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
- Assume linear terms for the constraint . If 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
#include <gecode/int/linear.hh>
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, becomes .
- If in the above simplification the value for (or for and ) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
- Assume linear terms for the constraint . If 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
#include <gecode/int/linear.hh>