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

Function eval

test/float/mm-lin.cpp:68–87  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66 /// Evaluate linear instructions
67 template<class Expr>
68 Expr
69 eval(const LinInstr* pc, Expr reg[]) {
70 while (true) {
71 switch (pc->o) {
72 case LO_ACE: reg[pc->y] = pc->c + reg[pc->x]; break;
73 case LO_AEC: reg[pc->y] = reg[pc->x] + pc->c; break;
74 case LO_AEE: reg[pc->z] = reg[pc->x] + reg[pc->y]; break;
75 case LO_SCE: reg[pc->y] = pc->c - reg[pc->x]; break;
76 case LO_SEC: reg[pc->y] = reg[pc->x] - pc->c; break;
77 case LO_SEE: reg[pc->z] = reg[pc->x] - reg[pc->y]; break;
78 case LO_SE: reg[pc->y] = -reg[pc->x]; break;
79 case LO_MCE: reg[pc->y] = pc->c * reg[pc->x]; break;
80 case LO_MEC: reg[pc->y] = reg[pc->x] * pc->c; break;
81 case LO_HLT: return reg[pc->x];
82 default: GECODE_NEVER;
83 }
84 pc++;
85 }
86 GECODE_NEVER;
87 }
88
89 /**
90 * \defgroup TaskTestFloatMiniModelLin Minimal modeling constraints (linear constraints)

Callers 4

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

Calls

no outgoing calls

Tested by

no test coverage detected