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

Function eval

test/set/mm-set.cpp:61–80  ·  view source on GitHub ↗

Executes set instruction for evaluation (checking)

Source from the content-addressed store, hash-verified

59
60 /// Executes set instruction for evaluation (checking)
61 int
62 eval(const SetInstr* pc, int reg[], bool& failed) {
63 failed = false;
64 while (true) {
65 switch (pc->o) {
66 case SO_CMPL: reg[pc->y] = !reg[pc->x]; break;
67 case SO_INTER: reg[pc->z] = reg[pc->x] & reg[pc->y]; break;
68 case SO_UNION: reg[pc->z] = reg[pc->x] | reg[pc->y]; break;
69 case SO_DUNION:
70 if (reg[pc->x] && reg[pc->y])
71 failed = true;
72 reg[pc->z] = reg[pc->x] | reg[pc->y]; break;
73 case SO_MINUS: reg[pc->z] = reg[pc->x] & (!reg[pc->y]); break;
74 case SO_HLT: return reg[pc->x];
75 default: GECODE_NEVER;
76 }
77 pc++;
78 }
79 GECODE_NEVER;
80 }
81
82 /// Executes set instruction for constructing set expressions
83 Gecode::SetExpr

Callers 4

solutionMethod · 0.70
postMethod · 0.70
solutionMethod · 0.70
postMethod · 0.70

Calls 1

singletonFunction · 0.50

Tested by

no test coverage detected