MCPcopy Create free account
hub / github.com/Gecode/gecode / propagate

Method propagate

gecode/int/arithmetic/divmod.hpp:62–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60
61 template<class VA, class VB, class VC>
62 ExecStatus
63 DivPlusBnd<VA,VB,VC>::propagate(Space& home, const ModEventDelta&) {
64 assert(pos(x0) && pos(x1) && !neg(x2));
65 bool mod;
66 do {
67 mod = false;
68 GECODE_ME_CHECK_MODIFIED(mod,x2.lq(home,
69 floor_div_pp(x0.max(),x1.min())));
70 GECODE_ME_CHECK_MODIFIED(mod,x2.gq(home,
71 floor_div_px(x0.min(),x1.max())));
72 GECODE_ME_CHECK_MODIFIED(mod,x0.le(home,mll(x1.max(),ill(x2.max()))));
73 GECODE_ME_CHECK_MODIFIED(mod,x0.gq(home,mll(x1.min(),x2.min())));
74 if (x2.min() > 0) {
75 GECODE_ME_CHECK_MODIFIED(mod,
76 x1.lq(home,floor_div_pp(x0.max(),x2.min())));
77 }
78 GECODE_ME_CHECK_MODIFIED(mod,x1.gq(home,ceil_div_pp(ll(x0.min()),
79 ill(x2.max()))));
80 } while (mod);
81 return x0.assigned() && x1.assigned() ?
82 home.ES_SUBSUMED(*this) : ES_FIX;
83 }
84
85 template<class VA, class VB, class VC>
86 forceinline ExecStatus

Callers

nothing calls this directly

Calls 15

floor_div_ppFunction · 0.85
floor_div_pxFunction · 0.85
mllFunction · 0.85
illFunction · 0.85
ceil_div_ppFunction · 0.85
llFunction · 0.85
dllFunction · 0.85
ceil_div_xpFunction · 0.85
floor_div_xpFunction · 0.85
ceil_div_xxFunction · 0.85
floor_div_xxFunction · 0.85
ES_SUBSUMEDMethod · 0.80

Tested by

no test coverage detected