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,69 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Christian Schulte, 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/int.hh"
|
|
23
|
+
|
|
24
|
+
static const int d1r[4][2] = {
|
|
25
|
+
{-4,-3},{-1,-1},{1,1},{3,5}
|
|
26
|
+
};
|
|
27
|
+
static IntSet d1(d1r,4);
|
|
28
|
+
|
|
29
|
+
static IntSet ds_66(-6,6);
|
|
30
|
+
|
|
31
|
+
class DomRange : public IntTest {
|
|
32
|
+
public:
|
|
33
|
+
DomRange(const char* t)
|
|
34
|
+
: IntTest(t,1,ds_66,true) {}
|
|
35
|
+
virtual bool solution(const Assignment& x) const {
|
|
36
|
+
return (x[0] >= -2) && (x[0] <= 2);
|
|
37
|
+
}
|
|
38
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
39
|
+
Gecode::dom(home, x[0], -2, 2);
|
|
40
|
+
}
|
|
41
|
+
virtual void post(Space* home, IntVarArray& x, BoolVar b) {
|
|
42
|
+
Gecode::dom(home, x[0], -2, 2, b);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
DomRange _domrange("Dom::Range");
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class DomDom : public IntTest {
|
|
49
|
+
public:
|
|
50
|
+
DomDom(const char* t)
|
|
51
|
+
: IntTest(t,1,ds_66,true) {}
|
|
52
|
+
virtual bool solution(const Assignment& x) const {
|
|
53
|
+
return
|
|
54
|
+
(((x[0] >= -4) && (x[0] <= -3)) ||
|
|
55
|
+
((x[0] >= -1) && (x[0] <= -1)) ||
|
|
56
|
+
((x[0] >= 1) && (x[0] <= 1)) ||
|
|
57
|
+
((x[0] >= 3) && (x[0] <= 5)));
|
|
58
|
+
}
|
|
59
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
60
|
+
Gecode::dom(home, x[0], d1);
|
|
61
|
+
}
|
|
62
|
+
virtual void post(Space* home, IntVarArray& x, BoolVar b) {
|
|
63
|
+
Gecode::dom(home, x[0], d1, b);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
DomDom _domdom("Dom::Dom");
|
|
67
|
+
|
|
68
|
+
// STATISTICS: test-int
|
|
69
|
+
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Christian Schulte, 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/int.hh"
|
|
23
|
+
#include "test/log.hh"
|
|
24
|
+
|
|
25
|
+
class ElementInt : public IntTest {
|
|
26
|
+
private:
|
|
27
|
+
const int* c;
|
|
28
|
+
const int n;
|
|
29
|
+
public:
|
|
30
|
+
ElementInt(const char* t, const IntSet& is, const int* c0, int n0)
|
|
31
|
+
: IntTest(t,2,is), c(c0), n(n0) {}
|
|
32
|
+
virtual bool solution(const Assignment& x) const {
|
|
33
|
+
return (x[0]>= 0) && (x[0]<n) && c[x[0]]==x[1];
|
|
34
|
+
}
|
|
35
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
36
|
+
IntArgs ia(n,c);
|
|
37
|
+
element(home, ia, x[0], x[1]);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
static IntSet is1(-4,8);
|
|
41
|
+
static const int c1[5] = {-1,1,-3,3,-4};
|
|
42
|
+
static ElementInt _elinta("Element::Int::A",is1,&c1[0],5);
|
|
43
|
+
static IntSet is2(-4,8);
|
|
44
|
+
static const int c2[8] = {-1,1,-1,1,-1,1,0,0};
|
|
45
|
+
static ElementInt _elintb("Element::Int::B",is2,&c2[0],8);
|
|
46
|
+
static IntSet is3(-4,8);
|
|
47
|
+
static const int c3[1] = {-1};
|
|
48
|
+
static ElementInt _elintc("Element::Int::C",is3,&c3[0],1);
|
|
49
|
+
|
|
50
|
+
class ElementShareInt : public IntTest {
|
|
51
|
+
private:
|
|
52
|
+
const int* c;
|
|
53
|
+
const int n;
|
|
54
|
+
public:
|
|
55
|
+
ElementShareInt(const char* t, const IntSet& is, const int* c0, int n0)
|
|
56
|
+
: IntTest(t,1,is), c(c0), n(n0) {}
|
|
57
|
+
virtual bool solution(const Assignment& x) const {
|
|
58
|
+
return (x[0]>= 0) && (x[0]<n) && c[x[0]]==x[0];
|
|
59
|
+
}
|
|
60
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
61
|
+
IntArgs ia(n,c);
|
|
62
|
+
element(home, ia, x[0], x[0]);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
static IntSet is4(-4,8);
|
|
67
|
+
static const int c4[7] = {0,-1,2,-2,4,-3,6};
|
|
68
|
+
static ElementShareInt _elintd("Element::Int::D",is3,&c4[0],7);
|
|
69
|
+
|
|
70
|
+
class ElementVar : public IntTest {
|
|
71
|
+
private:
|
|
72
|
+
const int n;
|
|
73
|
+
public:
|
|
74
|
+
ElementVar(const char* t, const IntSet& is, int n0, IntConLevel icl)
|
|
75
|
+
: IntTest(t,n0+2,is,false,icl), n(n0) {}
|
|
76
|
+
virtual bool solution(const Assignment& x) const {
|
|
77
|
+
return (x[0]>= 0) && (x[0]<n) && x[2+x[0]]==x[1];
|
|
78
|
+
}
|
|
79
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
80
|
+
Log::log("", icl == ICL_BND
|
|
81
|
+
? "\tIntConLevel icl = ICL_BND;"
|
|
82
|
+
: "\tIntConLevel icl = ICL_DOM;");
|
|
83
|
+
Log::log("post element",
|
|
84
|
+
"\tint n = x.size()-2;\n"
|
|
85
|
+
"\tIntVarArgs ia(n);\n"
|
|
86
|
+
"\tfor (int i=0;i<n;i++)\n"
|
|
87
|
+
"\t ia[i]=x[2+i];\n"
|
|
88
|
+
"\telement(this, ia, x[0], x[1], icl);");
|
|
89
|
+
IntVarArgs ia(n);
|
|
90
|
+
for (int i=0;i<n;i++)
|
|
91
|
+
ia[i]=x[2+i];
|
|
92
|
+
element(home, ia, x[0], x[1], icl);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
class ElementShareVar : public IntTest {
|
|
97
|
+
private:
|
|
98
|
+
const int n;
|
|
99
|
+
IntConLevel icl;
|
|
100
|
+
public:
|
|
101
|
+
// This is actually not domain consistent!
|
|
102
|
+
ElementShareVar(const char* t, const IntSet& is, int n0, IntConLevel icl0)
|
|
103
|
+
: IntTest(t,n0+1,is,false), n(n0), icl(icl0) {}
|
|
104
|
+
virtual bool solution(const Assignment& x) const {
|
|
105
|
+
return (x[0]>= 0) && (x[0]<n) && x[1+x[0]]==x[0];
|
|
106
|
+
}
|
|
107
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
108
|
+
Log::log("", icl == ICL_BND
|
|
109
|
+
? "\tIntConLevel icl = ICL_BND;"
|
|
110
|
+
: "\tIntConLevel icl = ICL_DOM;");
|
|
111
|
+
Log::log("post element",
|
|
112
|
+
"\tint n = x.size()-1;\n"
|
|
113
|
+
"\tIntVarArgs ia(n);\n"
|
|
114
|
+
"\tfor (int i=0;i<n;i++)\n"
|
|
115
|
+
"\t ia[i]=x[1+i];\n"
|
|
116
|
+
"\telement(this, ia, x[0], x[0], icl);");
|
|
117
|
+
IntVarArgs ia(n);
|
|
118
|
+
for (int i=0;i<n;i++)
|
|
119
|
+
ia[i]=x[1+i];
|
|
120
|
+
element(home, ia, x[0], x[0], icl);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
static IntSet iv1(-1,3);
|
|
124
|
+
static ElementVar _elvarbnda("Element::Var::Bnd::A",iv1,3,ICL_BND);
|
|
125
|
+
static ElementVar _elvardoma("Element::Var::Dom::A",iv1,3,ICL_DOM);
|
|
126
|
+
static ElementShareVar _elsvarbnda("Element::Var::Bnd::B",iv1,3,ICL_BND);
|
|
127
|
+
static ElementShareVar _elsvardoma("Element::Var::Dom::B",iv1,3,ICL_DOM);
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
// STATISTICS: test-int
|
|
132
|
+
|
|
@@ -0,0 +1,592 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Patrick Pekczynski <pekczynski@ps.uni-sb.de>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Patrick Pekczynski, 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/int.hh"
|
|
23
|
+
#include "test/log.hh"
|
|
24
|
+
#include "gecode/int/gcc.hh"
|
|
25
|
+
|
|
26
|
+
static IntSet ds_02(0,2);
|
|
27
|
+
static IntSet ds_03(0,3);
|
|
28
|
+
static IntSet ds_04(0,4);
|
|
29
|
+
static IntSet ds_12(1,2);
|
|
30
|
+
static IntSet ds_14(1,4);
|
|
31
|
+
static IntSet ds_18(1,8);
|
|
32
|
+
|
|
33
|
+
class GCCAssignment : public Assignment {
|
|
34
|
+
int problow;
|
|
35
|
+
int probup;
|
|
36
|
+
int cardlow;
|
|
37
|
+
int cardup;
|
|
38
|
+
int xsize;
|
|
39
|
+
public:
|
|
40
|
+
GCCAssignment(int xlow, int xup,
|
|
41
|
+
int clow, int cup,
|
|
42
|
+
int xs,
|
|
43
|
+
int n0, const IntSet& d0)
|
|
44
|
+
: Assignment(n0, d0),
|
|
45
|
+
problow(xlow), probup(xup),
|
|
46
|
+
cardlow(clow), cardup(cup),
|
|
47
|
+
xsize(xs) {
|
|
48
|
+
reset();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
void reset(void) {
|
|
52
|
+
done = false;
|
|
53
|
+
IntSet card_dom(cardlow, cardup);
|
|
54
|
+
IntSet var_dom(problow, probup);
|
|
55
|
+
for (int i = xsize; i < n; i++) {
|
|
56
|
+
dsv[i].init(card_dom);
|
|
57
|
+
}
|
|
58
|
+
for (int i = 0; i < xsize; i++ )
|
|
59
|
+
dsv[i].init(var_dom);
|
|
60
|
+
}
|
|
61
|
+
void operator++(void) {
|
|
62
|
+
IntSet card_dom(cardlow, cardup);
|
|
63
|
+
IntSet var_dom(problow, probup);
|
|
64
|
+
int i = n-1;
|
|
65
|
+
while (true) {
|
|
66
|
+
++dsv[i];
|
|
67
|
+
if (dsv[i]())
|
|
68
|
+
return;
|
|
69
|
+
if (i >= xsize && i < n) {
|
|
70
|
+
dsv[i].init(card_dom);
|
|
71
|
+
} else {
|
|
72
|
+
dsv[i].init(var_dom);
|
|
73
|
+
}
|
|
74
|
+
--i;
|
|
75
|
+
if (i<0) {
|
|
76
|
+
done = true;
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class GCC_FC_AllLbUb : public IntTest {
|
|
85
|
+
public:
|
|
86
|
+
GCC_FC_AllLbUb(const char* t, IntConLevel icl)
|
|
87
|
+
: IntTest(t, 4, ds_14, false, icl) {}
|
|
88
|
+
virtual bool solution(const Assignment& x) const {
|
|
89
|
+
int n[4];
|
|
90
|
+
for (int i=4; i--; )
|
|
91
|
+
n[i] = 0;
|
|
92
|
+
for (int i=x.size(); i--; )
|
|
93
|
+
n[x[i] - 1]++;
|
|
94
|
+
for (int i=4; i--;)
|
|
95
|
+
if (n[i] > 2)
|
|
96
|
+
return false;
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
100
|
+
gcc(home, x, 0, 2, icl);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
class GCC_FC_AllTriple : public IntTest {
|
|
105
|
+
public:
|
|
106
|
+
GCC_FC_AllTriple(const char* t, IntConLevel icl)
|
|
107
|
+
: IntTest(t, 4, ds_14, false, icl) {}
|
|
108
|
+
virtual bool solution(const Assignment& x) const {
|
|
109
|
+
int n[4];
|
|
110
|
+
for (int i=4; i--; )
|
|
111
|
+
n[i] = 0;
|
|
112
|
+
for (int i=x.size(); i--; )
|
|
113
|
+
n[x[i] - 1]++;
|
|
114
|
+
for (int i=4; i--;)
|
|
115
|
+
if (n[i] > 2)
|
|
116
|
+
return false;
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
120
|
+
IntArgs card(12, 1,0,2, 2,0,2, 3,0,2, 4,0,2);
|
|
121
|
+
gcc(home, x, card, 12, 2, true, 1, 4, icl);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
class GCC_FC_SomeTriple : public IntTest {
|
|
126
|
+
public:
|
|
127
|
+
GCC_FC_SomeTriple(const char* t, IntConLevel icl)
|
|
128
|
+
: IntTest(t, 4, ds_14, false, icl) {}
|
|
129
|
+
virtual bool solution(const Assignment& x) const {
|
|
130
|
+
int n[4];
|
|
131
|
+
for (int i=4; i--; )
|
|
132
|
+
n[i] = 0;
|
|
133
|
+
for (int i=x.size(); i--; )
|
|
134
|
+
n[x[i] - 1]++;
|
|
135
|
+
if (n[0] < 2 || n[1] < 2 ||
|
|
136
|
+
n[2] > 0 || n[3] > 0)
|
|
137
|
+
return false;
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
141
|
+
IntArgs card(6, 1,0,2, 2,0,2);
|
|
142
|
+
gcc(home, x, card, 6, 0, false, 1, 4, icl);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
class GCC_FC_AllEqUb : public IntTest {
|
|
147
|
+
public:
|
|
148
|
+
GCC_FC_AllEqUb(const char* t, IntConLevel icl)
|
|
149
|
+
: IntTest(t, 4, ds_12, false, icl) {}
|
|
150
|
+
virtual bool solution(const Assignment& x) const {
|
|
151
|
+
int n[2];
|
|
152
|
+
for (int i=2; i--; )
|
|
153
|
+
n[i] = 0;
|
|
154
|
+
for (int i=x.size(); i--; )
|
|
155
|
+
n[x[i] - 1]++;
|
|
156
|
+
if (n[0] != 2 || n[1] != 2)
|
|
157
|
+
return false;
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
161
|
+
gcc(home, x, 2, icl);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class GCC_FC_Shared_AllLbUb : public IntTest {
|
|
167
|
+
public:
|
|
168
|
+
GCC_FC_Shared_AllLbUb(const char* t, IntConLevel icl)
|
|
169
|
+
: IntTest(t,2,ds_14,false, icl) {}
|
|
170
|
+
virtual bool solution(const Assignment& x) const {
|
|
171
|
+
if (x[0] != x[1]) {
|
|
172
|
+
return true;
|
|
173
|
+
} else {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
178
|
+
IntVarArgs y(6);
|
|
179
|
+
for (int i = 0; i < 6; i++) {
|
|
180
|
+
if (i < 3) {
|
|
181
|
+
y[i] = x[0];
|
|
182
|
+
} else {
|
|
183
|
+
y[i] = x[1];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
gcc(home, y, 0, 3, icl);
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
class GCC_FC_Shared_SomeTrip : public IntTest {
|
|
191
|
+
public:
|
|
192
|
+
GCC_FC_Shared_SomeTrip(const char* t, IntConLevel icl)
|
|
193
|
+
: IntTest(t,1,ds_14,false,icl) {}
|
|
194
|
+
virtual bool solution(const Assignment& x) const {
|
|
195
|
+
if (x[0] == 1) {
|
|
196
|
+
return true;
|
|
197
|
+
} else {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
202
|
+
IntArgs c(3, 1,4,4);
|
|
203
|
+
|
|
204
|
+
IntVarArgs y(4);
|
|
205
|
+
for (int i = 0; i < 4; i++) {
|
|
206
|
+
y[i] = x[0];
|
|
207
|
+
}
|
|
208
|
+
gcc(home, y, c, 3, 0, false, 1, 4, icl);
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
class GCC_VC_AllLbUb : public IntTest {
|
|
214
|
+
private:
|
|
215
|
+
static const int lb = 0;
|
|
216
|
+
static const int rb = 2;
|
|
217
|
+
|
|
218
|
+
static const int xs = 7;
|
|
219
|
+
static const int ve = 4;
|
|
220
|
+
|
|
221
|
+
static const int minocc = 0;
|
|
222
|
+
static const int maxocc = 2;
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
Assignment* make_assignment() {
|
|
226
|
+
return new GCCAssignment(lb, rb, minocc, maxocc, ve, xs, dom);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
public:
|
|
231
|
+
GCC_VC_AllLbUb(const char* t, IntConLevel icl)
|
|
232
|
+
: IntTest(t, xs, ds_02, false,icl) {}
|
|
233
|
+
virtual bool solution(const Assignment& x) const {
|
|
234
|
+
// std::cout << "GCC-Sol: ";
|
|
235
|
+
// for (int i = 0; i < xs; i++) {
|
|
236
|
+
// if (i == ve) std::cout << "||";
|
|
237
|
+
// std::cout << x[i] << " ";
|
|
238
|
+
// }
|
|
239
|
+
// std::cout << "...";
|
|
240
|
+
|
|
241
|
+
for (int i = 0; i < ve; i++) {
|
|
242
|
+
if ( x[i] < lb || x[i] > rb) {
|
|
243
|
+
// std::cout << "wrong bounds\n";
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
GECODE_AUTOARRAY(int, count, xs - ve);
|
|
249
|
+
for (int i = ve; i < xs; i++) {
|
|
250
|
+
count[i - ve] = 0;
|
|
251
|
+
if (x[i] < minocc || x[i] > maxocc) {
|
|
252
|
+
// std::cout << "min-max-occ\n";
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
for (int i = 0; i < ve; i++) {
|
|
258
|
+
count[x[i]]++;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
for (int i = 0; i < xs - ve; i++) {
|
|
262
|
+
if (count[i] != x[i + ve]) {
|
|
263
|
+
// std::cout << "counting failed\n";
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// std::cout << "valid\n";
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
273
|
+
// std::cout << "test_post\n";
|
|
274
|
+
|
|
275
|
+
// get the number of used values
|
|
276
|
+
GECODE_AUTOARRAY(bool, done, xs - ve);
|
|
277
|
+
for (int i = 0; i < xs - ve; i++) {
|
|
278
|
+
done[i] = false;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// int nov = 0;
|
|
282
|
+
// for (int i = 0; i < xs - ve; i++) {
|
|
283
|
+
// for (int j = 0; j < ve; j++) {
|
|
284
|
+
// if (x[j].in(i) && !done[i]) {
|
|
285
|
+
// nov++;
|
|
286
|
+
// done[i] = true;
|
|
287
|
+
// }
|
|
288
|
+
// }
|
|
289
|
+
// }
|
|
290
|
+
|
|
291
|
+
// std::cout << "nov = "<<nov<<"\n";
|
|
292
|
+
// for (int i = ve; i < ve + nov; i++) {
|
|
293
|
+
IntVarArgs y(xs - ve);
|
|
294
|
+
for (int i = ve; i < xs; i++) {
|
|
295
|
+
y[i - ve] = x[i];
|
|
296
|
+
// rel(home, y[i - ve], IRT_LQ, maxocc);
|
|
297
|
+
// rel(home, y[i - ve], IRT_GQ, minocc);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
IntVarArgs z(ve);
|
|
301
|
+
for (int i = 0; i < ve; i++) {
|
|
302
|
+
// std::cout << x[i] << " ";
|
|
303
|
+
z[i] = x[i];
|
|
304
|
+
}
|
|
305
|
+
// std::cout <<"\n";
|
|
306
|
+
// gcc(home, z, c, 12, 2, icl);
|
|
307
|
+
gcc(home, z, y, 0, 2, icl);
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
class GCC_VC_AllTriple : public IntTest {
|
|
313
|
+
private:
|
|
314
|
+
static const int lb = 0;
|
|
315
|
+
static const int rb = 2;
|
|
316
|
+
|
|
317
|
+
static const int xs = 7;
|
|
318
|
+
static const int ve = 4;
|
|
319
|
+
|
|
320
|
+
static const int minocc = 0;
|
|
321
|
+
static const int maxocc = 2;
|
|
322
|
+
|
|
323
|
+
Assignment* make_assignment() {
|
|
324
|
+
return new GCCAssignment(lb, rb, minocc, maxocc, ve, xs, dom);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
public:
|
|
329
|
+
GCC_VC_AllTriple(const char* t, IntConLevel icl)
|
|
330
|
+
: IntTest(t, xs, ds_02, false,icl) {}
|
|
331
|
+
virtual bool solution(const Assignment& x) const {
|
|
332
|
+
// std::cout << "GCC-Sol: ";
|
|
333
|
+
// for (int i = 0; i < xs; i++) {
|
|
334
|
+
// if (i == ve) std::cout << "||";
|
|
335
|
+
// std::cout << x[i] << " ";
|
|
336
|
+
// }
|
|
337
|
+
// std::cout << "\n";
|
|
338
|
+
|
|
339
|
+
for (int i = 0; i < ve; i++) {
|
|
340
|
+
if ( x[i] < lb || x[i] > rb) {
|
|
341
|
+
// std::cout << "wrong bounds\n";
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
GECODE_AUTOARRAY(int, count, xs - ve);
|
|
347
|
+
for (int i = ve; i < xs; i++) {
|
|
348
|
+
count[i - ve] = 0;
|
|
349
|
+
if (x[i] < minocc || x[i] > maxocc) {
|
|
350
|
+
// std::cout << "min-max-occ\n";
|
|
351
|
+
return false;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
for (int i = 0; i < ve; i++) {
|
|
356
|
+
count[x[i]]++;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// std::cout << "count: ";
|
|
360
|
+
for (int i = 0; i < xs - ve; i++) {
|
|
361
|
+
// std::cout << count[i] << " ";
|
|
362
|
+
}
|
|
363
|
+
// std::cout << "\n";
|
|
364
|
+
|
|
365
|
+
for (int i = 0; i < xs - ve; i++) {
|
|
366
|
+
// std::cout << "comp: "<< count[i] <<" & "<<x[i + ve] << "\n";
|
|
367
|
+
if (count[i] != x[i + ve]) {
|
|
368
|
+
// std::cout << "count not met\n";
|
|
369
|
+
return false;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// std::cout << "valid\n";
|
|
374
|
+
return true;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
378
|
+
// std::cout << "test_post\n";
|
|
379
|
+
|
|
380
|
+
// get the number of used values
|
|
381
|
+
GECODE_AUTOARRAY(bool, done, xs - ve);
|
|
382
|
+
for (int i = 0; i < xs - ve; i++) {
|
|
383
|
+
done[i] = false;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
IntVarArgs y(xs - ve);
|
|
387
|
+
for (int i = ve; i < xs; i++) {
|
|
388
|
+
y[i - ve] = x[i];
|
|
389
|
+
rel(home, y[i - ve], IRT_LQ, maxocc);
|
|
390
|
+
rel(home, y[i - ve], IRT_GQ, minocc);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
IntVarArgs z(ve);
|
|
394
|
+
for (int i = 0; i < ve; i++) {
|
|
395
|
+
z[i] = x[i];
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
IntArgs value(3, 0, 1, 2);
|
|
399
|
+
// std::cout <<"\n";
|
|
400
|
+
// gcc(home, z, c, 12, 2, icl);
|
|
401
|
+
gcc(home, z, value, y, 3, 2, true, 0,2, icl);
|
|
402
|
+
}
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
class GCC_VC_SomeTriple : public IntTest {
|
|
407
|
+
private:
|
|
408
|
+
static const int lb = 0;
|
|
409
|
+
static const int rb = 2;
|
|
410
|
+
|
|
411
|
+
static const int xs = 6;
|
|
412
|
+
static const int ve = 4;
|
|
413
|
+
|
|
414
|
+
static const int minocc = 0;
|
|
415
|
+
static const int maxocc = 2;
|
|
416
|
+
|
|
417
|
+
Assignment* make_assignment() {
|
|
418
|
+
return new GCCAssignment(lb, rb, minocc, maxocc, ve, xs, dom);
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
public:
|
|
422
|
+
GCC_VC_SomeTriple(const char* t, IntConLevel icl)
|
|
423
|
+
: IntTest(t, xs, ds_02, false,icl) {}
|
|
424
|
+
virtual bool solution(const Assignment& x) const {
|
|
425
|
+
// std::cout << "GCC-Sol: ";
|
|
426
|
+
// for (int i = 0; i < xs; i++) {
|
|
427
|
+
// if (i == ve) std::cout << "||";
|
|
428
|
+
// std::cout << x[i] << " ";
|
|
429
|
+
// }
|
|
430
|
+
// std::cout << "\n";
|
|
431
|
+
|
|
432
|
+
for (int i = 0; i < ve; i++) {
|
|
433
|
+
if ( x[i] < lb || x[i] > rb) {
|
|
434
|
+
// std::cout << "wrong bounds\n";
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
GECODE_AUTOARRAY(int, count, xs - ve);
|
|
440
|
+
for (int i = ve; i < xs; i++) {
|
|
441
|
+
count[i - ve] = 0;
|
|
442
|
+
if (x[i] < minocc || x[i] > maxocc) {
|
|
443
|
+
// std::cout << "min-max-occ\n";
|
|
444
|
+
return false;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
for (int i = 0; i < ve; i++) {
|
|
449
|
+
if (x[i] == 0) {
|
|
450
|
+
count[0]++;
|
|
451
|
+
}
|
|
452
|
+
if (x[i] == 1) {
|
|
453
|
+
count[1]++;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
for (int i = 0; i < ve; i++) {
|
|
458
|
+
if (x[i] == 2) {
|
|
459
|
+
// std::cout << "2 not allowed!\n";
|
|
460
|
+
return false;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
// std::cout << "\n";
|
|
464
|
+
|
|
465
|
+
for (int i = 0; i < xs - ve; i++) {
|
|
466
|
+
// std::cout << "comp: "<< count[i] <<" & "<<x[i + ve] << "\n";
|
|
467
|
+
if (count[i] != x[i + ve]) {
|
|
468
|
+
// std::cout << "count not met\n";
|
|
469
|
+
return false;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
// std::cout << "valid\n";
|
|
474
|
+
return true;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
478
|
+
|
|
479
|
+
IntVarArgs y(xs - ve);
|
|
480
|
+
for (int i = ve; i < xs; i++) {
|
|
481
|
+
y[i - ve] = x[i];
|
|
482
|
+
rel(home, y[i - ve], IRT_LQ, maxocc);
|
|
483
|
+
rel(home, y[i - ve], IRT_GQ, minocc);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
IntVarArgs z(ve);
|
|
487
|
+
for (int i = 0; i < ve; i++) {
|
|
488
|
+
z[i] = x[i];
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
IntArgs value(2, 0, 1);
|
|
492
|
+
gcc(home, z, value, y, 2, 0, false, 0,2, icl);
|
|
493
|
+
}
|
|
494
|
+
};
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
class GCC_VC_Shared_SomeTriple : public IntTest {
|
|
498
|
+
public:
|
|
499
|
+
GCC_VC_Shared_SomeTriple(const char* t, IntConLevel icl)
|
|
500
|
+
: IntTest(t,3,ds_04,false,icl) {}
|
|
501
|
+
virtual bool solution(const Assignment& x) const {
|
|
502
|
+
if ( (x[0] != 1 && x[0] != 3) ||
|
|
503
|
+
(x[1] != 1 && x[1] != 3)) {
|
|
504
|
+
return false;
|
|
505
|
+
}
|
|
506
|
+
if (x[0] == x[1]) {
|
|
507
|
+
return false;
|
|
508
|
+
}
|
|
509
|
+
if (x[0] < 1 || x[1] < 1) {
|
|
510
|
+
return false;
|
|
511
|
+
}
|
|
512
|
+
if (x[2] != 3) {
|
|
513
|
+
return false;
|
|
514
|
+
}
|
|
515
|
+
return true;
|
|
516
|
+
}
|
|
517
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
518
|
+
IntVarArgs y(6);
|
|
519
|
+
for (int i = 0; i < 6; i++) {
|
|
520
|
+
if (i < 3) {
|
|
521
|
+
y[i] = x[0];
|
|
522
|
+
} else {
|
|
523
|
+
y[i] = x[1];
|
|
524
|
+
}
|
|
525
|
+
rel(home, y[i], IRT_GQ, 1);
|
|
526
|
+
}
|
|
527
|
+
IntArgs value(2, 1, 3);
|
|
528
|
+
IntVarArgs z(2);
|
|
529
|
+
z[0] = x[2];
|
|
530
|
+
z[1] = x[2];
|
|
531
|
+
rel(home, z[0], IRT_EQ, 3);
|
|
532
|
+
rel(home, z[1], IRT_EQ, 3);
|
|
533
|
+
|
|
534
|
+
gcc(home, y, value, z, 2, 0, false, 1, 4, icl);
|
|
535
|
+
}
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
// Testing with Fixed Cardinalities
|
|
543
|
+
// FixCard::\(\(Shared::\)*\(All\|Some\)::\([lubv,()]+\)\)::\(Bnd\|Dom\|Val\)
|
|
544
|
+
// VarCard::\(\(Shared::\)*\(All\|Some\)::\([lubv,()]+\)\)::\(Bnd\|Dom\|Val\)
|
|
545
|
+
|
|
546
|
+
GCC_FC_AllLbUb _gccbnd_all("GCC::FixCard::Bnd::All::(lb,ub)",ICL_BND);
|
|
547
|
+
GCC_FC_AllLbUb _gccdom_all("GCC::FixCard::Dom::All::(lb,ub)",ICL_DOM);
|
|
548
|
+
GCC_FC_AllLbUb _gccval_all("GCC::FixCard::Val::All::(lb,ub)",ICL_VAL);
|
|
549
|
+
|
|
550
|
+
GCC_FC_AllEqUb _gccbnd_alleq("GCC::FixCard::Bnd::All::ub",ICL_BND);
|
|
551
|
+
GCC_FC_AllEqUb _gccdom_alleq("GCC::FixCard::Dom::All::ub",ICL_DOM);
|
|
552
|
+
GCC_FC_AllEqUb _gccval_alleq("GCC::FixCard::Val::All::ub",ICL_VAL);
|
|
553
|
+
|
|
554
|
+
GCC_FC_AllTriple _gccbnd_alltrip("GCC::FixCard::Bnd::All::(v,lb,ub)",ICL_BND);
|
|
555
|
+
GCC_FC_AllTriple _gccdom_alltrip("GCC::FixCard::Dom::All::(v,lb,ub)",ICL_DOM);
|
|
556
|
+
GCC_FC_AllTriple _gccval_alltrip("GCC::FixCard::Val::All::(v,lb,ub)",ICL_VAL);
|
|
557
|
+
|
|
558
|
+
GCC_FC_SomeTriple _gccbnd_sometrip("GCC::FixCard::Bnd::Some::(v,lb,ub)",ICL_BND);
|
|
559
|
+
GCC_FC_SomeTriple _gccdom_sometrip("GCC::FixCard::Dom::Some::(v,lb,ub)",ICL_DOM);
|
|
560
|
+
GCC_FC_SomeTriple _gccval_sometrip("GCC::FixCard::Val::Some::(v,lb,ub)",ICL_VAL);
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
// GCC_FC_Shared_AllLbUb _gccbnd_shared_all("GCC::FixCard::Bnd::Shared::All::(lb,ub)",ICL_BND);
|
|
564
|
+
// GCC_FC_Shared_AllLbUb _gccdom_shared_all("GCC::FixCard::Dom::Shared::All::(lb,ub)",ICL_DOM);
|
|
565
|
+
// GCC_FC_Shared_AllLbUb _gccval_shared_all("GCC::FixCard::Val::Shared::All::(lb,ub)",ICL_VAL);
|
|
566
|
+
|
|
567
|
+
// GCC_FC_Shared_SomeTrip _gccbnd_shared_tripsome("GCC::FixCard::Bnd::Shared::Some::(v,lb,ub)",ICL_BND);
|
|
568
|
+
// GCC_FC_Shared_SomeTrip _gccdom_shared_tripsome("GCC::FixCard::Dom::Shared::Some::(v,lb,ub)",ICL_DOM);
|
|
569
|
+
// GCC_FC_Shared_SomeTrip _gccval_shared_tripsome("GCC::FixCard::Val::Shared::Some::(v,lb,ub)",ICL_VAL);
|
|
570
|
+
|
|
571
|
+
// Testing with Cardinality Variables
|
|
572
|
+
|
|
573
|
+
GCC_VC_AllLbUb _gccbnd_all_var("GCC::VarCard::Bnd::All::(lb,ub)",ICL_BND);
|
|
574
|
+
GCC_VC_AllLbUb _gccdom_all_var("GCC::VarCard::Dom::All::(lb,ub)",ICL_DOM);
|
|
575
|
+
GCC_VC_AllLbUb _gccval_all_var("GCC::VarCard::Val::All::(lb,ub)",ICL_VAL);
|
|
576
|
+
|
|
577
|
+
GCC_VC_AllTriple _gccbnd_alltrip_var("GCC::VarCard::Bnd::All::(v,lb,ub)",ICL_BND);
|
|
578
|
+
GCC_VC_AllTriple _gccdom_alltrip_var("GCC::VarCard::Dom::All::(v,lb,ub)",ICL_DOM);
|
|
579
|
+
GCC_VC_AllTriple _gccval_alltrip_var("GCC::VarCard::Val::All::(v,lb,ub)",ICL_VAL);
|
|
580
|
+
|
|
581
|
+
GCC_VC_SomeTriple _gccbnd_sometrip__var("GCC::VarCard::Bnd::Some::(v,lb,ub)",ICL_BND);
|
|
582
|
+
GCC_VC_SomeTriple _gccdom_sometrip__var("GCC::VarCard::Dom::Some::(v,lb,ub)",ICL_DOM);
|
|
583
|
+
GCC_VC_SomeTriple _gccval_sometrip__var("GCC::VarCard::Val::Some::(v,lb,ub)",ICL_VAL);
|
|
584
|
+
|
|
585
|
+
GCC_VC_Shared_SomeTriple _gccbnd_shared_sometrip_var("GCC::VarCard::Bnd::Shared::Some::(lb,ub)",ICL_BND);
|
|
586
|
+
GCC_VC_Shared_SomeTriple _gccdom_shared_sometrip_var("GCC::VarCard::Dom::Shared::Some::(lb,ub)", ICL_DOM);
|
|
587
|
+
GCC_VC_Shared_SomeTriple _gccval_shared_sometrip_var("GCC::VarCard::Val::Shared::Some::(lb,ub)", ICL_VAL);
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
// STATISTICS: test-int
|
|
592
|
+
|