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 | |
Defines | |
#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. |
Define Documentation
#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; \ }
Macro for posting binary special cases for linear constraints.
Definition at line 176 of file int-post.cpp.
#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.