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

Function ann2fvarsel

gecode/flatzinc/flatzinc.cpp:689–731  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

687
688#ifdef GECODE_HAS_FLOAT_VARS
689 TieBreak<FloatVarBranch> ann2fvarsel(AST::Node* ann, Rnd rnd,
690 double decay) {
691 if (AST::Atom* s = dynamic_cast<AST::Atom*>(ann)) {
692 if (s->id == "input_order")
693 return TieBreak<FloatVarBranch>(FLOAT_VAR_NONE());
694 if (s->id == "first_fail")
695 return TieBreak<FloatVarBranch>(FLOAT_VAR_SIZE_MIN());
696 if (s->id == "anti_first_fail")
697 return TieBreak<FloatVarBranch>(FLOAT_VAR_SIZE_MAX());
698 if (s->id == "smallest")
699 return TieBreak<FloatVarBranch>(FLOAT_VAR_MIN_MIN());
700 if (s->id == "largest")
701 return TieBreak<FloatVarBranch>(FLOAT_VAR_MAX_MAX());
702 if (s->id == "occurrence")
703 return TieBreak<FloatVarBranch>(FLOAT_VAR_DEGREE_MAX());
704 if (s->id == "most_constrained")
705 return TieBreak<FloatVarBranch>(FLOAT_VAR_SIZE_MIN(),
706 FLOAT_VAR_DEGREE_MAX());
707 if (s->id == "random") {
708 return TieBreak<FloatVarBranch>(FLOAT_VAR_RND(rnd));
709 }
710 if (s->id == "afc_min")
711 return TieBreak<FloatVarBranch>(FLOAT_VAR_AFC_MIN(decay));
712 if (s->id == "afc_max")
713 return TieBreak<FloatVarBranch>(FLOAT_VAR_AFC_MAX(decay));
714 if (s->id == "afc_size_min")
715 return TieBreak<FloatVarBranch>(FLOAT_VAR_AFC_SIZE_MIN(decay));
716 if (s->id == "afc_size_max")
717 return TieBreak<FloatVarBranch>(FLOAT_VAR_AFC_SIZE_MAX(decay));
718 if (s->id == "action_min")
719 return TieBreak<FloatVarBranch>(FLOAT_VAR_ACTION_MIN(decay));
720 if (s->id == "action_max")
721 return TieBreak<FloatVarBranch>(FLOAT_VAR_ACTION_MAX(decay));
722 if (s->id == "action_size_min")
723 return TieBreak<FloatVarBranch>(FLOAT_VAR_ACTION_SIZE_MIN(decay));
724 if (s->id == "action_size_max")
725 return TieBreak<FloatVarBranch>(FLOAT_VAR_ACTION_SIZE_MAX(decay));
726 }
727 std::cerr << "Warning, ignored search annotation: ";
728 ann->print(std::cerr);
729 std::cerr << std::endl;
730 return TieBreak<FloatVarBranch>(FLOAT_VAR_NONE());
731 }
732
733 FloatValBranch ann2fvalsel(AST::Node* ann, std::string r0, std::string r1) {
734 if (AST::Atom* s = dynamic_cast<AST::Atom*>(ann)) {

Callers 1

createBranchersMethod · 0.85

Calls 15

FLOAT_VAR_NONEFunction · 0.85
FLOAT_VAR_SIZE_MINFunction · 0.85
FLOAT_VAR_SIZE_MAXFunction · 0.85
FLOAT_VAR_MIN_MINFunction · 0.85
FLOAT_VAR_MAX_MAXFunction · 0.85
FLOAT_VAR_DEGREE_MAXFunction · 0.85
FLOAT_VAR_RNDFunction · 0.85
FLOAT_VAR_AFC_MINFunction · 0.85
FLOAT_VAR_AFC_MAXFunction · 0.85
FLOAT_VAR_AFC_SIZE_MINFunction · 0.85
FLOAT_VAR_AFC_SIZE_MAXFunction · 0.85
FLOAT_VAR_ACTION_MINFunction · 0.85

Tested by

no test coverage detected