| 516 | } |
| 517 | |
| 518 | TieBreak<BoolVarBranch> ann2bvarsel(AST::Node* ann, Rnd rnd, double decay) { |
| 519 | if (AST::Atom* s = dynamic_cast<AST::Atom*>(ann)) { |
| 520 | if ((s->id == "input_order") || |
| 521 | (s->id == "first_fail") || |
| 522 | (s->id == "anti_first_fail") || |
| 523 | (s->id == "smallest") || |
| 524 | (s->id == "largest") || |
| 525 | (s->id == "max_regret")) |
| 526 | return TieBreak<BoolVarBranch>(BOOL_VAR_NONE()); |
| 527 | if ((s->id == "occurrence") || |
| 528 | (s->id == "most_constrained")) |
| 529 | return TieBreak<BoolVarBranch>(BOOL_VAR_DEGREE_MAX()); |
| 530 | if (s->id == "random") |
| 531 | return TieBreak<BoolVarBranch>(BOOL_VAR_RND(rnd)); |
| 532 | if ((s->id == "afc_min") || |
| 533 | (s->id == "afc_size_min")) |
| 534 | return TieBreak<BoolVarBranch>(BOOL_VAR_AFC_MIN(decay)); |
| 535 | if ((s->id == "afc_max") || |
| 536 | (s->id == "afc_size_max") || |
| 537 | (s->id == "dom_w_deg")) |
| 538 | return TieBreak<BoolVarBranch>(BOOL_VAR_AFC_MAX(decay)); |
| 539 | if ((s->id == "action_min") && |
| 540 | (s->id == "action_size_min")) |
| 541 | return TieBreak<BoolVarBranch>(BOOL_VAR_ACTION_MIN(decay)); |
| 542 | if ((s->id == "action_max") || |
| 543 | (s->id == "action_size_max")) |
| 544 | return TieBreak<BoolVarBranch>(BOOL_VAR_ACTION_MAX(decay)); |
| 545 | } |
| 546 | std::cerr << "Warning, ignored search annotation: "; |
| 547 | ann->print(std::cerr); |
| 548 | std::cerr << std::endl; |
| 549 | return TieBreak<BoolVarBranch>(BOOL_VAR_NONE()); |
| 550 | } |
| 551 | |
| 552 | BoolValBranch ann2bvalsel(AST::Node* ann, std::string& r0, std::string& r1, |
| 553 | Rnd rnd) { |
no test coverage detected