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

Method solution

test/set/int.cpp:309–342  ·  view source on GitHub ↗

%Test whether \a x is solution

Source from the content-addressed store, hash-verified

307 }
308 /// %Test whether \a x is solution
309 virtual bool solution(const SetAssignment& x) const {
310 CountableSetValues xr(x.lub, x[0]);
311 if (!xr())
312 return false;
313 for (; xr(); ++xr)
314 switch (irt) {
315 case Gecode::IRT_EQ:
316 if (xr.val() != x.intval()) return false;
317 break;
318 case Gecode::IRT_NQ:
319 if (xr.val() == x.intval()) return false;
320 break;
321 case Gecode::IRT_GR:
322 if (!swapped && xr.val() <= x.intval()) return false;
323 if (swapped && xr.val() >= x.intval()) return false;
324 break;
325 case Gecode::IRT_GQ:
326 if (!swapped && xr.val() < x.intval()) return false;
327 if (swapped && xr.val() > x.intval()) return false;
328 break;
329 case Gecode::IRT_LE:
330 if (!swapped && xr.val() >= x.intval()) return false;
331 if (swapped && xr.val() <= x.intval()) return false;
332 break;
333 case Gecode::IRT_LQ:
334 if (!swapped && xr.val() > x.intval()) return false;
335 if (swapped && xr.val() < x.intval()) return false;
336 break;
337 default:
338 GECODE_NEVER;
339 return false;
340 }
341 return true;
342 }
343 /// Post constraint on \a x
344 virtual void post(Space& home, SetVarArray& x, IntVarArray& y) {
345 if (!swapped)

Callers

nothing calls this directly

Calls 2

intvalMethod · 0.80
valMethod · 0.45

Tested by

no test coverage detected