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

Function p_bin_packing_load

gecode/flatzinc/registry.cpp:985–1009  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

983 }
984
985 void p_bin_packing_load(FlatZincSpace& s, const ConExpr& ce,
986 AST::Node* ann) {
987 int minIdx = ce[3]->getInt();
988 IntVarArgs load = s.arg2intvarargs(ce[0]);
989 IntVarArgs l;
990 IntVarArgs bin = s.arg2intvarargs(ce[1]);
991 for (int i=bin.size(); i--;)
992 rel(s, bin[i] >= minIdx);
993 if (minIdx > 0) {
994 for (int i=minIdx; i--;)
995 l << IntVar(s,0,0);
996 } else if (minIdx < 0) {
997 IntVarArgs bin2(bin.size());
998 for (int i=bin.size(); i--;)
999 bin2[i] = expr(s, bin[i]-minIdx, s.ann2ipl(ann));
1000 bin = bin2;
1001 }
1002 l << load;
1003 IntArgs sizes = s.arg2intargs(ce[2]);
1004
1005 IntVarArgs allvars = l + bin;
1006 unshare(s, allvars);
1007 binpacking(s, allvars.slice(0,1,l.size()), allvars.slice(l.size(),1,bin.size()),
1008 sizes, s.ann2ipl(ann));
1009 }
1010
1011 void p_global_cardinality(FlatZincSpace& s, const ConExpr& ce,
1012 AST::Node* ann) {

Callers

nothing calls this directly

Calls 11

unshareFunction · 0.85
binpackingFunction · 0.85
getIntMethod · 0.80
arg2intvarargsMethod · 0.80
ann2iplMethod · 0.80
arg2intargsMethod · 0.80
relFunction · 0.50
IntVarClass · 0.50
exprFunction · 0.50
sizeMethod · 0.45
sliceMethod · 0.45

Tested by

no test coverage detected