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

Function ann2ivarsel

gecode/flatzinc/flatzinc.cpp:400–447  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

398 }
399
400 TieBreak<IntVarBranch> ann2ivarsel(AST::Node* ann, Rnd rnd, double decay) {
401 if (AST::Atom* s = dynamic_cast<AST::Atom*>(ann)) {
402 if (s->id == "input_order")
403 return TieBreak<IntVarBranch>(INT_VAR_NONE());
404 if (s->id == "first_fail")
405 return TieBreak<IntVarBranch>(INT_VAR_SIZE_MIN());
406 if (s->id == "anti_first_fail")
407 return TieBreak<IntVarBranch>(INT_VAR_SIZE_MAX());
408 if (s->id == "smallest")
409 return TieBreak<IntVarBranch>(INT_VAR_MIN_MIN());
410 if (s->id == "largest")
411 return TieBreak<IntVarBranch>(INT_VAR_MAX_MAX());
412 if (s->id == "occurrence")
413 return TieBreak<IntVarBranch>(INT_VAR_DEGREE_MAX());
414 if (s->id == "max_regret")
415 return TieBreak<IntVarBranch>(INT_VAR_REGRET_MIN_MAX());
416 if (s->id == "most_constrained")
417 return TieBreak<IntVarBranch>(INT_VAR_SIZE_MIN(),
418 INT_VAR_DEGREE_MAX());
419 if (s->id == "random") {
420 return TieBreak<IntVarBranch>(INT_VAR_RND(rnd));
421 }
422 if (s->id == "dom_w_deg") {
423 return TieBreak<IntVarBranch>(INT_VAR_AFC_SIZE_MAX(decay));
424 }
425 if (s->id == "afc_min")
426 return TieBreak<IntVarBranch>(INT_VAR_AFC_MIN(decay));
427 if (s->id == "afc_max")
428 return TieBreak<IntVarBranch>(INT_VAR_AFC_MAX(decay));
429 if (s->id == "afc_size_min")
430 return TieBreak<IntVarBranch>(INT_VAR_AFC_SIZE_MIN(decay));
431 if (s->id == "afc_size_max") {
432 return TieBreak<IntVarBranch>(INT_VAR_AFC_SIZE_MAX(decay));
433 }
434 if (s->id == "action_min")
435 return TieBreak<IntVarBranch>(INT_VAR_ACTION_MIN(decay));
436 if (s->id == "action_max")
437 return TieBreak<IntVarBranch>(INT_VAR_ACTION_MAX(decay));
438 if (s->id == "action_size_min")
439 return TieBreak<IntVarBranch>(INT_VAR_ACTION_SIZE_MIN(decay));
440 if (s->id == "action_size_max")
441 return TieBreak<IntVarBranch>(INT_VAR_ACTION_SIZE_MAX(decay));
442 }
443 std::cerr << "Warning, ignored search annotation: ";
444 ann->print(std::cerr);
445 std::cerr << std::endl;
446 return TieBreak<IntVarBranch>(INT_VAR_NONE());
447 }
448
449 IntValBranch ann2ivalsel(AST::Node* ann, std::string& r0, std::string& r1,
450 Rnd rnd) {

Callers 1

createBranchersMethod · 0.85

Calls 15

INT_VAR_NONEFunction · 0.85
INT_VAR_SIZE_MINFunction · 0.85
INT_VAR_SIZE_MAXFunction · 0.85
INT_VAR_MIN_MINFunction · 0.85
INT_VAR_MAX_MAXFunction · 0.85
INT_VAR_DEGREE_MAXFunction · 0.85
INT_VAR_REGRET_MIN_MAXFunction · 0.85
INT_VAR_RNDFunction · 0.85
INT_VAR_AFC_SIZE_MAXFunction · 0.85
INT_VAR_AFC_MINFunction · 0.85
INT_VAR_AFC_MAXFunction · 0.85
INT_VAR_AFC_SIZE_MINFunction · 0.85

Tested by

no test coverage detected