| 1044 | } |
| 1045 | |
| 1046 | void |
| 1047 | FlatZincSpace::createBranchers(Printer&p, AST::Node* ann, FlatZincOptions& opt, |
| 1048 | bool ignoreUnknown, |
| 1049 | std::ostream& err) { |
| 1050 | int seed = opt.seed(); |
| 1051 | double decay = opt.decay(); |
| 1052 | Rnd rnd(static_cast<unsigned int>(seed)); |
| 1053 | TieBreak<IntVarBranch> def_int_varsel = INT_VAR_AFC_SIZE_MAX(0.99); |
| 1054 | IntBoolVarBranch def_intbool_varsel = INTBOOL_VAR_AFC_SIZE_MAX(0.99); |
| 1055 | IntValBranch def_int_valsel = INT_VAL_MIN(); |
| 1056 | std::string def_int_rel_left = "="; |
| 1057 | std::string def_int_rel_right = "!="; |
| 1058 | TieBreak<BoolVarBranch> def_bool_varsel = BOOL_VAR_AFC_MAX(0.99); |
| 1059 | BoolValBranch def_bool_valsel = BOOL_VAL_MIN(); |
| 1060 | std::string def_bool_rel_left = "="; |
| 1061 | std::string def_bool_rel_right = "!="; |
| 1062 | #ifdef GECODE_HAS_SET_VARS |
| 1063 | SetVarBranch def_set_varsel = SET_VAR_AFC_SIZE_MAX(0.99); |
| 1064 | SetValBranch def_set_valsel = SET_VAL_MIN_INC(); |
| 1065 | std::string def_set_rel_left = "in"; |
| 1066 | std::string def_set_rel_right = "not in"; |
| 1067 | #endif |
| 1068 | #ifdef GECODE_HAS_FLOAT_VARS |
| 1069 | TieBreak<FloatVarBranch> def_float_varsel = FLOAT_VAR_SIZE_MIN(); |
| 1070 | FloatValBranch def_float_valsel = FLOAT_VAL_SPLIT_MIN(); |
| 1071 | std::string def_float_rel_left = "<="; |
| 1072 | std::string def_float_rel_right = ">"; |
| 1073 | #endif |
| 1074 | |
| 1075 | std::vector<bool> iv_searched(iv.size()); |
| 1076 | for (unsigned int i=iv.size(); i--;) |
| 1077 | iv_searched[i] = false; |
| 1078 | std::vector<bool> bv_searched(bv.size()); |
| 1079 | for (unsigned int i=bv.size(); i--;) |
| 1080 | bv_searched[i] = false; |
| 1081 | #ifdef GECODE_HAS_SET_VARS |
| 1082 | std::vector<bool> sv_searched(sv.size()); |
| 1083 | for (unsigned int i=sv.size(); i--;) |
| 1084 | sv_searched[i] = false; |
| 1085 | #endif |
| 1086 | #ifdef GECODE_HAS_FLOAT_VARS |
| 1087 | std::vector<bool> fv_searched(fv.size()); |
| 1088 | for (unsigned int i=fv.size(); i--;) |
| 1089 | fv_searched[i] = false; |
| 1090 | #endif |
| 1091 | |
| 1092 | _lns = 0; |
| 1093 | if (ann) { |
| 1094 | std::vector<AST::Node*> flatAnn; |
| 1095 | if (ann->isArray()) { |
| 1096 | flattenAnnotations(ann->getArray() , flatAnn); |
| 1097 | } else { |
| 1098 | flatAnn.push_back(ann); |
| 1099 | } |
| 1100 | |
| 1101 | for (unsigned int i=0; i<flatAnn.size(); i++) { |
| 1102 | if (flatAnn[i]->isCall("restart_geometric")) { |
| 1103 | AST::Call* call = flatAnn[i]->getCall("restart_geometric"); |
no test coverage detected