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,662 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Guido Tack, 2005
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-08-04 16:07:12 +0200 (Fri, 04 Aug 2006) $ by $Author: schulte $
|
|
10
|
+
* $Revision: 3518 $
|
|
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 "test/set.hh"
|
|
23
|
+
|
|
24
|
+
static IntSet ds_33(-2,2);
|
|
25
|
+
static IntSet ds_22(-1,2);
|
|
26
|
+
|
|
27
|
+
class RelUnionEq : public SetTest {
|
|
28
|
+
public:
|
|
29
|
+
RelUnionEq(const char* t)
|
|
30
|
+
: SetTest(t,3,ds_33,false) {}
|
|
31
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
32
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
33
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
34
|
+
CountableSetRanges xr2(x.lub, x[2]);
|
|
35
|
+
Iter::Ranges::Union<CountableSetRanges, CountableSetRanges> u(xr0,xr1);
|
|
36
|
+
return Iter::Ranges::equal(xr2, u);
|
|
37
|
+
}
|
|
38
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
39
|
+
Gecode::rel(home, x[0], SOT_UNION, x[1], SRT_EQ, x[2]);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
RelUnionEq _relunioneq("RelOp::UnionEq");
|
|
43
|
+
|
|
44
|
+
class RelUnionEqS1 : public SetTest {
|
|
45
|
+
public:
|
|
46
|
+
RelUnionEqS1(const char* t)
|
|
47
|
+
: SetTest(t,2,ds_33,false) {}
|
|
48
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
49
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
50
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
51
|
+
return Iter::Ranges::equal(xr0, xr1);
|
|
52
|
+
}
|
|
53
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
54
|
+
Gecode::rel(home, x[0], SOT_UNION, x[0], SRT_EQ, x[1]);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
RelUnionEqS1 _relunioneqs1("RelOp::Sharing::UnionEqS1");
|
|
58
|
+
|
|
59
|
+
class RelUnionEqS2 : public SetTest {
|
|
60
|
+
public:
|
|
61
|
+
RelUnionEqS2(const char* t)
|
|
62
|
+
: SetTest(t,2,ds_33,false) {}
|
|
63
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
64
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
65
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
66
|
+
return Iter::Ranges::subset(xr1, xr0);
|
|
67
|
+
}
|
|
68
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
69
|
+
Gecode::rel(home, x[0], SOT_UNION, x[1], SRT_EQ, x[0]);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
RelUnionEqS2 _relunioneqs2("RelOp::Sharing::UnionEqS2");
|
|
73
|
+
|
|
74
|
+
class RelUnionEqS3 : public SetTest {
|
|
75
|
+
public:
|
|
76
|
+
RelUnionEqS3(const char* t)
|
|
77
|
+
: SetTest(t,1,ds_33,false) {}
|
|
78
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
82
|
+
Gecode::rel(home, x[0], SOT_UNION, x[0], SRT_EQ, x[0]);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
RelUnionEqS3 _relunioneqs3("RelOp::Sharing::UnionEqS3");
|
|
86
|
+
|
|
87
|
+
class RelDUnionEq : public SetTest {
|
|
88
|
+
public:
|
|
89
|
+
RelDUnionEq(const char* t)
|
|
90
|
+
: SetTest(t,3,ds_33,false) {}
|
|
91
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
92
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
93
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
94
|
+
CountableSetRanges xr2(x.lub, x[2]);
|
|
95
|
+
Iter::Ranges::Union<CountableSetRanges, CountableSetRanges> u(xr0,xr1);
|
|
96
|
+
|
|
97
|
+
CountableSetRanges xr02(x.lub, x[0]);
|
|
98
|
+
CountableSetRanges xr12(x.lub, x[1]);
|
|
99
|
+
|
|
100
|
+
return
|
|
101
|
+
Iter::Ranges::equal(xr2, u) &&
|
|
102
|
+
Iter::Ranges::disjoint(xr02, xr12);
|
|
103
|
+
}
|
|
104
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
105
|
+
Gecode::rel(home, x[0], SOT_DUNION, x[1], SRT_EQ, x[2]);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
RelDUnionEq _reldunioneq("RelOp::DUnionEq");
|
|
109
|
+
|
|
110
|
+
class RelDUnionEqS1 : public SetTest {
|
|
111
|
+
public:
|
|
112
|
+
RelDUnionEqS1(const char* t)
|
|
113
|
+
: SetTest(t,2,ds_33,false) {}
|
|
114
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
115
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
116
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
117
|
+
return !xr0() && !xr1();
|
|
118
|
+
}
|
|
119
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
120
|
+
Gecode::rel(home, x[0], SOT_DUNION, x[0], SRT_EQ, x[1]);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
RelDUnionEqS1 _reldunioneqs1("RelOp::Sharing::DUnionEqS1");
|
|
124
|
+
|
|
125
|
+
class RelDUnionEqS2 : public SetTest {
|
|
126
|
+
public:
|
|
127
|
+
RelDUnionEqS2(const char* t)
|
|
128
|
+
: SetTest(t,2,ds_33,false) {}
|
|
129
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
130
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
131
|
+
return !xr0();
|
|
132
|
+
}
|
|
133
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
134
|
+
Gecode::rel(home, x[0], SOT_DUNION, x[1], SRT_EQ, x[1]);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
RelDUnionEqS2 _reldunioneqs2("RelOp::Sharing::DUnionEqS2");
|
|
138
|
+
|
|
139
|
+
class RelDUnionEqS3 : public SetTest {
|
|
140
|
+
public:
|
|
141
|
+
RelDUnionEqS3(const char* t)
|
|
142
|
+
: SetTest(t,1,ds_33,false) {}
|
|
143
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
144
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
145
|
+
return !xr0();
|
|
146
|
+
}
|
|
147
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
148
|
+
Gecode::rel(home, x[0], SOT_DUNION, x[0], SRT_EQ, x[0]);
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
RelDUnionEqS3 _reldunioneqs3("RelOp::Sharing::DUnionEqS3");
|
|
152
|
+
|
|
153
|
+
class RelInterEq : public SetTest {
|
|
154
|
+
public:
|
|
155
|
+
RelInterEq(const char* t)
|
|
156
|
+
: SetTest(t,3,ds_33,false) {}
|
|
157
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
158
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
159
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
160
|
+
CountableSetRanges xr2(x.lub, x[2]);
|
|
161
|
+
Iter::Ranges::Inter<CountableSetRanges, CountableSetRanges> u(xr0,xr1);
|
|
162
|
+
|
|
163
|
+
return Iter::Ranges::equal(xr2, u);
|
|
164
|
+
}
|
|
165
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
166
|
+
Gecode::rel(home, x[0], SOT_INTER, x[1], SRT_EQ, x[2]);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
RelInterEq _relintereq("RelOp::InterEq");
|
|
170
|
+
|
|
171
|
+
class RelInterEqS1 : public SetTest {
|
|
172
|
+
public:
|
|
173
|
+
RelInterEqS1(const char* t)
|
|
174
|
+
: SetTest(t,2,ds_33,false) {}
|
|
175
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
176
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
177
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
178
|
+
return Iter::Ranges::subset(xr0, xr1);
|
|
179
|
+
}
|
|
180
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
181
|
+
Gecode::rel(home, x[0], SOT_INTER, x[1], SRT_EQ, x[0]);
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
RelInterEqS1 _relintereqs1("RelOp::Sharing::InterEqS1");
|
|
185
|
+
|
|
186
|
+
class RelInterEqS2 : public SetTest {
|
|
187
|
+
public:
|
|
188
|
+
RelInterEqS2(const char* t)
|
|
189
|
+
: SetTest(t,2,ds_33,false) {}
|
|
190
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
191
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
192
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
193
|
+
return Iter::Ranges::equal(xr0, xr1);
|
|
194
|
+
}
|
|
195
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
196
|
+
Gecode::rel(home, x[0], SOT_INTER, x[0], SRT_EQ, x[1]);
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
RelInterEqS2 _relintereqs2("RelOp::Sharing::InterEqS2");
|
|
200
|
+
|
|
201
|
+
class RelInterEqS3 : public SetTest {
|
|
202
|
+
public:
|
|
203
|
+
RelInterEqS3(const char* t)
|
|
204
|
+
: SetTest(t,1,ds_33,false) {}
|
|
205
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
209
|
+
Gecode::rel(home, x[0], SOT_INTER, x[0], SRT_EQ, x[0]);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
RelInterEqS3 _relintereqs3("RelOp::Sharing::InterEqS3");
|
|
213
|
+
|
|
214
|
+
class RelInterSub : public SetTest {
|
|
215
|
+
public:
|
|
216
|
+
RelInterSub(const char* t)
|
|
217
|
+
: SetTest(t,3,ds_33,false) {}
|
|
218
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
219
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
220
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
221
|
+
CountableSetRanges xr2(x.lub, x[2]);
|
|
222
|
+
Iter::Ranges::Inter<CountableSetRanges, CountableSetRanges> u(xr0,xr1);
|
|
223
|
+
|
|
224
|
+
return Iter::Ranges::subset(u, xr2);
|
|
225
|
+
}
|
|
226
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
227
|
+
Gecode::rel(home, x[0], SOT_INTER, x[1], SRT_SUB, x[2]);
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
RelInterSub _relintersub("RelOp::InterSub");
|
|
231
|
+
|
|
232
|
+
class RelInterSubS1 : public SetTest {
|
|
233
|
+
public:
|
|
234
|
+
RelInterSubS1(const char* t)
|
|
235
|
+
: SetTest(t,2,ds_33,false) {}
|
|
236
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
240
|
+
Gecode::rel(home, x[0], SOT_INTER, x[1], SRT_SUB, x[1]);
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
RelInterSubS1 _relintersub1("RelOp::Sharing::InterSub1");
|
|
244
|
+
|
|
245
|
+
class RelInterSubS2 : public SetTest {
|
|
246
|
+
public:
|
|
247
|
+
RelInterSubS2(const char* t)
|
|
248
|
+
: SetTest(t,2,ds_33,false) {}
|
|
249
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
250
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
251
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
252
|
+
return Iter::Ranges::subset(xr0, xr1);
|
|
253
|
+
}
|
|
254
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
255
|
+
Gecode::rel(home, x[0], SOT_INTER, x[0], SRT_SUB, x[1]);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
RelInterSubS2 _relintersub2("RelOp::Sharing::InterSub2");
|
|
259
|
+
|
|
260
|
+
class RelInterSubS3 : public SetTest {
|
|
261
|
+
public:
|
|
262
|
+
RelInterSubS3(const char* t)
|
|
263
|
+
: SetTest(t,1,ds_33,false) {}
|
|
264
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
265
|
+
return true;
|
|
266
|
+
}
|
|
267
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
268
|
+
Gecode::rel(home, x[0], SOT_INTER, x[0], SRT_SUB, x[0]);
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
RelInterSubS3 _relintersub3("RelOp::Sharing::InterSub3");
|
|
272
|
+
|
|
273
|
+
class RelMinusEq : public SetTest {
|
|
274
|
+
public:
|
|
275
|
+
RelMinusEq(const char* t)
|
|
276
|
+
: SetTest(t,3,ds_33,false) {}
|
|
277
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
278
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
279
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
280
|
+
CountableSetRanges xr2(x.lub, x[2]);
|
|
281
|
+
Iter::Ranges::Diff<CountableSetRanges, CountableSetRanges> u(xr0,xr1);
|
|
282
|
+
|
|
283
|
+
return Iter::Ranges::equal(xr2, u);
|
|
284
|
+
}
|
|
285
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
286
|
+
Gecode::rel(home, x[0], SOT_MINUS, x[1], SRT_EQ, x[2]);
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
RelMinusEq _relminuseq("RelOp::MinusEq");
|
|
290
|
+
|
|
291
|
+
class RelMinusEqS1 : public SetTest {
|
|
292
|
+
public:
|
|
293
|
+
RelMinusEqS1(const char* t)
|
|
294
|
+
: SetTest(t,2,ds_33,false) {}
|
|
295
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
296
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
297
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
298
|
+
CountableSetRanges xr12(x.lub, x[1]);
|
|
299
|
+
Iter::Ranges::Diff<CountableSetRanges, CountableSetRanges> u(xr0,xr1);
|
|
300
|
+
|
|
301
|
+
return Iter::Ranges::equal(xr12, u);
|
|
302
|
+
}
|
|
303
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
304
|
+
Gecode::rel(home, x[0], SOT_MINUS, x[1], SRT_EQ, x[1]);
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
RelMinusEqS1 _relminuseqs1("RelOp::Sharing::MinusEqS1");
|
|
308
|
+
|
|
309
|
+
class RelMinusEqS2 : public SetTest {
|
|
310
|
+
public:
|
|
311
|
+
RelMinusEqS2(const char* t)
|
|
312
|
+
: SetTest(t,2,ds_33,false) {}
|
|
313
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
314
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
315
|
+
return !xr1();
|
|
316
|
+
}
|
|
317
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
318
|
+
Gecode::rel(home, x[0], SOT_MINUS, x[0], SRT_EQ, x[1]);
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
RelMinusEqS2 _relminuseqs2("RelOp::Sharing::MinusEqS2");
|
|
322
|
+
|
|
323
|
+
class RelMinusEqS3 : public SetTest {
|
|
324
|
+
public:
|
|
325
|
+
RelMinusEqS3(const char* t)
|
|
326
|
+
: SetTest(t,1,ds_33,false) {}
|
|
327
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
328
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
329
|
+
return !xr0();
|
|
330
|
+
}
|
|
331
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
332
|
+
Gecode::rel(home, x[0], SOT_MINUS, x[0], SRT_EQ, x[0]);
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
RelMinusEqS3 _relminuseqs3("RelOp::Sharing::MinusEqS3");
|
|
336
|
+
|
|
337
|
+
class RelUnionSup : public SetTest {
|
|
338
|
+
public:
|
|
339
|
+
RelUnionSup(const char* t)
|
|
340
|
+
: SetTest(t,3,ds_33,false) {}
|
|
341
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
342
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
343
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
344
|
+
CountableSetRanges xr2(x.lub, x[2]);
|
|
345
|
+
Iter::Ranges::Union<CountableSetRanges, CountableSetRanges> u(xr0,xr1);
|
|
346
|
+
return Iter::Ranges::subset(xr2, u);
|
|
347
|
+
}
|
|
348
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
349
|
+
Gecode::rel(home, x[0], SOT_UNION, x[1], SRT_SUP, x[2]);
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
RelUnionSup _relunionsup("RelOp::UnionSup");
|
|
353
|
+
|
|
354
|
+
class RelUnionSupS1 : public SetTest {
|
|
355
|
+
public:
|
|
356
|
+
RelUnionSupS1(const char* t)
|
|
357
|
+
: SetTest(t,2,ds_33,false) {}
|
|
358
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
359
|
+
return true;
|
|
360
|
+
}
|
|
361
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
362
|
+
Gecode::rel(home, x[0], SOT_UNION, x[1], SRT_SUP, x[1]);
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
RelUnionSupS1 _relunionsups1("RelOp::Sharing::UnionSupS1");
|
|
366
|
+
|
|
367
|
+
class RelUnionSupS2 : public SetTest {
|
|
368
|
+
public:
|
|
369
|
+
RelUnionSupS2(const char* t)
|
|
370
|
+
: SetTest(t,2,ds_33,false) {}
|
|
371
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
372
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
373
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
374
|
+
return Iter::Ranges::subset(xr1, xr0);
|
|
375
|
+
}
|
|
376
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
377
|
+
Gecode::rel(home, x[0], SOT_UNION, x[0], SRT_SUP, x[1]);
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
RelUnionSupS2 _relunionsups2("RelOp::Sharing::UnionSupS2");
|
|
381
|
+
|
|
382
|
+
class RelUnionSupS3 : public SetTest {
|
|
383
|
+
public:
|
|
384
|
+
RelUnionSupS3(const char* t)
|
|
385
|
+
: SetTest(t,1,ds_33,false) {}
|
|
386
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
387
|
+
return true;
|
|
388
|
+
}
|
|
389
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
390
|
+
Gecode::rel(home, x[0], SOT_UNION, x[0], SRT_SUP, x[0]);
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
RelUnionSupS3 _relunionsups3("RelOp::Sharing::UnionSupS3");
|
|
394
|
+
|
|
395
|
+
class RelDUnionN : public SetTest {
|
|
396
|
+
public:
|
|
397
|
+
RelDUnionN(const char* t)
|
|
398
|
+
: SetTest(t,4,ds_22,false) {}
|
|
399
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
400
|
+
{
|
|
401
|
+
CountableSetRanges x0r(x.lub, x[0]);
|
|
402
|
+
CountableSetRanges x1r(x.lub, x[1]);
|
|
403
|
+
if (!Iter::Ranges::disjoint(x0r,x1r))
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
{
|
|
407
|
+
CountableSetRanges x0r(x.lub, x[0]);
|
|
408
|
+
CountableSetRanges x2r(x.lub, x[2]);
|
|
409
|
+
if (!Iter::Ranges::disjoint(x0r,x2r))
|
|
410
|
+
return false;
|
|
411
|
+
}
|
|
412
|
+
{
|
|
413
|
+
CountableSetRanges x1r(x.lub, x[1]);
|
|
414
|
+
CountableSetRanges x2r(x.lub, x[2]);
|
|
415
|
+
if (!Iter::Ranges::disjoint(x1r,x2r))
|
|
416
|
+
return false;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
GECODE_AUTOARRAY(CountableSetRanges, isrs, 3);
|
|
420
|
+
isrs[0].init(x.lub, x[0]);
|
|
421
|
+
isrs[1].init(x.lub, x[1]);
|
|
422
|
+
isrs[2].init(x.lub, x[2]);
|
|
423
|
+
Iter::Ranges::NaryUnion<CountableSetRanges> u(isrs, 3);
|
|
424
|
+
CountableSetRanges x3r(x.lub, x[3]);
|
|
425
|
+
return Iter::Ranges::equal(u, x3r);
|
|
426
|
+
|
|
427
|
+
}
|
|
428
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
429
|
+
SetVarArgs xs(x.size()-1);
|
|
430
|
+
for (int i=x.size()-1; i--;)
|
|
431
|
+
xs[i]=x[i];
|
|
432
|
+
Gecode::rel(home, SOT_DUNION, xs, x[x.size()-1]);
|
|
433
|
+
}
|
|
434
|
+
};
|
|
435
|
+
RelDUnionN _reldunionn("RelOp::DUnionN");
|
|
436
|
+
|
|
437
|
+
class RelDUnionNS1 : public SetTest {
|
|
438
|
+
public:
|
|
439
|
+
RelDUnionNS1(const char* t)
|
|
440
|
+
: SetTest(t,3,ds_22,false) {}
|
|
441
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
442
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
443
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
444
|
+
CountableSetRanges xr2(x.lub, x[2]);
|
|
445
|
+
return !xr0() && Iter::Ranges::equal(xr1,xr2);
|
|
446
|
+
}
|
|
447
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
448
|
+
SetVarArgs xs(3);
|
|
449
|
+
xs[0]=x[0];
|
|
450
|
+
xs[1]=x[0];
|
|
451
|
+
xs[2]=x[1];
|
|
452
|
+
Gecode::rel(home, SOT_DUNION, xs, x[2]);
|
|
453
|
+
}
|
|
454
|
+
};
|
|
455
|
+
RelDUnionNS1 _reldunionns1("RelOp::Sharing::DUnionNS1");
|
|
456
|
+
|
|
457
|
+
class RelDUnionNS2 : public SetTest {
|
|
458
|
+
public:
|
|
459
|
+
RelDUnionNS2(const char* t)
|
|
460
|
+
: SetTest(t,3,ds_22,false) {}
|
|
461
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
462
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
463
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
464
|
+
return !xr0() && !xr1();
|
|
465
|
+
}
|
|
466
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
467
|
+
SetVarArgs xs(3);
|
|
468
|
+
xs[0]=x[0];
|
|
469
|
+
xs[1]=x[1];
|
|
470
|
+
xs[2]=x[2];
|
|
471
|
+
Gecode::rel(home, SOT_DUNION, xs, x[2]);
|
|
472
|
+
}
|
|
473
|
+
};
|
|
474
|
+
RelDUnionNS2 _reldunionns2("RelOp::Sharing::DUnionNS2");
|
|
475
|
+
|
|
476
|
+
class RelDUnionNS3 : public SetTest {
|
|
477
|
+
public:
|
|
478
|
+
RelDUnionNS3(const char* t)
|
|
479
|
+
: SetTest(t,2,ds_33,false) {}
|
|
480
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
481
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
482
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
483
|
+
return !xr0() && !xr1();
|
|
484
|
+
}
|
|
485
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
486
|
+
SetVarArgs xs(3);
|
|
487
|
+
xs[0]=x[0];
|
|
488
|
+
xs[1]=x[1];
|
|
489
|
+
xs[2]=x[0];
|
|
490
|
+
Gecode::rel(home, SOT_DUNION, xs, x[0]);
|
|
491
|
+
}
|
|
492
|
+
};
|
|
493
|
+
RelDUnionNS3 _reldunionns3("RelOp::Sharing::DUnionNS3");
|
|
494
|
+
|
|
495
|
+
class RelUnionN : public SetTest {
|
|
496
|
+
public:
|
|
497
|
+
RelUnionN(const char* t)
|
|
498
|
+
: SetTest(t,4,ds_22,false) {}
|
|
499
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
500
|
+
GECODE_AUTOARRAY(CountableSetRanges, isrs, 3);
|
|
501
|
+
isrs[0].init(x.lub, x[0]);
|
|
502
|
+
isrs[1].init(x.lub, x[1]);
|
|
503
|
+
isrs[2].init(x.lub, x[2]);
|
|
504
|
+
Iter::Ranges::NaryUnion<CountableSetRanges> u(isrs, 3);
|
|
505
|
+
CountableSetRanges x3r(x.lub, x[3]);
|
|
506
|
+
return Iter::Ranges::equal(u, x3r);
|
|
507
|
+
}
|
|
508
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
509
|
+
SetVarArgs xs(x.size()-1);
|
|
510
|
+
for (int i=x.size()-1; i--;)
|
|
511
|
+
xs[i]=x[i];
|
|
512
|
+
Gecode::rel(home, SOT_UNION, xs, x[x.size()-1]);
|
|
513
|
+
}
|
|
514
|
+
};
|
|
515
|
+
RelUnionN _relunionn("RelOp::UnionN");
|
|
516
|
+
|
|
517
|
+
class RelUnionNS1 : public SetTest {
|
|
518
|
+
public:
|
|
519
|
+
RelUnionNS1(const char* t)
|
|
520
|
+
: SetTest(t,3,ds_22,false) {}
|
|
521
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
522
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
523
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
524
|
+
Iter::Ranges::Union<CountableSetRanges,CountableSetRanges> u(xr0,xr1);
|
|
525
|
+
CountableSetRanges xr2(x.lub, x[2]);
|
|
526
|
+
return Iter::Ranges::equal(u,xr2);
|
|
527
|
+
}
|
|
528
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
529
|
+
SetVarArgs xs(3);
|
|
530
|
+
xs[0]=x[0];
|
|
531
|
+
xs[1]=x[0];
|
|
532
|
+
xs[2]=x[1];
|
|
533
|
+
Gecode::rel(home, SOT_UNION, xs, x[2]);
|
|
534
|
+
}
|
|
535
|
+
};
|
|
536
|
+
RelUnionNS1 _relunionns1("RelOp::Sharing::UnionNS1");
|
|
537
|
+
|
|
538
|
+
class RelUnionNS2 : public SetTest {
|
|
539
|
+
public:
|
|
540
|
+
RelUnionNS2(const char* t)
|
|
541
|
+
: SetTest(t,3,ds_22,false) {}
|
|
542
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
543
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
544
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
545
|
+
CountableSetRanges xr21(x.lub, x[2]);
|
|
546
|
+
CountableSetRanges xr22(x.lub, x[2]);
|
|
547
|
+
return Iter::Ranges::subset(xr0,xr21) && Iter::Ranges::subset(xr1,xr22);
|
|
548
|
+
}
|
|
549
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
550
|
+
SetVarArgs xs(3);
|
|
551
|
+
xs[0]=x[0];
|
|
552
|
+
xs[1]=x[1];
|
|
553
|
+
xs[2]=x[2];
|
|
554
|
+
Gecode::rel(home, SOT_UNION, xs, x[2]);
|
|
555
|
+
}
|
|
556
|
+
};
|
|
557
|
+
RelUnionNS2 _relunionns2("RelOp::Sharing::UnionNS2");
|
|
558
|
+
|
|
559
|
+
class RelUnionNS3 : public SetTest {
|
|
560
|
+
public:
|
|
561
|
+
RelUnionNS3(const char* t)
|
|
562
|
+
: SetTest(t,2,ds_33,false) {}
|
|
563
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
564
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
565
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
566
|
+
return Iter::Ranges::subset(xr1,xr0);
|
|
567
|
+
}
|
|
568
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
569
|
+
SetVarArgs xs(3);
|
|
570
|
+
xs[0]=x[0];
|
|
571
|
+
xs[1]=x[1];
|
|
572
|
+
xs[2]=x[0];
|
|
573
|
+
Gecode::rel(home, SOT_UNION, xs, x[0]);
|
|
574
|
+
}
|
|
575
|
+
};
|
|
576
|
+
RelUnionNS3 _relunionns3("RelOp::Sharing::UnionNS3");
|
|
577
|
+
|
|
578
|
+
class RelInterN : public SetTest {
|
|
579
|
+
public:
|
|
580
|
+
RelInterN(const char* t)
|
|
581
|
+
: SetTest(t,4,ds_22,false) {}
|
|
582
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
583
|
+
GECODE_AUTOARRAY(CountableSetRanges, isrs, 3);
|
|
584
|
+
isrs[0].init(x.lub, x[0]);
|
|
585
|
+
isrs[1].init(x.lub, x[1]);
|
|
586
|
+
isrs[2].init(x.lub, x[2]);
|
|
587
|
+
Iter::Ranges::NaryInter<CountableSetRanges> u(isrs, 3);
|
|
588
|
+
CountableSetRanges x3r(x.lub, x[3]);
|
|
589
|
+
return Iter::Ranges::equal(u, x3r);
|
|
590
|
+
|
|
591
|
+
}
|
|
592
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
593
|
+
SetVarArgs xs(x.size()-1);
|
|
594
|
+
for (int i=x.size()-1; i--;)
|
|
595
|
+
xs[i]=x[i];
|
|
596
|
+
Gecode::rel(home, SOT_INTER, xs, x[x.size()-1]);
|
|
597
|
+
}
|
|
598
|
+
};
|
|
599
|
+
RelInterN _relintern("RelOp::InterN");
|
|
600
|
+
|
|
601
|
+
class RelInterNS1 : public SetTest {
|
|
602
|
+
public:
|
|
603
|
+
RelInterNS1(const char* t)
|
|
604
|
+
: SetTest(t,3,ds_22,false) {}
|
|
605
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
606
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
607
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
608
|
+
Iter::Ranges::Inter<CountableSetRanges,CountableSetRanges> u(xr0,xr1);
|
|
609
|
+
CountableSetRanges xr2(x.lub, x[2]);
|
|
610
|
+
return Iter::Ranges::equal(u,xr2);
|
|
611
|
+
}
|
|
612
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
613
|
+
SetVarArgs xs(3);
|
|
614
|
+
xs[0]=x[0];
|
|
615
|
+
xs[1]=x[0];
|
|
616
|
+
xs[2]=x[1];
|
|
617
|
+
Gecode::rel(home, SOT_INTER, xs, x[2]);
|
|
618
|
+
}
|
|
619
|
+
};
|
|
620
|
+
RelInterNS1 _relinterns1("RelOp::Sharing::InterNS1");
|
|
621
|
+
|
|
622
|
+
class RelInterNS2 : public SetTest {
|
|
623
|
+
public:
|
|
624
|
+
RelInterNS2(const char* t)
|
|
625
|
+
: SetTest(t,3,ds_22,false) {}
|
|
626
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
627
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
628
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
629
|
+
CountableSetRanges xr21(x.lub, x[2]);
|
|
630
|
+
CountableSetRanges xr22(x.lub, x[2]);
|
|
631
|
+
return Iter::Ranges::subset(xr21,xr0) && Iter::Ranges::subset(xr22,xr1);
|
|
632
|
+
}
|
|
633
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
634
|
+
SetVarArgs xs(3);
|
|
635
|
+
xs[0]=x[0];
|
|
636
|
+
xs[1]=x[1];
|
|
637
|
+
xs[2]=x[2];
|
|
638
|
+
Gecode::rel(home, SOT_INTER, xs, x[2]);
|
|
639
|
+
}
|
|
640
|
+
};
|
|
641
|
+
RelInterNS2 _relinterns2("RelOp::Sharing::InterNS2");
|
|
642
|
+
|
|
643
|
+
class RelInterNS3 : public SetTest {
|
|
644
|
+
public:
|
|
645
|
+
RelInterNS3(const char* t)
|
|
646
|
+
: SetTest(t,2,ds_33,false) {}
|
|
647
|
+
virtual bool solution(const SetAssignment& x) const {
|
|
648
|
+
CountableSetRanges xr0(x.lub, x[0]);
|
|
649
|
+
CountableSetRanges xr1(x.lub, x[1]);
|
|
650
|
+
return Iter::Ranges::subset(xr0,xr1);
|
|
651
|
+
}
|
|
652
|
+
virtual void post(Space* home, SetVarArray& x, IntVarArray&) {
|
|
653
|
+
SetVarArgs xs(3);
|
|
654
|
+
xs[0]=x[0];
|
|
655
|
+
xs[1]=x[1];
|
|
656
|
+
xs[2]=x[0];
|
|
657
|
+
Gecode::rel(home, SOT_INTER, xs, x[0]);
|
|
658
|
+
}
|
|
659
|
+
};
|
|
660
|
+
RelInterNS3 _relinterns3("RelOp::Sharing::InterNS3");
|
|
661
|
+
|
|
662
|
+
// STATISTICS: test-set
|