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

Function ann2ivalsel

gecode/flatzinc/flatzinc.cpp:449–498  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

447 }
448
449 IntValBranch ann2ivalsel(AST::Node* ann, std::string& r0, std::string& r1,
450 Rnd rnd) {
451 if (AST::Atom* s = dynamic_cast<AST::Atom*>(ann)) {
452 if (s->id == "indomain_min") {
453 r0 = "="; r1 = "!=";
454 return INT_VAL_MIN();
455 }
456 if (s->id == "indomain_max") {
457 r0 = "="; r1 = "!=";
458 return INT_VAL_MAX();
459 }
460 if (s->id == "indomain_median") {
461 r0 = "="; r1 = "!=";
462 return INT_VAL_MED();
463 }
464 if (s->id == "indomain_split") {
465 r0 = "<="; r1 = ">";
466 return INT_VAL_SPLIT_MIN();
467 }
468 if (s->id == "indomain_reverse_split") {
469 r0 = ">"; r1 = "<=";
470 return INT_VAL_SPLIT_MAX();
471 }
472 if (s->id == "indomain_random") {
473 r0 = "="; r1 = "!=";
474 return INT_VAL_RND(rnd);
475 }
476 if (s->id == "indomain") {
477 r0 = "="; r1 = "=";
478 return INT_VALUES_MIN();
479 }
480 if (s->id == "indomain_middle") {
481 std::cerr << "Warning, replacing unsupported annotation "
482 << "indomain_middle with indomain_median" << std::endl;
483 r0 = "="; r1 = "!=";
484 return INT_VAL_MED();
485 }
486 if (s->id == "indomain_interval") {
487 std::cerr << "Warning, replacing unsupported annotation "
488 << "indomain_interval with indomain_split" << std::endl;
489 r0 = "<="; r1 = ">";
490 return INT_VAL_SPLIT_MIN();
491 }
492 }
493 std::cerr << "Warning, ignored search annotation: ";
494 ann->print(std::cerr);
495 std::cerr << std::endl;
496 r0 = "="; r1 = "!=";
497 return INT_VAL_MIN();
498 }
499
500 IntAssign ann2asnivalsel(AST::Node* ann, Rnd rnd) {
501 if (AST::Atom* s = dynamic_cast<AST::Atom*>(ann)) {

Callers 1

createBranchersMethod · 0.85

Calls 8

INT_VAL_MINFunction · 0.85
INT_VAL_MAXFunction · 0.85
INT_VAL_MEDFunction · 0.85
INT_VAL_SPLIT_MINFunction · 0.85
INT_VAL_SPLIT_MAXFunction · 0.85
INT_VAL_RNDFunction · 0.85
INT_VALUES_MINFunction · 0.85
printMethod · 0.45

Tested by

no test coverage detected