| 550 | } |
| 551 | |
| 552 | BoolValBranch ann2bvalsel(AST::Node* ann, std::string& r0, std::string& r1, |
| 553 | Rnd rnd) { |
| 554 | if (AST::Atom* s = dynamic_cast<AST::Atom*>(ann)) { |
| 555 | if (s->id == "indomain_min") { |
| 556 | r0 = "="; r1 = "!="; |
| 557 | return BOOL_VAL_MIN(); |
| 558 | } |
| 559 | if (s->id == "indomain_max") { |
| 560 | r0 = "="; r1 = "!="; |
| 561 | return BOOL_VAL_MAX(); |
| 562 | } |
| 563 | if (s->id == "indomain_median") { |
| 564 | r0 = "="; r1 = "!="; |
| 565 | return BOOL_VAL_MIN(); |
| 566 | } |
| 567 | if (s->id == "indomain_split") { |
| 568 | r0 = "<="; r1 = ">"; |
| 569 | return BOOL_VAL_MIN(); |
| 570 | } |
| 571 | if (s->id == "indomain_reverse_split") { |
| 572 | r0 = ">"; r1 = "<="; |
| 573 | return BOOL_VAL_MAX(); |
| 574 | } |
| 575 | if (s->id == "indomain_random") { |
| 576 | r0 = "="; r1 = "!="; |
| 577 | return BOOL_VAL_RND(rnd); |
| 578 | } |
| 579 | if (s->id == "indomain") { |
| 580 | r0 = "="; r1 = "="; |
| 581 | return BOOL_VAL_MIN(); |
| 582 | } |
| 583 | if (s->id == "indomain_middle") { |
| 584 | std::cerr << "Warning, replacing unsupported annotation " |
| 585 | << "indomain_middle with indomain_median" << std::endl; |
| 586 | r0 = "="; r1 = "!="; |
| 587 | return BOOL_VAL_MIN(); |
| 588 | } |
| 589 | if (s->id == "indomain_interval") { |
| 590 | std::cerr << "Warning, replacing unsupported annotation " |
| 591 | << "indomain_interval with indomain_split" << std::endl; |
| 592 | r0 = "<="; r1 = ">"; |
| 593 | return BOOL_VAL_MIN(); |
| 594 | } |
| 595 | } |
| 596 | std::cerr << "Warning, ignored search annotation: "; |
| 597 | ann->print(std::cerr); |
| 598 | std::cerr << std::endl; |
| 599 | r0 = "="; r1 = "!="; |
| 600 | return BOOL_VAL_MIN(); |
| 601 | } |
| 602 | |
| 603 | BoolAssign ann2asnbvalsel(AST::Node* ann, Rnd rnd) { |
| 604 | if (AST::Atom* s = dynamic_cast<AST::Atom*>(ann)) { |
no test coverage detected