gecoder-with-gecode 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +81 -0
- data/COPYING +17 -0
- data/LGPL-LICENSE +458 -0
- data/README +45 -0
- data/Rakefile +13 -0
- data/example/example_helper.rb +1 -0
- data/example/magic_sequence.rb +43 -0
- data/example/queens.rb +43 -0
- data/example/raw_bindings.rb +42 -0
- data/example/send_more_money.rb +43 -0
- data/example/send_most_money.rb +58 -0
- data/example/square_tiling.rb +84 -0
- data/example/sudoku-set.rb +110 -0
- data/example/sudoku.rb +61 -0
- data/ext/extconf.rb +29 -0
- data/ext/gecode-1.3.1/LICENSE +34 -0
- data/ext/gecode-1.3.1/Makefile.contribs +71 -0
- data/ext/gecode-1.3.1/Makefile.dep +3928 -0
- data/ext/gecode-1.3.1/Makefile.in +966 -0
- data/ext/gecode-1.3.1/changelog.in +1065 -0
- data/ext/gecode-1.3.1/configure +8590 -0
- data/ext/gecode-1.3.1/configure.ac +179 -0
- data/ext/gecode-1.3.1/configure.ac.in +175 -0
- data/ext/gecode-1.3.1/contribs/README +26 -0
- data/ext/gecode-1.3.1/contribs/graph/INSTALL +53 -0
- data/ext/gecode-1.3.1/contribs/graph/LICENSE +11 -0
- data/ext/gecode-1.3.1/contribs/graph/Makefile +167 -0
- data/ext/gecode-1.3.1/contribs/graph/Makefile.in.in +169 -0
- data/ext/gecode-1.3.1/contribs/graph/TODO +28 -0
- data/ext/gecode-1.3.1/contribs/graph/binarysimple.hh +82 -0
- data/ext/gecode-1.3.1/contribs/graph/binarysimple.icc +186 -0
- data/ext/gecode-1.3.1/contribs/graph/branch/branch.icc +257 -0
- data/ext/gecode-1.3.1/contribs/graph/configure +2160 -0
- data/ext/gecode-1.3.1/contribs/graph/configure.ac +33 -0
- data/ext/gecode-1.3.1/contribs/graph/doxygen.conf +1226 -0
- data/ext/gecode-1.3.1/contribs/graph/doxygen.hh +132 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-basic.cc +94 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-complement.cc +104 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-instUB.cc +105 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-path.cc +92 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-path2.cc +273 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-pathcost.cc +311 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/g1.txt +1 -0
- data/ext/gecode-1.3.1/contribs/graph/examples/g2.txt +1 -0
- data/ext/gecode-1.3.1/contribs/graph/graph.hh +51 -0
- data/ext/gecode-1.3.1/contribs/graph/graphutils.h +46 -0
- data/ext/gecode-1.3.1/contribs/graph/graphutils.icc +140 -0
- data/ext/gecode-1.3.1/contribs/graph/misc/doxygen/footer.html +1 -0
- data/ext/gecode-1.3.1/contribs/graph/path.hh +116 -0
- data/ext/gecode-1.3.1/contribs/graph/path.icc +64 -0
- data/ext/gecode-1.3.1/contribs/graph/path/path.icc +139 -0
- data/ext/gecode-1.3.1/contribs/graph/path/pathdegree.icc +133 -0
- data/ext/gecode-1.3.1/contribs/graph/path/pathgraphs.icc +341 -0
- data/ext/gecode-1.3.1/contribs/graph/shortdesc.ac +1 -0
- data/ext/gecode-1.3.1/contribs/graph/stlutility.icc +105 -0
- data/ext/gecode-1.3.1/contribs/graph/var.icc +106 -0
- data/ext/gecode-1.3.1/contribs/graph/view.icc +373 -0
- data/ext/gecode-1.3.1/contribs/graph/view/arcnode.cc +162 -0
- data/ext/gecode-1.3.1/contribs/graph/view/arcnode.hh +78 -0
- data/ext/gecode-1.3.1/contribs/graph/view/boundsgraphs.icc +349 -0
- data/ext/gecode-1.3.1/contribs/graph/view/constant.icc +148 -0
- data/ext/gecode-1.3.1/contribs/graph/view/iter.icc +337 -0
- data/ext/gecode-1.3.1/contribs/graph/view/nodearcsets.icc +493 -0
- data/ext/gecode-1.3.1/contribs/graph/view/nodeset.icc +60 -0
- data/ext/gecode-1.3.1/contribs/graph/view/outadjsets.icc +600 -0
- data/ext/gecode-1.3.1/contribs/graph/view/prop.icc +135 -0
- data/ext/gecode-1.3.1/contribs/map/COMPILING +68 -0
- data/ext/gecode-1.3.1/contribs/map/LICENSE +11 -0
- data/ext/gecode-1.3.1/contribs/map/Makefile.in.in +173 -0
- data/ext/gecode-1.3.1/contribs/map/configure +2285 -0
- data/ext/gecode-1.3.1/contribs/map/configure.ac +32 -0
- data/ext/gecode-1.3.1/contribs/map/constraints.hh +46 -0
- data/ext/gecode-1.3.1/contribs/map/constraints.icc +84 -0
- data/ext/gecode-1.3.1/contribs/map/doxygen.conf +1229 -0
- data/ext/gecode-1.3.1/contribs/map/doxygen.hh +33 -0
- data/ext/gecode-1.3.1/contribs/map/examples/approximateMatching.cc +199 -0
- data/ext/gecode-1.3.1/contribs/map/examples/g1.txt +1 -0
- data/ext/gecode-1.3.1/contribs/map/examples/g2.txt +1 -0
- data/ext/gecode-1.3.1/contribs/map/examples/graph-examples.tgz +0 -0
- data/ext/gecode-1.3.1/contribs/map/examples/isomorphism.cc +148 -0
- data/ext/gecode-1.3.1/contribs/map/examples/map +0 -0
- data/ext/gecode-1.3.1/contribs/map/examples/map.cc +80 -0
- data/ext/gecode-1.3.1/contribs/map/examples/subgraphmonomorphism.cc +155 -0
- data/ext/gecode-1.3.1/contribs/map/map.hh +65 -0
- data/ext/gecode-1.3.1/contribs/map/matching/mono.hh +235 -0
- data/ext/gecode-1.3.1/contribs/map/matching/mono.icc +771 -0
- data/ext/gecode-1.3.1/contribs/map/shortdesc.ac +2 -0
- data/ext/gecode-1.3.1/contribs/map/var.icc +346 -0
- data/ext/gecode-1.3.1/contribs/map/var/imp.cc +42 -0
- data/ext/gecode-1.3.1/contribs/map/var/imp.icc +436 -0
- data/ext/gecode-1.3.1/doxygen.conf.in +1225 -0
- data/ext/gecode-1.3.1/doxygen.hh.in +877 -0
- data/ext/gecode-1.3.1/examples/all-interval-sort.cc +201 -0
- data/ext/gecode-1.3.1/examples/all-interval.cc +114 -0
- data/ext/gecode-1.3.1/examples/alpha.cc +112 -0
- data/ext/gecode-1.3.1/examples/baseline.cc +71 -0
- data/ext/gecode-1.3.1/examples/bibd.cc +173 -0
- data/ext/gecode-1.3.1/examples/black-hole.cc +281 -0
- data/ext/gecode-1.3.1/examples/cars.cc +165 -0
- data/ext/gecode-1.3.1/examples/crew.cc +220 -0
- data/ext/gecode-1.3.1/examples/crowded-chess.cc +312 -0
- data/ext/gecode-1.3.1/examples/donald.cc +93 -0
- data/ext/gecode-1.3.1/examples/eq20.cc +111 -0
- data/ext/gecode-1.3.1/examples/golf.cc +242 -0
- data/ext/gecode-1.3.1/examples/golomb.cc +141 -0
- data/ext/gecode-1.3.1/examples/graph-color.cc +371 -0
- data/ext/gecode-1.3.1/examples/grocery.cc +107 -0
- data/ext/gecode-1.3.1/examples/hamming.cc +107 -0
- data/ext/gecode-1.3.1/examples/ind-set.cc +130 -0
- data/ext/gecode-1.3.1/examples/knights.cc +146 -0
- data/ext/gecode-1.3.1/examples/langfordnum.cc +244 -0
- data/ext/gecode-1.3.1/examples/magic-sequence-gcc.cc +93 -0
- data/ext/gecode-1.3.1/examples/magic-sequence.cc +108 -0
- data/ext/gecode-1.3.1/examples/magic-square.cc +120 -0
- data/ext/gecode-1.3.1/examples/money.cc +92 -0
- data/ext/gecode-1.3.1/examples/ortho-latin.cc +156 -0
- data/ext/gecode-1.3.1/examples/packing.cc +211 -0
- data/ext/gecode-1.3.1/examples/partition.cc +126 -0
- data/ext/gecode-1.3.1/examples/photo.cc +155 -0
- data/ext/gecode-1.3.1/examples/picture-puzzle.cc +481 -0
- data/ext/gecode-1.3.1/examples/queen-armies.cc +240 -0
- data/ext/gecode-1.3.1/examples/queens.cc +99 -0
- data/ext/gecode-1.3.1/examples/sports-league.cc +454 -0
- data/ext/gecode-1.3.1/examples/steiner.cc +148 -0
- data/ext/gecode-1.3.1/examples/stress-domain.cc +86 -0
- data/ext/gecode-1.3.1/examples/stress-element.cc +95 -0
- data/ext/gecode-1.3.1/examples/stress-exec.cc +74 -0
- data/ext/gecode-1.3.1/examples/stress-min.cc +84 -0
- data/ext/gecode-1.3.1/examples/stress-search.cc +72 -0
- data/ext/gecode-1.3.1/examples/sudoku-mixed.cc +282 -0
- data/ext/gecode-1.3.1/examples/sudoku-set.cc +162 -0
- data/ext/gecode-1.3.1/examples/sudoku.cc +188 -0
- data/ext/gecode-1.3.1/examples/sudoku.icc +703 -0
- data/ext/gecode-1.3.1/examples/support.cc +160 -0
- data/ext/gecode-1.3.1/examples/support.hh +98 -0
- data/ext/gecode-1.3.1/examples/support.icc +187 -0
- data/ext/gecode-1.3.1/examples/timer.cc +47 -0
- data/ext/gecode-1.3.1/examples/timer.hh +72 -0
- data/ext/gecode-1.3.1/examples/warehouses.cc +176 -0
- data/ext/gecode-1.3.1/extconf.rb +8 -0
- data/ext/gecode-1.3.1/gecode.m4 +736 -0
- data/ext/gecode-1.3.1/gecode/config.icc.in +50 -0
- data/ext/gecode-1.3.1/gecode/int.hh +1426 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic.cc +87 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic.hh +292 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic/abs.icc +213 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic/max.icc +196 -0
- data/ext/gecode-1.3.1/gecode/int/arithmetic/mult.icc +478 -0
- data/ext/gecode-1.3.1/gecode/int/array.cc +61 -0
- data/ext/gecode-1.3.1/gecode/int/array.icc +264 -0
- data/ext/gecode-1.3.1/gecode/int/bool.cc +187 -0
- data/ext/gecode-1.3.1/gecode/int/bool.hh +255 -0
- data/ext/gecode-1.3.1/gecode/int/bool/base.icc +123 -0
- data/ext/gecode-1.3.1/gecode/int/bool/eq.icc +89 -0
- data/ext/gecode-1.3.1/gecode/int/bool/eqv.icc +132 -0
- data/ext/gecode-1.3.1/gecode/int/bool/or.icc +380 -0
- data/ext/gecode-1.3.1/gecode/int/branch.cc +81 -0
- data/ext/gecode-1.3.1/gecode/int/branch.hh +444 -0
- data/ext/gecode-1.3.1/gecode/int/branch/assign.cc +83 -0
- data/ext/gecode-1.3.1/gecode/int/branch/assign.icc +76 -0
- data/ext/gecode-1.3.1/gecode/int/branch/select-val.icc +104 -0
- data/ext/gecode-1.3.1/gecode/int/branch/select-view.icc +219 -0
- data/ext/gecode-1.3.1/gecode/int/channel.cc +62 -0
- data/ext/gecode-1.3.1/gecode/int/channel.hh +144 -0
- data/ext/gecode-1.3.1/gecode/int/channel/base.icc +60 -0
- data/ext/gecode-1.3.1/gecode/int/channel/dom.icc +313 -0
- data/ext/gecode-1.3.1/gecode/int/channel/stack.icc +59 -0
- data/ext/gecode-1.3.1/gecode/int/channel/val.icc +239 -0
- data/ext/gecode-1.3.1/gecode/int/count.cc +174 -0
- data/ext/gecode-1.3.1/gecode/int/count.hh +401 -0
- data/ext/gecode-1.3.1/gecode/int/count/int.icc +495 -0
- data/ext/gecode-1.3.1/gecode/int/count/rel.icc +100 -0
- data/ext/gecode-1.3.1/gecode/int/count/view.icc +332 -0
- data/ext/gecode-1.3.1/gecode/int/cumulatives.cc +210 -0
- data/ext/gecode-1.3.1/gecode/int/cumulatives.hh +118 -0
- data/ext/gecode-1.3.1/gecode/int/cumulatives/val.icc +377 -0
- data/ext/gecode-1.3.1/gecode/int/distinct.cc +77 -0
- data/ext/gecode-1.3.1/gecode/int/distinct.hh +272 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/bilink.icc +73 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/bnd.icc +335 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/combptr.icc +62 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/dom.icc +740 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/edge.icc +96 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/node.icc +107 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/ter-dom.icc +97 -0
- data/ext/gecode-1.3.1/gecode/int/distinct/val.icc +171 -0
- data/ext/gecode-1.3.1/gecode/int/dom.cc +81 -0
- data/ext/gecode-1.3.1/gecode/int/dom.hh +101 -0
- data/ext/gecode-1.3.1/gecode/int/dom/range.icc +85 -0
- data/ext/gecode-1.3.1/gecode/int/dom/spec.icc +85 -0
- data/ext/gecode-1.3.1/gecode/int/element.cc +58 -0
- data/ext/gecode-1.3.1/gecode/int/element.hh +203 -0
- data/ext/gecode-1.3.1/gecode/int/element/int.icc +396 -0
- data/ext/gecode-1.3.1/gecode/int/element/view.icc +443 -0
- data/ext/gecode-1.3.1/gecode/int/exception.icc +137 -0
- data/ext/gecode-1.3.1/gecode/int/gcc.cc +708 -0
- data/ext/gecode-1.3.1/gecode/int/gcc.hh +338 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/bnd.icc +629 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/dom.icc +504 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/gccbndsup.icc +760 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/graphsup.icc +2375 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/lbc.icc +375 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/occur.icc +687 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/ubc.icc +236 -0
- data/ext/gecode-1.3.1/gecode/int/gcc/val.icc +373 -0
- data/ext/gecode-1.3.1/gecode/int/int-set.cc +115 -0
- data/ext/gecode-1.3.1/gecode/int/int-set.icc +151 -0
- data/ext/gecode-1.3.1/gecode/int/linear.cc +247 -0
- data/ext/gecode-1.3.1/gecode/int/linear.hh +1056 -0
- data/ext/gecode-1.3.1/gecode/int/linear/binary.icc +439 -0
- data/ext/gecode-1.3.1/gecode/int/linear/bool-int.icc +422 -0
- data/ext/gecode-1.3.1/gecode/int/linear/bool-view.icc +311 -0
- data/ext/gecode-1.3.1/gecode/int/linear/dom.icc +503 -0
- data/ext/gecode-1.3.1/gecode/int/linear/nary.icc +857 -0
- data/ext/gecode-1.3.1/gecode/int/linear/noview.icc +264 -0
- data/ext/gecode-1.3.1/gecode/int/linear/post.cc +542 -0
- data/ext/gecode-1.3.1/gecode/int/linear/ternary.icc +255 -0
- data/ext/gecode-1.3.1/gecode/int/propagator.icc +194 -0
- data/ext/gecode-1.3.1/gecode/int/regular.cc +40 -0
- data/ext/gecode-1.3.1/gecode/int/regular.hh +83 -0
- data/ext/gecode-1.3.1/gecode/int/regular/dfa.cc +466 -0
- data/ext/gecode-1.3.1/gecode/int/regular/dfa.icc +172 -0
- data/ext/gecode-1.3.1/gecode/int/regular/dom.icc +480 -0
- data/ext/gecode-1.3.1/gecode/int/regular/reg.cc +738 -0
- data/ext/gecode-1.3.1/gecode/int/rel.cc +293 -0
- data/ext/gecode-1.3.1/gecode/int/rel.hh +526 -0
- data/ext/gecode-1.3.1/gecode/int/rel/eq.icc +640 -0
- data/ext/gecode-1.3.1/gecode/int/rel/lex.icc +212 -0
- data/ext/gecode-1.3.1/gecode/int/rel/lq-le.icc +246 -0
- data/ext/gecode-1.3.1/gecode/int/rel/nq.icc +188 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness.cc +124 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness.hh +108 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/matching.icc +177 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/narrowing.icc +243 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/order.icc +232 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/sortedness.icc +727 -0
- data/ext/gecode-1.3.1/gecode/int/sortedness/sortsup.icc +666 -0
- data/ext/gecode-1.3.1/gecode/int/var-imp.vis +198 -0
- data/ext/gecode-1.3.1/gecode/int/var.icc +590 -0
- data/ext/gecode-1.3.1/gecode/int/var/bool.icc +52 -0
- data/ext/gecode-1.3.1/gecode/int/var/imp-body.icc +65 -0
- data/ext/gecode-1.3.1/gecode/int/var/imp-hdr.icc +191 -0
- data/ext/gecode-1.3.1/gecode/int/var/imp.cc +361 -0
- data/ext/gecode-1.3.1/gecode/int/var/imp.icc +579 -0
- data/ext/gecode-1.3.1/gecode/int/var/int.cc +63 -0
- data/ext/gecode-1.3.1/gecode/int/var/int.icc +135 -0
- data/ext/gecode-1.3.1/gecode/int/view.icc +1219 -0
- data/ext/gecode-1.3.1/gecode/int/view/bool.icc +270 -0
- data/ext/gecode-1.3.1/gecode/int/view/constint.icc +306 -0
- data/ext/gecode-1.3.1/gecode/int/view/int.icc +221 -0
- data/ext/gecode-1.3.1/gecode/int/view/iter.icc +49 -0
- data/ext/gecode-1.3.1/gecode/int/view/minus.icc +285 -0
- data/ext/gecode-1.3.1/gecode/int/view/offset.icc +274 -0
- data/ext/gecode-1.3.1/gecode/int/view/print.cc +109 -0
- data/ext/gecode-1.3.1/gecode/int/view/rtest.icc +215 -0
- data/ext/gecode-1.3.1/gecode/int/view/scale.icc +373 -0
- data/ext/gecode-1.3.1/gecode/iter.hh +65 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-add.icc +130 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-append.icc +208 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-array.icc +123 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-cache.icc +143 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-compl.icc +206 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-diff.icc +127 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-empty.icc +96 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-inter.icc +202 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-minmax.icc +103 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-minus.icc +138 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-offset.icc +112 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-operations.icc +142 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-scale.icc +224 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-singleton.icc +71 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-size.icc +131 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-union.icc +211 -0
- data/ext/gecode-1.3.1/gecode/iter/ranges-values.icc +125 -0
- data/ext/gecode-1.3.1/gecode/iter/values-ranges.icc +91 -0
- data/ext/gecode-1.3.1/gecode/iter/virtual-ranges-compl.icc +247 -0
- data/ext/gecode-1.3.1/gecode/iter/virtual-ranges-inter.icc +227 -0
- data/ext/gecode-1.3.1/gecode/iter/virtual-ranges-union.icc +236 -0
- data/ext/gecode-1.3.1/gecode/iter/virtual-ranges.icc +126 -0
- data/ext/gecode-1.3.1/gecode/kernel.hh +141 -0
- data/ext/gecode-1.3.1/gecode/kernel/array.icc +954 -0
- data/ext/gecode-1.3.1/gecode/kernel/branching.icc +233 -0
- data/ext/gecode-1.3.1/gecode/kernel/core.cc +417 -0
- data/ext/gecode-1.3.1/gecode/kernel/core.icc +1681 -0
- data/ext/gecode-1.3.1/gecode/kernel/exception.cc +49 -0
- data/ext/gecode-1.3.1/gecode/kernel/exception.icc +104 -0
- data/ext/gecode-1.3.1/gecode/kernel/macros.icc +98 -0
- data/ext/gecode-1.3.1/gecode/kernel/memory-manager.cc +41 -0
- data/ext/gecode-1.3.1/gecode/kernel/memory-manager.icc +438 -0
- data/ext/gecode-1.3.1/gecode/kernel/memory.icc +205 -0
- data/ext/gecode-1.3.1/gecode/kernel/modevent.icc +53 -0
- data/ext/gecode-1.3.1/gecode/kernel/propagator.icc +680 -0
- data/ext/gecode-1.3.1/gecode/kernel/view.icc +583 -0
- data/ext/gecode-1.3.1/gecode/limits.hh +87 -0
- data/ext/gecode-1.3.1/gecode/minimodel.hh +942 -0
- data/ext/gecode-1.3.1/gecode/minimodel/arithmetic.cc +137 -0
- data/ext/gecode-1.3.1/gecode/minimodel/bool-expr.cc +207 -0
- data/ext/gecode-1.3.1/gecode/minimodel/bool-expr.icc +191 -0
- data/ext/gecode-1.3.1/gecode/minimodel/bool-rel.icc +66 -0
- data/ext/gecode-1.3.1/gecode/minimodel/exception.icc +59 -0
- data/ext/gecode-1.3.1/gecode/minimodel/lin-expr.cc +103 -0
- data/ext/gecode-1.3.1/gecode/minimodel/lin-expr.icc +192 -0
- data/ext/gecode-1.3.1/gecode/minimodel/lin-rel.icc +200 -0
- data/ext/gecode-1.3.1/gecode/minimodel/matrix.icc +118 -0
- data/ext/gecode-1.3.1/gecode/minimodel/scheduling.cc +241 -0
- data/ext/gecode-1.3.1/gecode/search.hh +745 -0
- data/ext/gecode-1.3.1/gecode/search/bab.cc +153 -0
- data/ext/gecode-1.3.1/gecode/search/bab.icc +101 -0
- data/ext/gecode-1.3.1/gecode/search/dfs.cc +63 -0
- data/ext/gecode-1.3.1/gecode/search/dfs.icc +144 -0
- data/ext/gecode-1.3.1/gecode/search/engine-ctrl.icc +109 -0
- data/ext/gecode-1.3.1/gecode/search/lds.cc +237 -0
- data/ext/gecode-1.3.1/gecode/search/lds.icc +57 -0
- data/ext/gecode-1.3.1/gecode/search/reco-stack.icc +219 -0
- data/ext/gecode-1.3.1/gecode/search/restart.icc +76 -0
- data/ext/gecode-1.3.1/gecode/search/statistics.icc +30 -0
- data/ext/gecode-1.3.1/gecode/search/stop.cc +58 -0
- data/ext/gecode-1.3.1/gecode/search/stop.icc +100 -0
- data/ext/gecode-1.3.1/gecode/set.hh +419 -0
- data/ext/gecode-1.3.1/gecode/set/array.cc +114 -0
- data/ext/gecode-1.3.1/gecode/set/array.icc +134 -0
- data/ext/gecode-1.3.1/gecode/set/branch.cc +57 -0
- data/ext/gecode-1.3.1/gecode/set/branch.hh +176 -0
- data/ext/gecode-1.3.1/gecode/set/branch/select-val.icc +72 -0
- data/ext/gecode-1.3.1/gecode/set/branch/select-view.icc +112 -0
- data/ext/gecode-1.3.1/gecode/set/cardinality.cc +49 -0
- data/ext/gecode-1.3.1/gecode/set/convex.cc +43 -0
- data/ext/gecode-1.3.1/gecode/set/convex.hh +92 -0
- data/ext/gecode-1.3.1/gecode/set/convex/conv.cc +81 -0
- data/ext/gecode-1.3.1/gecode/set/convex/conv.icc +51 -0
- data/ext/gecode-1.3.1/gecode/set/convex/hull.cc +100 -0
- data/ext/gecode-1.3.1/gecode/set/convex/hull.icc +52 -0
- data/ext/gecode-1.3.1/gecode/set/distinct.cc +48 -0
- data/ext/gecode-1.3.1/gecode/set/distinct.hh +97 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/atmostOne.cc +151 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/atmostOne.icc +50 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/binomial.cc +46 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/binomial.icc +157 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/distinct.cc +124 -0
- data/ext/gecode-1.3.1/gecode/set/distinct/distinct.icc +58 -0
- data/ext/gecode-1.3.1/gecode/set/dom.cc +224 -0
- data/ext/gecode-1.3.1/gecode/set/exception.icc +132 -0
- data/ext/gecode-1.3.1/gecode/set/int.cc +139 -0
- data/ext/gecode-1.3.1/gecode/set/int.hh +226 -0
- data/ext/gecode-1.3.1/gecode/set/int/card.cc +61 -0
- data/ext/gecode-1.3.1/gecode/set/int/card.icc +54 -0
- data/ext/gecode-1.3.1/gecode/set/int/channel.cc +100 -0
- data/ext/gecode-1.3.1/gecode/set/int/channel.icc +75 -0
- data/ext/gecode-1.3.1/gecode/set/int/match.cc +148 -0
- data/ext/gecode-1.3.1/gecode/set/int/match.icc +67 -0
- data/ext/gecode-1.3.1/gecode/set/int/minmax.cc +109 -0
- data/ext/gecode-1.3.1/gecode/set/int/minmax.icc +63 -0
- data/ext/gecode-1.3.1/gecode/set/int/weights.cc +182 -0
- data/ext/gecode-1.3.1/gecode/set/int/weights.icc +174 -0
- data/ext/gecode-1.3.1/gecode/set/projectors-compiler.hh +148 -0
- data/ext/gecode-1.3.1/gecode/set/projectors.cc +109 -0
- data/ext/gecode-1.3.1/gecode/set/projectors.hh +319 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/compiler.cc +841 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/projector-set.cc +69 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/projector-set.icc +66 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/projector.cc +125 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/projector.icc +79 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator.hh +127 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator/card.icc +96 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator/nary.icc +106 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator/re-nary.cc +76 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/propagator/re-nary.icc +53 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/set-expr.cc +306 -0
- data/ext/gecode-1.3.1/gecode/set/projectors/set-expr.icc +192 -0
- data/ext/gecode-1.3.1/gecode/set/propagator.icc +96 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op-const.cc +233 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op.cc +96 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op.hh +267 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/common.icc +528 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/inter.icc +312 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/partition.icc +131 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/post.icc +198 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/subofunion.icc +150 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/superofinter.icc +151 -0
- data/ext/gecode-1.3.1/gecode/set/rel-op/union.icc +292 -0
- data/ext/gecode-1.3.1/gecode/set/rel.cc +201 -0
- data/ext/gecode-1.3.1/gecode/set/rel.hh +250 -0
- data/ext/gecode-1.3.1/gecode/set/rel/common.icc +109 -0
- data/ext/gecode-1.3.1/gecode/set/rel/eq.icc +101 -0
- data/ext/gecode-1.3.1/gecode/set/rel/nosubset.icc +88 -0
- data/ext/gecode-1.3.1/gecode/set/rel/nq.icc +132 -0
- data/ext/gecode-1.3.1/gecode/set/rel/re-eq.icc +142 -0
- data/ext/gecode-1.3.1/gecode/set/rel/re-subset.icc +121 -0
- data/ext/gecode-1.3.1/gecode/set/rel/subset.icc +80 -0
- data/ext/gecode-1.3.1/gecode/set/select.cc +88 -0
- data/ext/gecode-1.3.1/gecode/set/select.hh +113 -0
- data/ext/gecode-1.3.1/gecode/set/select/disjoint.cc +267 -0
- data/ext/gecode-1.3.1/gecode/set/select/disjoint.icc +59 -0
- data/ext/gecode-1.3.1/gecode/set/select/idxarray.hh +91 -0
- data/ext/gecode-1.3.1/gecode/set/select/idxarray.icc +112 -0
- data/ext/gecode-1.3.1/gecode/set/select/inter.icc +300 -0
- data/ext/gecode-1.3.1/gecode/set/sequence.cc +48 -0
- data/ext/gecode-1.3.1/gecode/set/sequence.hh +97 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/common.icc +79 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/seq-u.cc +83 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/seq-u.icc +63 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/seq.cc +61 -0
- data/ext/gecode-1.3.1/gecode/set/sequence/seq.icc +53 -0
- data/ext/gecode-1.3.1/gecode/set/var-imp.vis +205 -0
- data/ext/gecode-1.3.1/gecode/set/var.icc +1090 -0
- data/ext/gecode-1.3.1/gecode/set/var/imp-body.icc +192 -0
- data/ext/gecode-1.3.1/gecode/set/var/imp-hdr.icc +235 -0
- data/ext/gecode-1.3.1/gecode/set/var/imp.cc +127 -0
- data/ext/gecode-1.3.1/gecode/set/var/imp.icc +356 -0
- data/ext/gecode-1.3.1/gecode/set/var/integerset.cc +256 -0
- data/ext/gecode-1.3.1/gecode/set/var/integerset.icc +512 -0
- data/ext/gecode-1.3.1/gecode/set/var/iter.icc +47 -0
- data/ext/gecode-1.3.1/gecode/set/var/set.cc +99 -0
- data/ext/gecode-1.3.1/gecode/set/var/set.icc +282 -0
- data/ext/gecode-1.3.1/gecode/set/view.icc +1075 -0
- data/ext/gecode-1.3.1/gecode/set/view/complement.icc +525 -0
- data/ext/gecode-1.3.1/gecode/set/view/const.icc +651 -0
- data/ext/gecode-1.3.1/gecode/set/view/print.cc +120 -0
- data/ext/gecode-1.3.1/gecode/set/view/set.icc +217 -0
- data/ext/gecode-1.3.1/gecode/set/view/singleton.icc +348 -0
- data/ext/gecode-1.3.1/gecode/support/block-allocator.hh +152 -0
- data/ext/gecode-1.3.1/gecode/support/dynamic-array.hh +131 -0
- data/ext/gecode-1.3.1/gecode/support/dynamic-stack.hh +157 -0
- data/ext/gecode-1.3.1/gecode/support/random.hh +100 -0
- data/ext/gecode-1.3.1/gecode/support/shared-array.hh +255 -0
- data/ext/gecode-1.3.1/gecode/support/sort.hh +193 -0
- data/ext/gecode-1.3.1/gecode/support/static-pqueue.hh +240 -0
- data/ext/gecode-1.3.1/gecode/support/static-stack.hh +117 -0
- data/ext/gecode-1.3.1/install-sh +323 -0
- data/ext/gecode-1.3.1/misc/debian/Makefile.am +8 -0
- data/ext/gecode-1.3.1/misc/debian/changelog +6 -0
- data/ext/gecode-1.3.1/misc/debian/control +11 -0
- data/ext/gecode-1.3.1/misc/debian/copyright +44 -0
- data/ext/gecode-1.3.1/misc/debian/gecode.info +9 -0
- data/ext/gecode-1.3.1/misc/debian/gecode.install +2 -0
- data/ext/gecode-1.3.1/misc/debian/gecode.spec +58 -0
- data/ext/gecode-1.3.1/misc/debian/rules +81 -0
- data/ext/gecode-1.3.1/misc/doxygen/back.png +0 -0
- data/ext/gecode-1.3.1/misc/doxygen/footer.html +3 -0
- data/ext/gecode-1.3.1/misc/doxygen/gecode-logo-100.png +0 -0
- data/ext/gecode-1.3.1/misc/doxygen/header.html +46 -0
- data/ext/gecode-1.3.1/misc/doxygen/stylesheet.css +460 -0
- data/ext/gecode-1.3.1/misc/fixproperties.sh +32 -0
- data/ext/gecode-1.3.1/misc/gecode-minimodel.pc.in +12 -0
- data/ext/gecode-1.3.1/misc/gecode-search.pc.in +12 -0
- data/ext/gecode-1.3.1/misc/gecode.pc.in +12 -0
- data/ext/gecode-1.3.1/misc/genchangelog.perl +190 -0
- data/ext/gecode-1.3.1/misc/genlicense.perl +113 -0
- data/ext/gecode-1.3.1/misc/genstatistics.perl +155 -0
- data/ext/gecode-1.3.1/misc/gentxtchangelog.perl +170 -0
- data/ext/gecode-1.3.1/misc/genvarimp.perl +666 -0
- data/ext/gecode-1.3.1/misc/getrevision.perl +32 -0
- data/ext/gecode-1.3.1/misc/makedepend.perl +66 -0
- data/ext/gecode-1.3.1/test/int.cc +497 -0
- data/ext/gecode-1.3.1/test/int.hh +119 -0
- data/ext/gecode-1.3.1/test/int/arithmetic.cc +262 -0
- data/ext/gecode-1.3.1/test/int/basic.cc +42 -0
- data/ext/gecode-1.3.1/test/int/bool.cc +189 -0
- data/ext/gecode-1.3.1/test/int/channel.cc +79 -0
- data/ext/gecode-1.3.1/test/int/count.cc +264 -0
- data/ext/gecode-1.3.1/test/int/distinct.cc +121 -0
- data/ext/gecode-1.3.1/test/int/dom.cc +69 -0
- data/ext/gecode-1.3.1/test/int/element.cc +132 -0
- data/ext/gecode-1.3.1/test/int/gcc.cc +592 -0
- data/ext/gecode-1.3.1/test/int/linear.cc +315 -0
- data/ext/gecode-1.3.1/test/int/minimodel.cc +451 -0
- data/ext/gecode-1.3.1/test/int/regular.cc +105 -0
- data/ext/gecode-1.3.1/test/int/rel.cc +283 -0
- data/ext/gecode-1.3.1/test/int/scheduling.cc +259 -0
- data/ext/gecode-1.3.1/test/int/sortedness.cc +272 -0
- data/ext/gecode-1.3.1/test/intset.cc +40 -0
- data/ext/gecode-1.3.1/test/log.cc +515 -0
- data/ext/gecode-1.3.1/test/log.hh +68 -0
- data/ext/gecode-1.3.1/test/set.cc +542 -0
- data/ext/gecode-1.3.1/test/set.hh +152 -0
- data/ext/gecode-1.3.1/test/set/convex.cc +94 -0
- data/ext/gecode-1.3.1/test/set/distinct.cc +148 -0
- data/ext/gecode-1.3.1/test/set/dom.cc +67 -0
- data/ext/gecode-1.3.1/test/set/int.cc +249 -0
- data/ext/gecode-1.3.1/test/set/projection.cc +333 -0
- data/ext/gecode-1.3.1/test/set/rel-op.cc +662 -0
- data/ext/gecode-1.3.1/test/set/rel.cc +198 -0
- data/ext/gecode-1.3.1/test/set/select.cc +108 -0
- data/ext/gecode-1.3.1/test/set/sequence.cc +83 -0
- data/ext/gecode-1.3.1/test/stress.cc +93 -0
- data/ext/gecode-1.3.1/test/stress.hh +74 -0
- data/ext/gecode-1.3.1/test/stress/distinct.cc +70 -0
- data/ext/gecode-1.3.1/test/stress/domain.cc +69 -0
- data/ext/gecode-1.3.1/test/stress/exec.cc +60 -0
- data/ext/gecode-1.3.1/test/stress/minsort.cc +63 -0
- data/ext/gecode-1.3.1/test/stress/regular.cc +112 -0
- data/ext/gecode-1.3.1/test/test.cc +215 -0
- data/ext/gecode-1.3.1/test/test.hh +107 -0
- data/ext/missing.cpp +328 -0
- data/ext/missing.h +120 -0
- data/ext/vararray.cpp +330 -0
- data/ext/vararray.h +149 -0
- data/lib/gecoder.rb +5 -0
- data/lib/gecoder/bindings.rb +34 -0
- data/lib/gecoder/bindings/bindings.rb +2209 -0
- data/lib/gecoder/interface.rb +8 -0
- data/lib/gecoder/interface/binding_changes.rb +313 -0
- data/lib/gecoder/interface/branch.rb +152 -0
- data/lib/gecoder/interface/constraints.rb +397 -0
- data/lib/gecoder/interface/constraints/bool/boolean.rb +246 -0
- data/lib/gecoder/interface/constraints/bool/linear.rb +29 -0
- data/lib/gecoder/interface/constraints/bool_enum/boolean.rb +84 -0
- data/lib/gecoder/interface/constraints/bool_enum_constraints.rb +8 -0
- data/lib/gecoder/interface/constraints/bool_var_constraints.rb +75 -0
- data/lib/gecoder/interface/constraints/int/arithmetic.rb +71 -0
- data/lib/gecoder/interface/constraints/int/domain.rb +78 -0
- data/lib/gecoder/interface/constraints/int/linear.rb +295 -0
- data/lib/gecoder/interface/constraints/int_enum/arithmetic.rb +72 -0
- data/lib/gecoder/interface/constraints/int_enum/channel.rb +100 -0
- data/lib/gecoder/interface/constraints/int_enum/count.rb +92 -0
- data/lib/gecoder/interface/constraints/int_enum/distinct.rb +69 -0
- data/lib/gecoder/interface/constraints/int_enum/element.rb +82 -0
- data/lib/gecoder/interface/constraints/int_enum/equality.rb +38 -0
- data/lib/gecoder/interface/constraints/int_enum/sort.rb +126 -0
- data/lib/gecoder/interface/constraints/int_enum_constraints.rb +37 -0
- data/lib/gecoder/interface/constraints/int_var_constraints.rb +58 -0
- data/lib/gecoder/interface/constraints/reifiable_constraints.rb +78 -0
- data/lib/gecoder/interface/constraints/set/cardinality.rb +75 -0
- data/lib/gecoder/interface/constraints/set/connection.rb +193 -0
- data/lib/gecoder/interface/constraints/set/domain.rb +109 -0
- data/lib/gecoder/interface/constraints/set/operation.rb +132 -0
- data/lib/gecoder/interface/constraints/set/relation.rb +178 -0
- data/lib/gecoder/interface/constraints/set_enum/channel.rb +18 -0
- data/lib/gecoder/interface/constraints/set_enum/distinct.rb +80 -0
- data/lib/gecoder/interface/constraints/set_enum/operation.rb +60 -0
- data/lib/gecoder/interface/constraints/set_enum/selection.rb +217 -0
- data/lib/gecoder/interface/constraints/set_enum_constraints.rb +34 -0
- data/lib/gecoder/interface/constraints/set_var_constraints.rb +72 -0
- data/lib/gecoder/interface/enum_matrix.rb +64 -0
- data/lib/gecoder/interface/enum_wrapper.rb +153 -0
- data/lib/gecoder/interface/model.rb +251 -0
- data/lib/gecoder/interface/search.rb +123 -0
- data/lib/gecoder/interface/variables.rb +254 -0
- data/lib/gecoder/version.rb +4 -0
- data/specs/binding_changes.rb +76 -0
- data/specs/bool_var.rb +74 -0
- data/specs/branch.rb +170 -0
- data/specs/constraints/arithmetic.rb +266 -0
- data/specs/constraints/bool_enum.rb +140 -0
- data/specs/constraints/boolean.rb +232 -0
- data/specs/constraints/cardinality.rb +154 -0
- data/specs/constraints/channel.rb +126 -0
- data/specs/constraints/connection.rb +373 -0
- data/specs/constraints/constraint_helper.rb +180 -0
- data/specs/constraints/constraints.rb +74 -0
- data/specs/constraints/count.rb +139 -0
- data/specs/constraints/distinct.rb +218 -0
- data/specs/constraints/element.rb +106 -0
- data/specs/constraints/equality.rb +31 -0
- data/specs/constraints/int_domain.rb +69 -0
- data/specs/constraints/int_relation.rb +78 -0
- data/specs/constraints/linear.rb +332 -0
- data/specs/constraints/reification_sugar.rb +96 -0
- data/specs/constraints/selection.rb +292 -0
- data/specs/constraints/set_domain.rb +181 -0
- data/specs/constraints/set_operation.rb +285 -0
- data/specs/constraints/set_relation.rb +201 -0
- data/specs/constraints/sort.rb +175 -0
- data/specs/enum_matrix.rb +43 -0
- data/specs/enum_wrapper.rb +122 -0
- data/specs/int_var.rb +144 -0
- data/specs/logging.rb +24 -0
- data/specs/model.rb +190 -0
- data/specs/search.rb +246 -0
- data/specs/set_var.rb +68 -0
- data/specs/spec_helper.rb +93 -0
- data/tasks/all_tasks.rb +1 -0
- data/tasks/distribution.rake +129 -0
- data/tasks/rcov.rake +17 -0
- data/tasks/specs.rake +15 -0
- data/tasks/svn.rake +11 -0
- data/tasks/website.rake +51 -0
- data/vendor/rust/README +28 -0
- data/vendor/rust/bin/cxxgenerator.rb +93 -0
- data/vendor/rust/include/rust_checks.hh +115 -0
- data/vendor/rust/include/rust_conversions.hh +102 -0
- data/vendor/rust/rust.rb +67 -0
- data/vendor/rust/rust/attribute.rb +51 -0
- data/vendor/rust/rust/bindings.rb +172 -0
- data/vendor/rust/rust/class.rb +339 -0
- data/vendor/rust/rust/constants.rb +48 -0
- data/vendor/rust/rust/container.rb +110 -0
- data/vendor/rust/rust/cppifaceparser.rb +129 -0
- data/vendor/rust/rust/cwrapper.rb +72 -0
- data/vendor/rust/rust/cxxclass.rb +98 -0
- data/vendor/rust/rust/element.rb +81 -0
- data/vendor/rust/rust/enum.rb +63 -0
- data/vendor/rust/rust/function.rb +407 -0
- data/vendor/rust/rust/namespace.rb +61 -0
- data/vendor/rust/rust/templates/AttributeDefinition.rusttpl +17 -0
- data/vendor/rust/rust/templates/AttributeInitBinding.rusttpl +9 -0
- data/vendor/rust/rust/templates/BindingsHeader.rusttpl +24 -0
- data/vendor/rust/rust/templates/BindingsUnit.rusttpl +46 -0
- data/vendor/rust/rust/templates/CWrapperClassDefinitions.rusttpl +64 -0
- data/vendor/rust/rust/templates/ClassDeclarations.rusttpl +7 -0
- data/vendor/rust/rust/templates/ClassInitialize.rusttpl +6 -0
- data/vendor/rust/rust/templates/ConstructorStub.rusttpl +21 -0
- data/vendor/rust/rust/templates/CxxClassDefinitions.rusttpl +91 -0
- data/vendor/rust/rust/templates/CxxMethodStub.rusttpl +12 -0
- data/vendor/rust/rust/templates/CxxStandaloneClassDefinitions.rusttpl +26 -0
- data/vendor/rust/rust/templates/EnumDeclarations.rusttpl +3 -0
- data/vendor/rust/rust/templates/EnumDefinitions.rusttpl +29 -0
- data/vendor/rust/rust/templates/FunctionDefinition.rusttpl +9 -0
- data/vendor/rust/rust/templates/FunctionInitAlias.rusttpl +5 -0
- data/vendor/rust/rust/templates/FunctionInitBinding.rusttpl +9 -0
- data/vendor/rust/rust/templates/MethodInitBinding.rusttpl +9 -0
- data/vendor/rust/rust/templates/ModuleDeclarations.rusttpl +3 -0
- data/vendor/rust/rust/templates/ModuleDefinitions.rusttpl +3 -0
- data/vendor/rust/rust/templates/StandaloneClassDeclarations.rusttpl +7 -0
- data/vendor/rust/rust/templates/VariableFunctionCall.rusttpl +14 -0
- data/vendor/rust/rust/type.rb +98 -0
- data/vendor/rust/test/Makefile +4 -0
- data/vendor/rust/test/constants.rb +36 -0
- data/vendor/rust/test/cppclass.cc +45 -0
- data/vendor/rust/test/cppclass.hh +67 -0
- data/vendor/rust/test/cppclass.rb +59 -0
- data/vendor/rust/test/cwrapper.c +74 -0
- data/vendor/rust/test/cwrapper.h +41 -0
- data/vendor/rust/test/cwrapper.rb +56 -0
- data/vendor/rust/test/dummyclass.hh +31 -0
- data/vendor/rust/test/lib/extension-test.rb +98 -0
- data/vendor/rust/test/operators.cc +41 -0
- data/vendor/rust/test/operators.hh +39 -0
- data/vendor/rust/test/operators.rb +39 -0
- data/vendor/rust/test/test-constants.rb +43 -0
- data/vendor/rust/test/test-cppclass.rb +82 -0
- data/vendor/rust/test/test-cwrapper.rb +80 -0
- data/vendor/rust/test/test-operators.rb +42 -0
- metadata +826 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Christian Schulte, 2004
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-03-31 10:27:07 +0200 (Fri, 31 Mar 2006) $ by $Author: schulte $
|
|
10
|
+
* $Revision: 3142 $
|
|
11
|
+
*
|
|
12
|
+
* This file is part of Gecode, the generic constraint
|
|
13
|
+
* development environment:
|
|
14
|
+
* http://www.gecode.org
|
|
15
|
+
*
|
|
16
|
+
* See the file "LICENSE" for information on usage and
|
|
17
|
+
* redistribution of this file, and for a
|
|
18
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
namespace Gecode {
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
* Control for restart best solution search engine
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
template <class T>
|
|
30
|
+
Restart<T>::Restart(T* s, unsigned int c_d, unsigned int a_d,
|
|
31
|
+
Search::Stop* st) :
|
|
32
|
+
Gecode::DFS<T>(s,c_d,a_d,st), root(s->clone()), best(NULL) {}
|
|
33
|
+
|
|
34
|
+
template <class T>
|
|
35
|
+
forceinline
|
|
36
|
+
Restart<T>::~Restart(void) {
|
|
37
|
+
delete best;
|
|
38
|
+
delete root;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
template <class T>
|
|
42
|
+
forceinline T*
|
|
43
|
+
Restart<T>::next(void) {
|
|
44
|
+
if (best != NULL) {
|
|
45
|
+
static_cast<T*>(root)->constrain(static_cast<T*>(best));
|
|
46
|
+
this->e.clone++;
|
|
47
|
+
this->e.reset(root->clone(true,this->e.propagate));
|
|
48
|
+
}
|
|
49
|
+
Space* b = this->e.explore();
|
|
50
|
+
delete best;
|
|
51
|
+
best = (b != NULL) ? b->clone() : NULL;
|
|
52
|
+
return static_cast<T*>(b);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
/*
|
|
59
|
+
* Restart convenience
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
template <class T>
|
|
64
|
+
T*
|
|
65
|
+
restart(T* s, unsigned int c_d, unsigned int a_d, Search::Stop* st) {
|
|
66
|
+
Restart<T> b(s,c_d,a_d,st);
|
|
67
|
+
T* l = NULL;
|
|
68
|
+
while (T* n = b.next()) {
|
|
69
|
+
delete l; l = n;
|
|
70
|
+
}
|
|
71
|
+
return l;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// STATISTICS: search-any
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Christian Schulte, 2004
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-03-30 19:42:28 +0200 (Thu, 30 Mar 2006) $ by $Author: schulte $
|
|
10
|
+
* $Revision: 3141 $
|
|
11
|
+
*
|
|
12
|
+
* This file is part of Gecode, the generic constraint
|
|
13
|
+
* development environment:
|
|
14
|
+
* http://www.gecode.org
|
|
15
|
+
*
|
|
16
|
+
* See the file "LICENSE" for information on usage and
|
|
17
|
+
* redistribution of this file, and for a
|
|
18
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
namespace Gecode { namespace Search {
|
|
23
|
+
|
|
24
|
+
forceinline
|
|
25
|
+
Statistics::Statistics(void)
|
|
26
|
+
: propagate(0), fail(0), clone(0), commit(0), memory(0) {}
|
|
27
|
+
|
|
28
|
+
}}
|
|
29
|
+
|
|
30
|
+
// STATISTICS: search-any
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Christian Schulte, 2006
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-08-04 16:03:17 +0200 (Fri, 04 Aug 2006) $ by $Author: schulte $
|
|
10
|
+
* $Revision: 3511 $
|
|
11
|
+
*
|
|
12
|
+
* This file is part of Gecode, the generic constraint
|
|
13
|
+
* development environment:
|
|
14
|
+
* http://www.gecode.org
|
|
15
|
+
*
|
|
16
|
+
* See the file "LICENSE" for information on usage and
|
|
17
|
+
* redistribution of this file, and for a
|
|
18
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#include "gecode/search.hh"
|
|
23
|
+
|
|
24
|
+
namespace Gecode { namespace Search {
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* Stopping for memory limit
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
bool
|
|
31
|
+
MemoryStop::stop(const Statistics& s) {
|
|
32
|
+
return s.memory > l;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* Stopping for memory limit
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
bool
|
|
41
|
+
FailStop::stop(const Statistics& s) {
|
|
42
|
+
return s.fail > l;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
/*
|
|
47
|
+
* Stopping for memory limit
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
|
+
bool
|
|
51
|
+
TimeStop::stop(const Statistics&) {
|
|
52
|
+
return static_cast<unsigned long int>
|
|
53
|
+
((static_cast<double>(clock()-s)/CLOCKS_PER_SEC) * 1000.0) > l;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
}}
|
|
57
|
+
|
|
58
|
+
// STATISTICS: search-any
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Christian Schulte, 2006
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-08-04 16:03:17 +0200 (Fri, 04 Aug 2006) $ by $Author: schulte $
|
|
10
|
+
* $Revision: 3511 $
|
|
11
|
+
*
|
|
12
|
+
* This file is part of Gecode, the generic constraint
|
|
13
|
+
* development environment:
|
|
14
|
+
* http://www.gecode.org
|
|
15
|
+
*
|
|
16
|
+
* See the file "LICENSE" for information on usage and
|
|
17
|
+
* redistribution of this file, and for a
|
|
18
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
namespace Gecode { namespace Search {
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
* Base class
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
forceinline
|
|
29
|
+
Stop::Stop(void) {}
|
|
30
|
+
|
|
31
|
+
forceinline
|
|
32
|
+
Stop::~Stop(void) {}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* Stopping for memory limit
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
forceinline
|
|
42
|
+
MemoryStop::MemoryStop(size_t l0) : l(l0) {}
|
|
43
|
+
|
|
44
|
+
forceinline size_t
|
|
45
|
+
MemoryStop::limit(void) const {
|
|
46
|
+
return l;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
forceinline void
|
|
50
|
+
MemoryStop::limit(size_t l0) {
|
|
51
|
+
l=l0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
/*
|
|
56
|
+
* Stopping for memory limit
|
|
57
|
+
*
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
forceinline
|
|
61
|
+
FailStop::FailStop(unsigned long int l0) : l(l0) {}
|
|
62
|
+
|
|
63
|
+
forceinline unsigned long int
|
|
64
|
+
FailStop::limit(void) const {
|
|
65
|
+
return l;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
forceinline void
|
|
69
|
+
FailStop::limit(unsigned long int l0) {
|
|
70
|
+
l=l0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
/*
|
|
75
|
+
* Stopping for memory limit
|
|
76
|
+
*
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
forceinline
|
|
80
|
+
TimeStop::TimeStop(unsigned long int l0)
|
|
81
|
+
: s(clock()), l(l0) {}
|
|
82
|
+
|
|
83
|
+
forceinline unsigned long int
|
|
84
|
+
TimeStop::limit(void) const {
|
|
85
|
+
return l;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
forceinline void
|
|
89
|
+
TimeStop::limit(unsigned long int l0) {
|
|
90
|
+
l=l0;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
forceinline void
|
|
94
|
+
TimeStop::reset(void) {
|
|
95
|
+
s=clock();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
}}
|
|
99
|
+
|
|
100
|
+
// STATISTICS: search-any
|
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
* Christian Schulte <schulte@gecode.org>
|
|
5
|
+
*
|
|
6
|
+
* Contributing authors:
|
|
7
|
+
* Gabor Szokoli <szokoli@gecode.org>
|
|
8
|
+
*
|
|
9
|
+
* Copyright:
|
|
10
|
+
* Guido Tack, 2004
|
|
11
|
+
* Christian Schulte, 2004
|
|
12
|
+
* Gabor Szokoli, 2004
|
|
13
|
+
*
|
|
14
|
+
* Last modified:
|
|
15
|
+
* $Date: 2006-07-28 16:27:48 +0200 (Fri, 28 Jul 2006) $ by $Author: tack $
|
|
16
|
+
* $Revision: 3477 $
|
|
17
|
+
*
|
|
18
|
+
* This file is part of Gecode, the generic constraint
|
|
19
|
+
* development environment:
|
|
20
|
+
* http://www.gecode.org
|
|
21
|
+
*
|
|
22
|
+
* See the file "LICENSE" for information on usage and
|
|
23
|
+
* redistribution of this file, and for a
|
|
24
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
#ifndef __GECODE_SET_HH__
|
|
29
|
+
#define __GECODE_SET_HH__
|
|
30
|
+
|
|
31
|
+
namespace Gecode { namespace Set {
|
|
32
|
+
/**
|
|
33
|
+
* \namespace Gecode::Set
|
|
34
|
+
* \brief Finite integer sets
|
|
35
|
+
*
|
|
36
|
+
* The Gecode::Set namespace contains all functionality required
|
|
37
|
+
* to program propagators and branchings for finite integer sets.
|
|
38
|
+
* In addition, all propagators and branchings for finite integer
|
|
39
|
+
* sets provided by %Gecode are contained as nested namespaces.
|
|
40
|
+
*
|
|
41
|
+
*/
|
|
42
|
+
}}
|
|
43
|
+
|
|
44
|
+
#include "gecode/limits.hh"
|
|
45
|
+
|
|
46
|
+
#include "gecode/kernel.hh"
|
|
47
|
+
#include "gecode/int.hh"
|
|
48
|
+
|
|
49
|
+
/*
|
|
50
|
+
* Support for DLLs under Windows
|
|
51
|
+
*
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
#if !defined(GECODE_STATIC_LIBS) && \
|
|
55
|
+
(defined(__CYGWIN__) || defined(__MINGW32__) || defined(_MSC_VER))
|
|
56
|
+
|
|
57
|
+
#ifdef GECODE_BUILD_SET
|
|
58
|
+
#define GECODE_SET_EXPORT __declspec( dllexport )
|
|
59
|
+
#else
|
|
60
|
+
#define GECODE_SET_EXPORT __declspec( dllimport )
|
|
61
|
+
#endif
|
|
62
|
+
|
|
63
|
+
#else
|
|
64
|
+
|
|
65
|
+
#ifdef GCC_HASCLASSVISIBILITY
|
|
66
|
+
|
|
67
|
+
#define GECODE_SET_EXPORT __attribute__ ((visibility("default")))
|
|
68
|
+
|
|
69
|
+
#else
|
|
70
|
+
|
|
71
|
+
#define GECODE_SET_EXPORT
|
|
72
|
+
|
|
73
|
+
#endif
|
|
74
|
+
#endif
|
|
75
|
+
|
|
76
|
+
#include "gecode/set/exception.icc"
|
|
77
|
+
#include "gecode/set/var.icc"
|
|
78
|
+
#include "gecode/set/view.icc"
|
|
79
|
+
#include "gecode/set/propagator.icc"
|
|
80
|
+
#include "gecode/set/array.icc"
|
|
81
|
+
|
|
82
|
+
namespace Gecode {
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* \brief Common relation types for sets
|
|
86
|
+
* \ingroup TaskIntSet
|
|
87
|
+
*/
|
|
88
|
+
enum SetRelType {
|
|
89
|
+
SRT_EQ, ///< Equality (\f$=\f$)
|
|
90
|
+
SRT_NQ, ///< Disequality (\f$\neq\f$)
|
|
91
|
+
SRT_SUB, ///< Subset (\f$\subseteq\f$)
|
|
92
|
+
SRT_SUP, ///< Superset (\f$\supseteq\f$)
|
|
93
|
+
SRT_DISJ, ///< Disjoint (\f$\parallel\f$)
|
|
94
|
+
SRT_CMPL ///< Complement
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* \brief Common operations for sets
|
|
99
|
+
* \ingroup TaskIntSet
|
|
100
|
+
*/
|
|
101
|
+
enum SetOpType {
|
|
102
|
+
SOT_UNION, ///< Union
|
|
103
|
+
SOT_DUNION, ///< Disjoint union
|
|
104
|
+
SOT_INTER, ///< %Intersection
|
|
105
|
+
SOT_MINUS ///< Difference
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* \defgroup TaskIntSetDom Domain constraints
|
|
110
|
+
* \ingroup TaskIntSet
|
|
111
|
+
*
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
//@{
|
|
115
|
+
|
|
116
|
+
/// Propagates \f$ x \sim_r \{i\}\f$
|
|
117
|
+
GECODE_SET_EXPORT void
|
|
118
|
+
dom(Space* home, SetVar x, SetRelType r, int i);
|
|
119
|
+
|
|
120
|
+
/// Propagates \f$ x \sim_r \{i,\dots,j\}\f$
|
|
121
|
+
GECODE_SET_EXPORT void
|
|
122
|
+
dom(Space* home, SetVar x, SetRelType r, int i, int j);
|
|
123
|
+
|
|
124
|
+
/// Propagates \f$ x \sim_r s\f$
|
|
125
|
+
GECODE_SET_EXPORT void
|
|
126
|
+
dom(Space* home, SetVar x, SetRelType r, const IntSet& s);
|
|
127
|
+
|
|
128
|
+
/// Post propagator for \f$ (x \sim_r \{i\}) \Leftrightarrow b \f$
|
|
129
|
+
GECODE_SET_EXPORT void
|
|
130
|
+
dom(Space* home, SetVar x, SetRelType r, int i, BoolVar b);
|
|
131
|
+
|
|
132
|
+
/// Post propagator for \f$ (x \sim_r \{i,\dots,j\}) \Leftrightarrow b \f$
|
|
133
|
+
GECODE_SET_EXPORT void
|
|
134
|
+
dom(Space* home, SetVar x, SetRelType r, int i, int j, BoolVar b);
|
|
135
|
+
|
|
136
|
+
/// Post propagator for \f$ (x \sim_r s) \Leftrightarrow b \f$
|
|
137
|
+
GECODE_SET_EXPORT void
|
|
138
|
+
dom(Space* home, SetVar x, SetRelType r, const IntSet& s, BoolVar b);
|
|
139
|
+
|
|
140
|
+
/// Propagates \f$ i \leq |s| \leq j \f$
|
|
141
|
+
GECODE_SET_EXPORT void
|
|
142
|
+
cardinality(Space* home, SetVar x, unsigned int i, unsigned int j);
|
|
143
|
+
|
|
144
|
+
//@}
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* \defgroup TaskIntSetRel Relation constraints
|
|
149
|
+
* \ingroup TaskIntSet
|
|
150
|
+
*
|
|
151
|
+
*/
|
|
152
|
+
|
|
153
|
+
//@{
|
|
154
|
+
|
|
155
|
+
/// Post propagator for \f$ x \sim_r y\f$
|
|
156
|
+
GECODE_SET_EXPORT void
|
|
157
|
+
rel(Space* home, SetVar x, SetRelType r, SetVar y);
|
|
158
|
+
|
|
159
|
+
/// Post propagator for \f$ (x \sim_r y) \Leftrightarrow b \f$
|
|
160
|
+
GECODE_SET_EXPORT void
|
|
161
|
+
rel(Space* home, SetVar x, SetRelType r, SetVar y, BoolVar b);
|
|
162
|
+
|
|
163
|
+
/// Post propagator for \f$ s \sim_r \{x\}\f$
|
|
164
|
+
GECODE_SET_EXPORT void
|
|
165
|
+
rel(Space* home, SetVar s, SetRelType r, IntVar x);
|
|
166
|
+
|
|
167
|
+
/// Post propagator for \f$ \{x\} \sim_r s\f$
|
|
168
|
+
GECODE_SET_EXPORT void
|
|
169
|
+
rel(Space* home, IntVar x, SetRelType r, SetVar s);
|
|
170
|
+
|
|
171
|
+
/// Post propagator for \f$ (s \sim_r \{x\}) \Leftrightarrow b \f$
|
|
172
|
+
GECODE_SET_EXPORT void
|
|
173
|
+
rel(Space* home, SetVar s, SetRelType r, IntVar x, BoolVar b);
|
|
174
|
+
|
|
175
|
+
/// Post propagator for \f$ (\{x\} \sim_r s) \Leftrightarrow b \f$
|
|
176
|
+
GECODE_SET_EXPORT void
|
|
177
|
+
rel(Space* home, IntVar x, SetRelType r, SetVar s, BoolVar b);
|
|
178
|
+
|
|
179
|
+
/// Post propagator for \f$\forall i\in s:\ i \sim_r x\f$
|
|
180
|
+
GECODE_SET_EXPORT void
|
|
181
|
+
rel(Space* home, SetVar s, IntRelType r, IntVar x);
|
|
182
|
+
|
|
183
|
+
/// Post propagator for \f$\forall i\in s:\ x \sim_r i\f$
|
|
184
|
+
GECODE_SET_EXPORT void
|
|
185
|
+
rel(Space* home, IntVar x, IntRelType r, SetVar s);
|
|
186
|
+
|
|
187
|
+
//@}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* \defgroup TaskIntSetRelOp Set operation/relation constraints
|
|
191
|
+
* \ingroup TaskIntSet
|
|
192
|
+
*
|
|
193
|
+
*/
|
|
194
|
+
|
|
195
|
+
//@{
|
|
196
|
+
|
|
197
|
+
/// Post propagator for \f$ (x \diamond_{\mathit{op}} y) \sim_r z \f$
|
|
198
|
+
GECODE_SET_EXPORT void
|
|
199
|
+
rel(Space* home, SetVar x, SetOpType op, SetVar y, SetRelType r, SetVar z);
|
|
200
|
+
|
|
201
|
+
/// Post propagator for \f$ y = \diamond_{\mathit{op}} x\f$
|
|
202
|
+
GECODE_SET_EXPORT void
|
|
203
|
+
rel(Space* home, SetOpType op, const SetVarArgs& x, SetVar y);
|
|
204
|
+
|
|
205
|
+
/// Post propagator for \f$ y = \diamond_{\mathit{op}} x\f$
|
|
206
|
+
GECODE_SET_EXPORT void
|
|
207
|
+
rel(Space* home, SetOpType op, const IntVarArgs& x, SetVar y);
|
|
208
|
+
|
|
209
|
+
/// Post propagator for \f$ (x \diamond_{\mathit{op}} y) \sim_r z \f$
|
|
210
|
+
GECODE_SET_EXPORT void
|
|
211
|
+
rel(Space* home, const IntSet& x, SetOpType op, SetVar y,
|
|
212
|
+
SetRelType r, SetVar z);
|
|
213
|
+
|
|
214
|
+
/// Post propagator for \f$ (x \diamond_{\mathit{op}} y) \sim_r z \f$
|
|
215
|
+
GECODE_SET_EXPORT void
|
|
216
|
+
rel(Space* home, SetVar x, SetOpType op, const IntSet& y,
|
|
217
|
+
SetRelType r, SetVar z);
|
|
218
|
+
|
|
219
|
+
/// Post propagator for \f$ (x \diamond_{\mathit{op}} y) \sim_r z \f$
|
|
220
|
+
GECODE_SET_EXPORT void
|
|
221
|
+
rel(Space* home, SetVar x, SetOpType op, SetVar y,
|
|
222
|
+
SetRelType r, const IntSet& z);
|
|
223
|
+
|
|
224
|
+
/// Post propagator for \f$ (x \diamond_{\mathit{op}} y) \sim_r z \f$
|
|
225
|
+
GECODE_SET_EXPORT void
|
|
226
|
+
rel(Space* home, const IntSet& x, SetOpType op, const IntSet& y,
|
|
227
|
+
SetRelType r, SetVar z);
|
|
228
|
+
|
|
229
|
+
/// Post propagator for \f$ (x \diamond_{\mathit{op}} y) \sim_r z \f$
|
|
230
|
+
GECODE_SET_EXPORT void
|
|
231
|
+
rel(Space* home, const IntSet& x, SetOpType op, SetVar y, SetRelType r,
|
|
232
|
+
const IntSet& z);
|
|
233
|
+
|
|
234
|
+
/// Post propagator for \f$ (x \diamond_{\mathit{op}} y) \sim_r z \f$
|
|
235
|
+
GECODE_SET_EXPORT void
|
|
236
|
+
rel(Space* home, SetVar x, SetOpType op, const IntSet& y, SetRelType r,
|
|
237
|
+
const IntSet& z);
|
|
238
|
+
|
|
239
|
+
//@}
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* \defgroup TaskIntSetConvex Convexity constraints
|
|
244
|
+
* \ingroup TaskIntSet
|
|
245
|
+
*
|
|
246
|
+
*/
|
|
247
|
+
//@{
|
|
248
|
+
|
|
249
|
+
/// Post propagator that propagates that \a x is convex
|
|
250
|
+
GECODE_SET_EXPORT void
|
|
251
|
+
convex(Space* home, SetVar x);
|
|
252
|
+
|
|
253
|
+
/// Post propagator that propagates that \a y is the convex hull of \a x
|
|
254
|
+
GECODE_SET_EXPORT void
|
|
255
|
+
convexHull(Space* home, SetVar x, SetVar y);
|
|
256
|
+
|
|
257
|
+
//@}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* \defgroup TaskIntSetSequence Sequence constraints
|
|
261
|
+
* \ingroup TaskIntSet
|
|
262
|
+
*
|
|
263
|
+
*/
|
|
264
|
+
//@{
|
|
265
|
+
|
|
266
|
+
/// Post propagator for \f$\forall 0\leq i< |x|-1 : \max(x_i)<\min(x_{i+1})\f$
|
|
267
|
+
GECODE_SET_EXPORT void
|
|
268
|
+
sequence(Space* home, const SetVarArgs& x);
|
|
269
|
+
|
|
270
|
+
/// Post propagator for \f$\forall 0\leq i< |x|-1 : \max(x_i)<\min(x_{i+1})\f$ and \f$ x = \bigcup_{i\in\{0,\dots,n-1\}} y_i \f$
|
|
271
|
+
GECODE_SET_EXPORT void
|
|
272
|
+
sequentialUnion(Space* home, const SetVarArgs& y, SetVar x);
|
|
273
|
+
|
|
274
|
+
//@}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* \defgroup TaskIntSetDistinct Distinctness constraints
|
|
278
|
+
* \ingroup TaskIntSet
|
|
279
|
+
*
|
|
280
|
+
*/
|
|
281
|
+
//@{
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
/// Post propagator for \f$\forall 0\leq i\leq |x| : |x_i|=c\f$ and \f$\forall 0\leq i<j\leq |x| : |x_i\cap x_j|\leq 1\f$
|
|
285
|
+
GECODE_SET_EXPORT void
|
|
286
|
+
atmostOne(Space* home, const SetVarArgs& x, unsigned int c);
|
|
287
|
+
|
|
288
|
+
/// Post propagator for \f$\forall 0\leq i\leq |x| : |x_i|=c\f$ and \f$\forall 0\leq i<j\leq |x| : x_i\neq x_j\f$
|
|
289
|
+
GECODE_SET_EXPORT void
|
|
290
|
+
distinct(Space* home, const SetVarArgs& x, unsigned int c);
|
|
291
|
+
|
|
292
|
+
//@}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* \defgroup TaskIntSetConnect Connection constraints to finite domain variables
|
|
296
|
+
* \ingroup TaskIntSet
|
|
297
|
+
*
|
|
298
|
+
*/
|
|
299
|
+
|
|
300
|
+
//@{
|
|
301
|
+
|
|
302
|
+
/// Post propagator that propagates that \a x is the minimal element of \a s
|
|
303
|
+
GECODE_SET_EXPORT void
|
|
304
|
+
min(Space* home, SetVar s, IntVar x);
|
|
305
|
+
|
|
306
|
+
/// Post propagator that propagates that \a x is the maximal element of \a s
|
|
307
|
+
GECODE_SET_EXPORT void
|
|
308
|
+
max(Space* home, SetVar s, IntVar x);
|
|
309
|
+
|
|
310
|
+
/// Post propagator that propagates that \a s contains the \f$x_i\f$, which are sorted in non-descending order
|
|
311
|
+
GECODE_SET_EXPORT void
|
|
312
|
+
match(Space* home, SetVar s, const IntVarArgs& x);
|
|
313
|
+
|
|
314
|
+
/// Post propagator for \f$x_i=j \Leftrightarrow i\in y_j\f$
|
|
315
|
+
GECODE_SET_EXPORT void
|
|
316
|
+
channel(Space* home, const IntVarArgs& x,const SetVarArgs& y);
|
|
317
|
+
|
|
318
|
+
/// Post propagator for \f$ |s|=x \f$
|
|
319
|
+
GECODE_SET_EXPORT void
|
|
320
|
+
cardinality(Space* home, SetVar s, IntVar x);
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* \brief Post propagator for \f$y = \mathrm{weight}(x)\f$
|
|
325
|
+
*
|
|
326
|
+
* The weights are given as pairs of elements and their weight:
|
|
327
|
+
* \f$\mathrm{weight}(\mathrm{elements}_i) = \mathrm{weights}_i\f$
|
|
328
|
+
*
|
|
329
|
+
* The upper bound of \a x is constrained to contain only elements from
|
|
330
|
+
* \a elements. The weight of a set is the sum of the weights of its
|
|
331
|
+
* elements.
|
|
332
|
+
*/
|
|
333
|
+
GECODE_SET_EXPORT void
|
|
334
|
+
weights(Space* home, const IntArgs& elements, const IntArgs& weights,
|
|
335
|
+
SetVar x, IntVar y);
|
|
336
|
+
|
|
337
|
+
//@}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* \defgroup TaskIntSetSelection Selection constraints
|
|
341
|
+
* \ingroup TaskIntSet
|
|
342
|
+
*
|
|
343
|
+
* A selection constraint selects zero, one or more elements out of a
|
|
344
|
+
* sequence. We write \f$ \langle x_0,\dots, x_{n-1} \rangle \f$ for the
|
|
345
|
+
* sequence, and \f$ [y] \f$ for the selector variable.
|
|
346
|
+
*
|
|
347
|
+
* Set selection constraints are closely related to the ::element constraint
|
|
348
|
+
* on finite domain variables.
|
|
349
|
+
*/
|
|
350
|
+
|
|
351
|
+
//@{
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* \brief Post propagator for \f$ z=\bigcup\langle x_0,\dots,x_{n-1}\rangle[y] \f$
|
|
355
|
+
* If \a y is the empty set, \a z will also be constrained to be empty
|
|
356
|
+
* (as an empty union is empty).
|
|
357
|
+
*/
|
|
358
|
+
GECODE_SET_EXPORT void
|
|
359
|
+
selectUnion(Space* home, const SetVarArgs& x, SetVar y, SetVar z);
|
|
360
|
+
|
|
361
|
+
/** Post propagator for \f$ z=\bigcap\langle x_0,\dots,x_{n-1}\rangle[y] \f$ using \f$ \mathcal{U} \f$ as universe
|
|
362
|
+
*
|
|
363
|
+
* If \a y is empty, \a z will be constrained to be the universe
|
|
364
|
+
* \f$ \mathcal{U} \f$ (as an empty intersection is the universe).
|
|
365
|
+
*/
|
|
366
|
+
GECODE_SET_EXPORT void
|
|
367
|
+
selectInter(Space* home, const SetVarArgs& x, SetVar y, SetVar z);
|
|
368
|
+
|
|
369
|
+
/** Post propagator for \f$ z=\bigcap\langle x_0,\dots,x_{n-1}\rangle[y] \f$ using \a u as universe
|
|
370
|
+
*
|
|
371
|
+
* If \a y is empty, \a z will be constrained to be the given universe
|
|
372
|
+
* \a u (as an empty intersection is the universe).
|
|
373
|
+
*/
|
|
374
|
+
GECODE_SET_EXPORT void
|
|
375
|
+
selectInterIn(Space* home, const SetVarArgs& x, SetVar y, SetVar z,
|
|
376
|
+
const IntSet& u);
|
|
377
|
+
|
|
378
|
+
/// Post propagator for \f$ \parallel\langle x_0,\dots,x_{n-1}\rangle[y] \f$
|
|
379
|
+
GECODE_SET_EXPORT void
|
|
380
|
+
selectDisjoint(Space* home, const SetVarArgs& x, SetVar y);
|
|
381
|
+
|
|
382
|
+
/// Post propagator for \f$ z=\langle x_0,\dots,x_{n-1}\rangle[y] \f$
|
|
383
|
+
GECODE_SET_EXPORT void
|
|
384
|
+
selectSet(Space* home, const SetVarArgs& x, IntVar y, SetVar z);
|
|
385
|
+
|
|
386
|
+
//@}
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* \defgroup TaskIntSetBranch Branching
|
|
390
|
+
* \ingroup TaskIntSet
|
|
391
|
+
*/
|
|
392
|
+
|
|
393
|
+
//@{
|
|
394
|
+
|
|
395
|
+
/// Which variable to select for branching
|
|
396
|
+
enum SetBvarSel {
|
|
397
|
+
SETBVAR_NONE, ///< First unassigned
|
|
398
|
+
SETBVAR_MIN_CARD, ///< With smallest unknown set
|
|
399
|
+
SETBVAR_MAX_CARD, ///< With largest unknown set
|
|
400
|
+
SETBVAR_MIN_UNKNOWN_ELEM, ///< With smallest unknown element
|
|
401
|
+
SETBVAR_MAX_UNKNOWN_ELEM, ///< With largest unknown element
|
|
402
|
+
};
|
|
403
|
+
|
|
404
|
+
/// Which values to select first for branching
|
|
405
|
+
enum SetBvalSel {
|
|
406
|
+
SETBVAL_MIN, ///< Select smallest value in unknown set
|
|
407
|
+
SETBVAL_MAX, ///< Select largest value in unknown set
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
/// Branch over all \a x with variable selection \a vars and value selection \a vals
|
|
411
|
+
GECODE_SET_EXPORT void
|
|
412
|
+
branch(Space* home, const SetVarArgs& x, SetBvarSel vars, SetBvalSel vals);
|
|
413
|
+
//@}
|
|
414
|
+
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
#endif
|
|
418
|
+
|
|
419
|
+
// STATISTICS: set-post
|