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

Function ann2bvalsel

gecode/flatzinc/flatzinc.cpp:552–601  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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)) {

Callers 1

createBranchersMethod · 0.85

Calls 4

BOOL_VAL_MINFunction · 0.85
BOOL_VAL_MAXFunction · 0.85
BOOL_VAL_RNDFunction · 0.85
printMethod · 0.45

Tested by

no test coverage detected