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

Method propagate

gecode/float/rel/eq.hpp:84–104  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82
83 template<class View0, class View1>
84 ExecStatus
85 Eq<View0,View1>::propagate(Space& home, const ModEventDelta&) {
86 if (x0.assigned()) {
87 GECODE_ME_CHECK(x1.eq(home,x0.val()));
88 } else if (x1.assigned()) {
89 GECODE_ME_CHECK(x0.eq(home,x1.val()));
90 } else {
91 do {
92 GECODE_ME_CHECK(x0.gq(home,x1.min()));
93 GECODE_ME_CHECK(x1.gq(home,x0.min()));
94 } while (x0.min() != x1.min());
95 do {
96 GECODE_ME_CHECK(x0.lq(home,x1.max()));
97 GECODE_ME_CHECK(x1.lq(home,x0.max()));
98 } while (x0.max() != x1.max());
99 if (!x0.assigned())
100 return ES_FIX;
101 }
102 assert(x0.assigned() && x1.assigned());
103 return home.ES_SUBSUMED(*this);
104 }
105
106
107 /*

Callers

nothing calls this directly

Calls 15

rtest_eqFunction · 0.85
ES_SUBSUMEDMethod · 0.80
postFunction · 0.50
assignedMethod · 0.45
eqMethod · 0.45
valMethod · 0.45
gqMethod · 0.45
minMethod · 0.45
lqMethod · 0.45
maxMethod · 0.45
sizeMethod · 0.45
move_lstMethod · 0.45

Tested by

no test coverage detected