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

Method propagate

gecode/float/arithmetic/mult.hpp:106–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104
105 template<class View>
106 ExecStatus
107 MultZeroOne<View>::propagate(Space& home, const ModEventDelta&) {
108 switch (rtest_eq(x0,0.0)) {
109 case RT_FALSE:
110 GECODE_ME_CHECK(x1.eq(home,1.0));
111 break;
112 case RT_TRUE:
113 break;
114 case RT_MAYBE:
115 switch (rtest_eq(x1,1.0)) {
116 case RT_FALSE:
117 GECODE_ME_CHECK(x0.eq(home,0.0));
118 break;
119 case RT_TRUE:
120 break;
121 case RT_MAYBE:
122 return ES_FIX;
123 default: GECODE_NEVER;
124 }
125 break;
126 default: GECODE_NEVER;
127 }
128 return home.ES_SUBSUMED(*this);
129 }
130
131
132 /*

Callers

nothing calls this directly

Calls 15

rtest_eqFunction · 0.85
ES_SUBSUMEDMethod · 0.80
posFunction · 0.70
negFunction · 0.70
anyFunction · 0.70
maxFunction · 0.50
minFunction · 0.50
postFunction · 0.50
MinusViewClass · 0.50
eqMethod · 0.45
minMethod · 0.45
valMethod · 0.45

Tested by

no test coverage detected