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,119 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
* Mikael Lagerkvist <lagerkvist@gecode.org>
|
|
5
|
+
*
|
|
6
|
+
* Copyright:
|
|
7
|
+
* Christian Schulte, 2005
|
|
8
|
+
* Mikael Lagerkvist, 2006
|
|
9
|
+
*
|
|
10
|
+
* Last modified:
|
|
11
|
+
* $Date: 2006-08-04 16:07:12 +0200 (Fri, 04 Aug 2006) $ by $Author: schulte $
|
|
12
|
+
* $Revision: 3518 $
|
|
13
|
+
*
|
|
14
|
+
* This file is part of Gecode, the generic constraint
|
|
15
|
+
* development environment:
|
|
16
|
+
* http://www.gecode.org
|
|
17
|
+
*
|
|
18
|
+
* See the file "LICENSE" for information on usage and
|
|
19
|
+
* redistribution of this file, and for a
|
|
20
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
#ifndef __GECODE_TEST_INT_HH__
|
|
25
|
+
#define __GECODE_TEST_INT_HH__
|
|
26
|
+
|
|
27
|
+
#include "gecode/int.hh"
|
|
28
|
+
#include "test.hh"
|
|
29
|
+
|
|
30
|
+
using namespace Gecode;
|
|
31
|
+
using namespace Int;
|
|
32
|
+
|
|
33
|
+
class Assignment {
|
|
34
|
+
protected:
|
|
35
|
+
int n;
|
|
36
|
+
IntSetValues* dsv;
|
|
37
|
+
IntSet d;
|
|
38
|
+
bool done;
|
|
39
|
+
public:
|
|
40
|
+
Assignment(int, const IntSet&);
|
|
41
|
+
virtual void reset(void);
|
|
42
|
+
virtual bool operator()(void) const {
|
|
43
|
+
return !done;
|
|
44
|
+
}
|
|
45
|
+
virtual void operator++(void);
|
|
46
|
+
virtual int operator[](int i) const {
|
|
47
|
+
assert((i>=0) && (i<n));
|
|
48
|
+
return dsv[i].val();
|
|
49
|
+
}
|
|
50
|
+
int size(void) const {
|
|
51
|
+
return n;
|
|
52
|
+
}
|
|
53
|
+
virtual ~Assignment(void) {
|
|
54
|
+
delete [] dsv;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
class RandomAssignment : public Assignment {
|
|
59
|
+
protected:
|
|
60
|
+
int *vals;
|
|
61
|
+
int count;
|
|
62
|
+
int left;
|
|
63
|
+
virtual int randval(void);
|
|
64
|
+
public:
|
|
65
|
+
RandomAssignment(int, const IntSet&, int);
|
|
66
|
+
virtual void reset(void);
|
|
67
|
+
virtual bool operator()(void) const {
|
|
68
|
+
return left > 0;
|
|
69
|
+
}
|
|
70
|
+
virtual int operator[](int i) const {
|
|
71
|
+
assert((i>=0) && (i<n));
|
|
72
|
+
return vals[i];
|
|
73
|
+
}
|
|
74
|
+
virtual void operator++(void);
|
|
75
|
+
virtual ~RandomAssignment(void) {
|
|
76
|
+
delete [] vals;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
std::ostream&
|
|
81
|
+
operator<<(std::ostream&, const Assignment&);
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* \brief Base class for tests with integer constraints
|
|
85
|
+
*
|
|
86
|
+
*/
|
|
87
|
+
class IntTest : public Test {
|
|
88
|
+
protected:
|
|
89
|
+
/// Number of variables
|
|
90
|
+
int arity;
|
|
91
|
+
/// Domain of variables
|
|
92
|
+
IntSet dom;
|
|
93
|
+
/// Does the constraint also exist as reified constraint
|
|
94
|
+
bool reified;
|
|
95
|
+
/// Consistency level of the propagator
|
|
96
|
+
IntConLevel icl;
|
|
97
|
+
|
|
98
|
+
virtual Assignment* make_assignment(void);
|
|
99
|
+
virtual bool do_search_test(void) { return true; }
|
|
100
|
+
public:
|
|
101
|
+
/// Constructor
|
|
102
|
+
IntTest(const char* t, int a, const IntSet& d,
|
|
103
|
+
bool r=false, IntConLevel i=ICL_DEF)
|
|
104
|
+
: Test("Int",t), arity(a), dom(d), reified(r), icl(i) {
|
|
105
|
+
}
|
|
106
|
+
/// Check for solution
|
|
107
|
+
virtual bool solution(const Assignment&) const = 0;
|
|
108
|
+
/// Post propagator
|
|
109
|
+
virtual void post(Space* home, IntVarArray& x) = 0;
|
|
110
|
+
/// Post reified propagator
|
|
111
|
+
virtual void post(Space* home, IntVarArray& x, BoolVar b) {}
|
|
112
|
+
/// Perform test
|
|
113
|
+
virtual bool run(const Options& opt);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
#endif
|
|
117
|
+
|
|
118
|
+
// STATISTICS: test-int
|
|
119
|
+
|
|
@@ -0,0 +1,262 @@
|
|
|
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
|
+
#include <cmath>
|
|
26
|
+
#include <algorithm>
|
|
27
|
+
|
|
28
|
+
namespace {
|
|
29
|
+
const int s1r[7] = {
|
|
30
|
+
Limits::Int::int_min, Limits::Int::int_min+1,
|
|
31
|
+
-1,0,1,
|
|
32
|
+
Limits::Int::int_max-1, Limits::Int::int_max
|
|
33
|
+
};
|
|
34
|
+
const int s2r[9] = {
|
|
35
|
+
static_cast<int>(-sqrt(static_cast<double>(-Limits::Int::int_min))),
|
|
36
|
+
-4,-2,-1,0,1,2,4,
|
|
37
|
+
static_cast<int>(sqrt(static_cast<double>(Limits::Int::int_max)))
|
|
38
|
+
};
|
|
39
|
+
IntSet s1(s1r,7);
|
|
40
|
+
IntSet s2(s2r,9);
|
|
41
|
+
IntSet s3(-8,8);
|
|
42
|
+
IntSet s4(-3,3);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
class Mult : public IntTest {
|
|
46
|
+
public:
|
|
47
|
+
Mult(const char* t, const IntSet& is)
|
|
48
|
+
: IntTest(t,3,is) {}
|
|
49
|
+
virtual bool solution(const Assignment& x) const {
|
|
50
|
+
double d0 = static_cast<double>(x[0]);
|
|
51
|
+
double d1 = static_cast<double>(x[1]);
|
|
52
|
+
double d2 = static_cast<double>(x[2]);
|
|
53
|
+
return d0*d1 == d2;
|
|
54
|
+
}
|
|
55
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
56
|
+
Log::log("x[0]*x[1]==x[2]",
|
|
57
|
+
"\tmult(this, x[0], x[1], x[2]);");
|
|
58
|
+
mult(home, x[0], x[1], x[2]);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
namespace {
|
|
62
|
+
Mult _multmax("Arithmetic::Mult::A",s1);
|
|
63
|
+
Mult _multmed("Arithmetic::Mult::B",s2);
|
|
64
|
+
Mult _multmin("Arithmetic::Mult::C",s3);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
class Square : public IntTest {
|
|
68
|
+
public:
|
|
69
|
+
Square(const char* t, const IntSet& is)
|
|
70
|
+
: IntTest(t,2,is) {}
|
|
71
|
+
virtual bool solution(const Assignment& x) const {
|
|
72
|
+
double d0 = static_cast<double>(x[0]);
|
|
73
|
+
double d1 = static_cast<double>(x[1]);
|
|
74
|
+
return d0*d0 == d1;
|
|
75
|
+
}
|
|
76
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
77
|
+
mult(home, x[0], x[0], x[1]);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
namespace {
|
|
81
|
+
Square _squaremax("Arithmetic::Square::A",s1);
|
|
82
|
+
Square _squaremed("Arithmetic::Square::B",s2);
|
|
83
|
+
Square _squaremin("Arithmetic::Square::C",s3);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
class Abs : public IntTest {
|
|
87
|
+
public:
|
|
88
|
+
Abs(const char* t, IntConLevel icl, const IntSet& is)
|
|
89
|
+
: IntTest(t,2,is,false,icl) {}
|
|
90
|
+
virtual bool solution(const Assignment& x) const {
|
|
91
|
+
double d0 = static_cast<double>(x[0]);
|
|
92
|
+
double d1 = static_cast<double>(x[1]);
|
|
93
|
+
return (d0<0 ? -d0 : d0) == d1;
|
|
94
|
+
}
|
|
95
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
96
|
+
Log::log("post abs(x0, x1)",
|
|
97
|
+
"\tabs(this, x[0], x[1], icl);");
|
|
98
|
+
abs(home, x[0], x[1], icl);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
namespace {
|
|
102
|
+
Abs _absbndmax("Arithmetic::Abs::Bnd::A",ICL_BND,s1);
|
|
103
|
+
Abs _absbndmed("Arithmetic::Abs::Bnd::B",ICL_BND,s2);
|
|
104
|
+
Abs _absbndmin("Arithmetic::Abs::Bnd::C",ICL_BND,s3);
|
|
105
|
+
Abs _absdommax("Arithmetic::Abs::Dom::A",ICL_DOM,s1);
|
|
106
|
+
Abs _absdommed("Arithmetic::Abs::Dom::B",ICL_DOM,s2);
|
|
107
|
+
Abs _absdommin("Arithmetic::Abs::Dom::C",ICL_DOM,s3);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
class Min : public IntTest {
|
|
111
|
+
public:
|
|
112
|
+
Min(const char* t, const IntSet& is)
|
|
113
|
+
: IntTest(t,3,is) {}
|
|
114
|
+
virtual bool solution(const Assignment& x) const {
|
|
115
|
+
return std::min(x[0],x[1]) == x[2];
|
|
116
|
+
}
|
|
117
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
118
|
+
min(home, x[0], x[1], x[2]);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
namespace {
|
|
122
|
+
Min _minmax("Arithmetic::Min::Bin::A",s1);
|
|
123
|
+
Min _minmed("Arithmetic::Min::Bin::B",s2);
|
|
124
|
+
Min _minmin("Arithmetic::Min::Bin::C",s3);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
class MinShared : public IntTest {
|
|
128
|
+
public:
|
|
129
|
+
MinShared(const char* t, const IntSet& is)
|
|
130
|
+
: IntTest(t,2,is) {}
|
|
131
|
+
virtual bool solution(const Assignment& x) const {
|
|
132
|
+
return std::min(x[0],x[1]) == x[0];
|
|
133
|
+
}
|
|
134
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
135
|
+
min(home, x[0], x[1], x[0]);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
namespace {
|
|
139
|
+
MinShared _minsmax("Arithmetic::Min::Bin::Shared::A",s1);
|
|
140
|
+
MinShared _minsmed("Arithmetic::Min::Bin::Shared::B",s2);
|
|
141
|
+
MinShared _minsmin("Arithmetic::Min::Bin::Shared::C",s3);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
class Max : public IntTest {
|
|
145
|
+
public:
|
|
146
|
+
Max(const char* t, const IntSet& is)
|
|
147
|
+
: IntTest(t,3,is) {}
|
|
148
|
+
virtual bool solution(const Assignment& x) const {
|
|
149
|
+
return std::max(x[0],x[1]) == x[2];
|
|
150
|
+
}
|
|
151
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
152
|
+
max(home, x[0], x[1], x[2]);
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
namespace {
|
|
156
|
+
Max _maxmax("Arithmetic::Max::Bin::A",s1);
|
|
157
|
+
Max _maxmed("Arithmetic::Max::Bin::B",s2);
|
|
158
|
+
Max _maxmin("Arithmetic::Max::Bin::C",s3);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
class MaxShared : public IntTest {
|
|
162
|
+
public:
|
|
163
|
+
MaxShared(const char* t, const IntSet& is)
|
|
164
|
+
: IntTest(t,2,is) {}
|
|
165
|
+
virtual bool solution(const Assignment& x) const {
|
|
166
|
+
return std::max(x[0],x[1]) == x[0];
|
|
167
|
+
}
|
|
168
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
169
|
+
max(home, x[0], x[1], x[0]);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
namespace {
|
|
173
|
+
MaxShared _maxsmax("Arithmetic::Max::Bin::Shared::A",s1);
|
|
174
|
+
MaxShared _maxsmed("Arithmetic::Max::Bin::Shared::B",s2);
|
|
175
|
+
MaxShared _maxsmin("Arithmetic::Max::Bin::Shared::C",s3);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
class MinNary : public IntTest {
|
|
179
|
+
public:
|
|
180
|
+
MinNary(const char* t, const IntSet& is)
|
|
181
|
+
: IntTest(t,4,is) {}
|
|
182
|
+
virtual bool solution(const Assignment& x) const {
|
|
183
|
+
return std::min(std::min(x[0],x[1]),
|
|
184
|
+
x[2]) == x[3];
|
|
185
|
+
}
|
|
186
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
187
|
+
Log::log("min(home, x[0:2], x[3])",
|
|
188
|
+
"\tIntVarArgs m(3); m[0]=x[0]; m[1]=x[1]; m[2]=x[2];\n"
|
|
189
|
+
"\tmin(this, m, x[3]);");
|
|
190
|
+
IntVarArgs m(3);
|
|
191
|
+
m[0]=x[0]; m[1]=x[1]; m[2]=x[2];
|
|
192
|
+
min(home, m, x[3]);
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
namespace {
|
|
196
|
+
MinNary _minnary("Arithmetic::Min::Nary",s4);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
class MinNaryShared : public IntTest {
|
|
200
|
+
public:
|
|
201
|
+
MinNaryShared(const char* t, const IntSet& is)
|
|
202
|
+
: IntTest(t,3,is) {}
|
|
203
|
+
virtual bool solution(const Assignment& x) const {
|
|
204
|
+
return std::min(std::min(x[0],x[1]),
|
|
205
|
+
x[2]) == x[1];
|
|
206
|
+
}
|
|
207
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
208
|
+
Log::log("min(home, x[0:2], x[1])",
|
|
209
|
+
"\tIntVarArgs m(3); m[0]=x[0]; m[1]=x[1]; m[2]=x[2];\n"
|
|
210
|
+
"\tmin(this, m, x[1]);");
|
|
211
|
+
IntVarArgs m(3);
|
|
212
|
+
m[0]=x[0]; m[1]=x[1]; m[2]=x[2];
|
|
213
|
+
min(home, m, x[1]);
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
namespace {
|
|
217
|
+
MinNaryShared _minsnary("Arithmetic::Min::Nary::Shared",s4);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
class MaxNary : public IntTest {
|
|
221
|
+
public:
|
|
222
|
+
MaxNary(const char* t, const IntSet& is)
|
|
223
|
+
: IntTest(t,4,is) {}
|
|
224
|
+
virtual bool solution(const Assignment& x) const {
|
|
225
|
+
return std::max(std::max(x[0],x[1]),
|
|
226
|
+
x[2]) == x[3];
|
|
227
|
+
}
|
|
228
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
229
|
+
Log::log("max(home, x[0:2], x[3])",
|
|
230
|
+
"\tIntVarArgs m(3); m[0]=x[0]; m[1]=x[1]; m[2]=x[2];\n"
|
|
231
|
+
"\tmax(this, m, x[3]);");
|
|
232
|
+
IntVarArgs m(3);
|
|
233
|
+
m[0]=x[0]; m[1]=x[1]; m[2]=x[2];
|
|
234
|
+
max(home, m, x[3]);
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
namespace {
|
|
238
|
+
MaxNary _maxnary("Arithmetic::Max::Nary",s4);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
class MaxNaryShared : public IntTest {
|
|
242
|
+
public:
|
|
243
|
+
MaxNaryShared(const char* t, const IntSet& is)
|
|
244
|
+
: IntTest(t,3,is) {}
|
|
245
|
+
virtual bool solution(const Assignment& x) const {
|
|
246
|
+
return std::max(std::max(x[0],x[1]),
|
|
247
|
+
x[2]) == x[1];
|
|
248
|
+
}
|
|
249
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
250
|
+
Log::log("max(home, x[0:2], x[1])",
|
|
251
|
+
"\tIntVarArgs m(3); m[0]=x[0]; m[1]=x[1]; m[2]=x[2];\n"
|
|
252
|
+
"\tmax(this, m, x[1]);");
|
|
253
|
+
IntVarArgs m(3);
|
|
254
|
+
m[0]=x[0]; m[1]=x[1]; m[2]=x[2];
|
|
255
|
+
max(home, m, x[1]);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
namespace {
|
|
259
|
+
MaxNaryShared _maxsnary("Arithmetic::Max::Nary::Shared",s4);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// STATISTICS: test-int
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
#include <cmath>
|
|
26
|
+
#include <algorithm>
|
|
27
|
+
|
|
28
|
+
static IntSet s(-3,3);
|
|
29
|
+
|
|
30
|
+
class Basic : public IntTest {
|
|
31
|
+
public:
|
|
32
|
+
Basic(void)
|
|
33
|
+
: IntTest("Basic",3,s) {}
|
|
34
|
+
virtual bool solution(const Assignment& x) const {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
static Basic _basic;
|
|
41
|
+
|
|
42
|
+
// STATISTICS: test-int
|
|
@@ -0,0 +1,189 @@
|
|
|
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 IntSet ds(0,1);
|
|
25
|
+
|
|
26
|
+
class BoolEq : public IntTest {
|
|
27
|
+
public:
|
|
28
|
+
BoolEq(const char* t)
|
|
29
|
+
: IntTest(t,2,ds) {}
|
|
30
|
+
virtual bool solution(const Assignment& x) const {
|
|
31
|
+
return x[0]==x[1];
|
|
32
|
+
}
|
|
33
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
34
|
+
for (int i=x.size(); i--; )
|
|
35
|
+
Gecode::dom(home, x[i], 0, 1);
|
|
36
|
+
BoolVar b0(x[0]); BoolVar b1(x[1]);
|
|
37
|
+
bool_eq(home, b0, b1);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
BoolEq _booleq("Bool::Eq");
|
|
41
|
+
|
|
42
|
+
class BoolNot : public IntTest {
|
|
43
|
+
public:
|
|
44
|
+
BoolNot(const char* t)
|
|
45
|
+
: IntTest(t,2,ds) {}
|
|
46
|
+
virtual bool solution(const Assignment& x) const {
|
|
47
|
+
return x[0]!=x[1];
|
|
48
|
+
}
|
|
49
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
50
|
+
for (int i=x.size(); i--; )
|
|
51
|
+
Gecode::dom(home, x[i], 0, 1);
|
|
52
|
+
BoolVar b0(x[0]); BoolVar b1(x[1]);
|
|
53
|
+
bool_not(home, b0, b1);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
BoolNot _boolnot("Bool::Not");
|
|
57
|
+
|
|
58
|
+
class BoolAnd : public IntTest {
|
|
59
|
+
public:
|
|
60
|
+
BoolAnd(const char* t)
|
|
61
|
+
: IntTest(t,3,ds) {}
|
|
62
|
+
virtual bool solution(const Assignment& x) const {
|
|
63
|
+
return (x[0]&x[1])==x[2];
|
|
64
|
+
}
|
|
65
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
66
|
+
for (int i=x.size(); i--; )
|
|
67
|
+
Gecode::dom(home, x[i], 0, 1);
|
|
68
|
+
BoolVar b0(x[0]); BoolVar b1(x[1]); BoolVar b2(x[2]);
|
|
69
|
+
bool_and(home, b0, b1, b2);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
BoolAnd _booland("Bool::And::Binary");
|
|
73
|
+
|
|
74
|
+
class BoolOr : public IntTest {
|
|
75
|
+
public:
|
|
76
|
+
BoolOr(const char* t)
|
|
77
|
+
: IntTest(t,3,ds) {}
|
|
78
|
+
virtual bool solution(const Assignment& x) const {
|
|
79
|
+
return (x[0]|x[1])==x[2];
|
|
80
|
+
}
|
|
81
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
82
|
+
for (int i=x.size(); i--; )
|
|
83
|
+
Gecode::dom(home, x[i], 0, 1);
|
|
84
|
+
BoolVar b0(x[0]); BoolVar b1(x[1]); BoolVar b2(x[2]);
|
|
85
|
+
bool_or(home, b0, b1, b2);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
BoolOr _boolor("Bool::Or::Binary");
|
|
89
|
+
|
|
90
|
+
class BoolImp : public IntTest {
|
|
91
|
+
public:
|
|
92
|
+
BoolImp(const char* t)
|
|
93
|
+
: IntTest(t,3,ds) {}
|
|
94
|
+
virtual bool solution(const Assignment& x) const {
|
|
95
|
+
return ((x[0] == 0 ? 1 : 0)|x[1])==x[2];
|
|
96
|
+
}
|
|
97
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
98
|
+
for (int i=x.size(); i--; )
|
|
99
|
+
Gecode::dom(home, x[i], 0, 1);
|
|
100
|
+
BoolVar b0(x[0]); BoolVar b1(x[1]); BoolVar b2(x[2]);
|
|
101
|
+
bool_imp(home, b0, b1, b2);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
BoolImp _boolimp("Bool::Imp");
|
|
105
|
+
|
|
106
|
+
class BoolEqv : public IntTest {
|
|
107
|
+
public:
|
|
108
|
+
BoolEqv(const char* t)
|
|
109
|
+
: IntTest(t,3,ds) {}
|
|
110
|
+
virtual bool solution(const Assignment& x) const {
|
|
111
|
+
return (x[0] == x[1])==x[2];
|
|
112
|
+
}
|
|
113
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
114
|
+
for (int i=x.size(); i--; )
|
|
115
|
+
Gecode::dom(home, x[i], 0, 1);
|
|
116
|
+
BoolVar b0(x[0]); BoolVar b1(x[1]); BoolVar b2(x[2]);
|
|
117
|
+
bool_eqv(home, b0, b1, b2);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
BoolEqv _booleqv("Bool::Eqv");
|
|
121
|
+
|
|
122
|
+
class BoolXor : public IntTest {
|
|
123
|
+
public:
|
|
124
|
+
BoolXor(const char* t)
|
|
125
|
+
: IntTest(t,3,ds) {}
|
|
126
|
+
virtual bool solution(const Assignment& x) const {
|
|
127
|
+
return (x[0] != x[1])==x[2];
|
|
128
|
+
}
|
|
129
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
130
|
+
for (int i=x.size(); i--; )
|
|
131
|
+
Gecode::dom(home, x[i], 0, 1);
|
|
132
|
+
BoolVar b0(x[0]); BoolVar b1(x[1]); BoolVar b2(x[2]);
|
|
133
|
+
bool_xor(home, b0, b1, b2);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
BoolXor _boolxor("Bool::Xor");
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class BoolAndNary : public IntTest {
|
|
140
|
+
public:
|
|
141
|
+
BoolAndNary(const char* t)
|
|
142
|
+
: IntTest(t,14,ds) {}
|
|
143
|
+
virtual bool solution(const Assignment& x) const {
|
|
144
|
+
for (int i = x.size()-1; i--; )
|
|
145
|
+
if (x[i] == 0)
|
|
146
|
+
return x[x.size()-1] == 0;
|
|
147
|
+
return x[x.size()-1] == 1;
|
|
148
|
+
}
|
|
149
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
150
|
+
for (int i=x.size(); i--; )
|
|
151
|
+
Gecode::dom(home, x[i], 0, 1);
|
|
152
|
+
BoolVarArgs b(2*(x.size()-1));
|
|
153
|
+
for (int i=x.size()-1; i--; ) {
|
|
154
|
+
BoolVar bx(x[i]);
|
|
155
|
+
b[2*i+0] = bx; b[2*i+1] = bx;
|
|
156
|
+
}
|
|
157
|
+
BoolVar bx(x[x.size()-1]);
|
|
158
|
+
bool_and(home, b, bx);
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
BoolAndNary _boolandnary("Bool::And::Nary");
|
|
162
|
+
|
|
163
|
+
class BoolOrNary : public IntTest {
|
|
164
|
+
public:
|
|
165
|
+
BoolOrNary(const char* t)
|
|
166
|
+
: IntTest(t,14,ds) {}
|
|
167
|
+
virtual bool solution(const Assignment& x) const {
|
|
168
|
+
for (int i = x.size()-1; i--; )
|
|
169
|
+
if (x[i] == 1)
|
|
170
|
+
return x[x.size()-1] == 1;
|
|
171
|
+
return x[x.size()-1] == 0;
|
|
172
|
+
}
|
|
173
|
+
virtual void post(Space* home, IntVarArray& x) {
|
|
174
|
+
for (int i=x.size(); i--; )
|
|
175
|
+
Gecode::dom(home, x[i], 0, 1);
|
|
176
|
+
BoolVarArgs b(2*(x.size()-1));
|
|
177
|
+
for (int i=x.size()-1; i--; ) {
|
|
178
|
+
BoolVar bx(x[i]);
|
|
179
|
+
b[2*i+0] = bx; b[2*i+1] = bx;
|
|
180
|
+
}
|
|
181
|
+
BoolVar bx(x[x.size()-1]);
|
|
182
|
+
bool_or(home, b, bx);
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
BoolOrNary _boolornary("Bool::Or::Nary");
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
// STATISTICS: test-int
|
|
189
|
+
|