Generated on Thu Apr 11 13:59:28 2019 for Gecode by doxygen 1.6.3

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.