Using integer variables and constraints
Functionality by programming task » Programming models

## Topics

| Integer variables
| Argument arrays
| Variable arrays
| Domain constraints
| Simple relation constraints over integer variables
| Simple relation constraints over Boolean variables
| Value precedence constraints over integer variables
| Membership constraints
| Element constraints
| Distinct constraints
| Channel constraints
| Sorted constraints
| Counting constraints
| Number of values constraints
| Sequence constraints
| Extensional constraints
| Arithmetic constraints
| Linear constraints over integer variables
| Linear constraints over Boolean variables
| Bin packing constraints
| Geometrical packing constraints
| Scheduling constraints
| Graph constraints
| Synchronized execution
| Unsharing variables
| Branching

## Classes

class | Gecode::Reify
| Reification specification. More...

## Typedefs

typedef ArgArray< TaskType > | Gecode::TaskTypeArgs
| Argument arrays for passing task type arguments.

## Enumerations

enum | Gecode::ReifyMode { Gecode::RM_EQV , Gecode::RM_IMP , Gecode::RM_PMI }
| Mode for reification. More...
enum | Gecode::IntRelType { Gecode::IRT_EQ , Gecode::IRT_NQ , Gecode::IRT_LQ , Gecode::IRT_LE , Gecode::IRT_GQ , Gecode::IRT_GR }
| Relation types for integers. More...
enum | Gecode::BoolOpType { Gecode::BOT_AND , Gecode::BOT_OR , Gecode::BOT_IMP , Gecode::BOT_EQV , Gecode::BOT_XOR }
| Operation types for Booleans. More...
enum | Gecode::IntPropLevel { Gecode::IPL_DEF = 0 , Gecode::IPL_VAL = 1 , Gecode::IPL_BND = 2 , Gecode::IPL_DOM = 3 , Gecode::IPL_BASIC = 4 , Gecode::IPL_ADVANCED = 8 , Gecode::IPL_BASIC_ADVANCED = IPL_BASIC | IPL_ADVANCED , Gecode::_IPL_BITS = 4 }
| Propagation levels for integer propagators. More...
enum | Gecode::TaskType { Gecode::TT_FIXP , Gecode::TT_FIXS , Gecode::TT_FIXE }
| Type of task for scheduling constraints. More...

## Functions

Reify | Gecode::eqv (BoolVar x)
| Use equivalence for reification.
Reify | Gecode::imp (BoolVar x)
| Use implication for reification.
Reify | Gecode::pmi (BoolVar x)
| Use reverse implication for reification.

## Detailed Description

## Typedef Documentation

## TaskTypeArgs

typedef ArgArray<TaskType> Gecode::TaskTypeArgs

Argument arrays for passing task type arguments.

Definition at line 1015 of file int.hh.

## Enumeration Type Documentation

## ReifyMode

enum Gecode::ReifyMode

Mode for reification.

Enumerator
RM_EQV | Equivalence for reification (default). For a constraint and a Boolean control variable defines that is propagated.
RM_IMP | Implication for reification. For a constraint and a Boolean control variable defines that is propagated.
RM_PMI | Inverse implication for reification. For a constraint and a Boolean control variable defines that is propagated.

Definition at line 848 of file int.hh.

## IntRelType

enum Gecode::IntRelType

Relation types for integers.

Enumerator
IRT_EQ | Equality ( ).
IRT_NQ | Disequality ( ).
IRT_LQ | Less or equal ( ).
IRT_LE | Less ( ).
IRT_GQ | Greater or equal ( ).
IRT_GR | Greater ( ).

Definition at line 925 of file int.hh.

## BoolOpType

enum Gecode::BoolOpType

Operation types for Booleans.

Enumerator
BOT_AND | Conjunction.
BOT_OR | Disjunction.
BOT_IMP | Implication.
BOT_EQV | Equivalence.
BOT_XOR | Exclusive or.

Definition at line 950 of file int.hh.

## IntPropLevel

enum Gecode::IntPropLevel

Propagation levels for integer propagators.

The descriptions are meant to be approximate. It is not required that a propagator achieves full domain consistency or full bounds consistency. It is more like: which level of consistency comes closest to the level of propagation the propagator implements.

If in the description of a constraint below no propagation level is mentioned, the propagation level for the constraint is domain propagation and the implementation in fact enforces domain consistency.

Enumerator
IPL_DEF | Simple propagation levels. Default level of propagation
IPL_VAL | Value propagation.
IPL_BND | Bounds propagation.
IPL_DOM | Domain propagation Options: basic versus advanced propagation.
IPL_BASIC | Use basic propagation algorithm.
IPL_ADVANCED | Use advanced propagation algorithm.
IPL_BASIC_ADVANCED | Use both.
_IPL_BITS | Number of bits required (internal).

Definition at line 974 of file int.hh.

## TaskType

enum Gecode::TaskType

Type of task for scheduling constraints.

Enumerator
TT_FIXP |
TT_FIXS |
TT_FIXE |

Definition at line 1004 of file int.hh.

## Function Documentation

## eqv()

Reify Gecode::eqv | ( | BoolVar | x | ) |

inline

Use equivalence for reification.

Definition at line 69 of file reify.hpp.

## imp()

Reify Gecode::imp | ( | BoolVar | x | ) |

inline

Use implication for reification.

Definition at line 73 of file reify.hpp.

## pmi()

Reify Gecode::pmi | ( | BoolVar | x | ) |

inline

Use reverse implication for reification.

Definition at line 77 of file reify.hpp.