int-post.cpp File Reference
`#include <algorithm>`
`#include <gecode/int/rel.hh>`
`#include <gecode/int/linear.hh>`
`#include <gecode/int/div.hh>`

Go to the source code of this file.

## Namespaces

namespace | Gecode
| Gecode toplevel namespace
namespace | Gecode::Int
| Finite domain integers.
namespace | Gecode::Int::Linear
| Linear propagators

## Macros

#define | GECODE_INT_PL_BIN(CLASS)
| Macro for posting binary special cases for linear constraints.
#define | GECODE_INT_PL_TER(CLASS)
| Macro for posting ternary special cases for linear constraints.

## Functions

void | Gecode::Int::Linear::eliminate (Term< IntView > *t, int &n, long long int &d)
| Eliminate assigned views.
void | Gecode::Int::Linear::rewrite (IntRelType &irt, long long int &d, Term< IntView > *&t_p, int &n_p, Term< IntView > *&t_n, int &n_n)
| Rewrite all inequations in terms of IRT_LQ.
bool | Gecode::Int::Linear::precision (Term< IntView > *t_p, int n_p, Term< IntView > *t_n, int n_n, long long int d)
| Decide the required precision and check for overflow.
template<class Val, class View>
void | Gecode::Int::Linear::post_nary (Home home, ViewArray< View > &x, ViewArray< View > &y, IntRelType irt, Val c)
| Posting n-ary propagators.
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.
template<class Val, class View>
void | Gecode::Int::Linear::post_nary (Home home, ViewArray< View > &x, ViewArray< View > &y, IntRelType irt, Val c, Reify r)
| Posting reified n-ary propagators.
template<class CtrlView>
void | Gecode::Int::Linear::posteqint (Home home, IntView &x, int c, CtrlView b, ReifyMode rm, IntPropLevel ipl)
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.

## Macro Definition Documentation

## GECODE_INT_PL_BIN

#define GECODE_INT_PL_BIN | ( |  | CLASS | ) |

Value:
switch (n_p) { \
case 2: \
GECODE_ES_FAIL((CLASS<int,IntView,IntView>::post \
(home,t_p[0].x,t_p[1].x,c))); \
break; \
case 1: \
GECODE_ES_FAIL((CLASS<int,IntView,MinusView>::post \
(home,t_p[0].x,MinusView(t_n[0].x),c))); \
break; \
case 0: \
GECODE_ES_FAIL((CLASS<int,MinusView,MinusView>::post \
(home,MinusView(t_n[0].x),MinusView(t_n[1].x),c))); \
break; \
default: GECODE_NEVER; \
}
GECODE_NEVER
#define GECODE_NEVER
Assert that this command is never executed.
Definition macros.hpp:56

Macro for posting binary special cases for linear constraints.

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

## GECODE_INT_PL_TER

#define GECODE_INT_PL_TER | ( |  | CLASS | ) |

Value:
switch (n_p) { \
case 3: \
GECODE_ES_FAIL((CLASS<int,IntView,IntView,IntView>::post \
(home,t_p[0].x,t_p[1].x,t_p[2].x,c))); \
break; \
case 2: \
GECODE_ES_FAIL((CLASS<int,IntView,IntView,MinusView>::post \
(home,t_p[0].x,t_p[1].x, \
MinusView(t_n[0].x),c))); \
break; \
case 1: \
GECODE_ES_FAIL((CLASS<int,IntView,MinusView,MinusView>::post \
(home,t_p[0].x, \
MinusView(t_n[0].x),MinusView(t_n[1].x),c))); \
break; \
case 0: \
GECODE_ES_FAIL((CLASS<int,MinusView,MinusView,MinusView>::post \
(home,MinusView(t_n[0].x), \
MinusView(t_n[1].x),MinusView(t_n[2].x),c))); \
break; \
default: GECODE_NEVER; \
}

Macro for posting ternary special cases for linear constraints.

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