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,192 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* CAUTION:
|
|
3
|
+
* This file has been automatically generated.
|
|
4
|
+
* Do not edit, edit the file "../trunk/gecode/set/var-imp.vis" instead.
|
|
5
|
+
*
|
|
6
|
+
* This file contains generated code fragments which are
|
|
7
|
+
* copyrighted as follows:
|
|
8
|
+
*
|
|
9
|
+
* Main author:
|
|
10
|
+
* Christian Schulte <schulte@gecode.org>
|
|
11
|
+
*
|
|
12
|
+
* Copyright:
|
|
13
|
+
* Christian Schulte, 2006
|
|
14
|
+
*
|
|
15
|
+
* The generated code fragments are part of Gecode, the generic
|
|
16
|
+
* constraint development environment:
|
|
17
|
+
* http://www.gecode.org
|
|
18
|
+
*
|
|
19
|
+
* See the file "LICENSE" for information on usage and
|
|
20
|
+
* redistribution of this file, and for a
|
|
21
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
namespace Gecode { namespace Set {
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/*
|
|
30
|
+
* Modification event difference for Set-variable implementations
|
|
31
|
+
*
|
|
32
|
+
*/
|
|
33
|
+
const Gecode::ModEvent SetMeDiff::med[ME_SET_CBB+1][ME_SET_CBB+1] = {
|
|
34
|
+
{
|
|
35
|
+
ME_SET_NONE ^ ME_SET_NONE, // [ME_SET_NONE][ME_SET_NONE]
|
|
36
|
+
ME_SET_VAL ^ ME_SET_VAL, // [ME_SET_NONE][ME_SET_VAL]
|
|
37
|
+
ME_SET_CARD ^ ME_SET_CARD, // [ME_SET_NONE][ME_SET_CARD]
|
|
38
|
+
ME_SET_LUB ^ ME_SET_LUB, // [ME_SET_NONE][ME_SET_LUB]
|
|
39
|
+
ME_SET_GLB ^ ME_SET_GLB, // [ME_SET_NONE][ME_SET_GLB]
|
|
40
|
+
ME_SET_BB ^ ME_SET_BB, // [ME_SET_NONE][ME_SET_BB]
|
|
41
|
+
ME_SET_CLUB ^ ME_SET_CLUB, // [ME_SET_NONE][ME_SET_CLUB]
|
|
42
|
+
ME_SET_CGLB ^ ME_SET_CGLB, // [ME_SET_NONE][ME_SET_CGLB]
|
|
43
|
+
ME_SET_CBB ^ ME_SET_CBB // [ME_SET_NONE][ME_SET_CBB]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
ME_SET_NONE ^ ME_SET_VAL, // [ME_SET_VAL][ME_SET_NONE]
|
|
47
|
+
ME_SET_VAL ^ ME_SET_VAL, // [ME_SET_VAL][ME_SET_VAL]
|
|
48
|
+
ME_SET_CARD ^ ME_SET_VAL, // [ME_SET_VAL][ME_SET_CARD]
|
|
49
|
+
ME_SET_LUB ^ ME_SET_VAL, // [ME_SET_VAL][ME_SET_LUB]
|
|
50
|
+
ME_SET_GLB ^ ME_SET_VAL, // [ME_SET_VAL][ME_SET_GLB]
|
|
51
|
+
ME_SET_BB ^ ME_SET_VAL, // [ME_SET_VAL][ME_SET_BB]
|
|
52
|
+
ME_SET_CLUB ^ ME_SET_VAL, // [ME_SET_VAL][ME_SET_CLUB]
|
|
53
|
+
ME_SET_CGLB ^ ME_SET_VAL, // [ME_SET_VAL][ME_SET_CGLB]
|
|
54
|
+
ME_SET_CBB ^ ME_SET_VAL // [ME_SET_VAL][ME_SET_CBB]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
ME_SET_NONE ^ ME_SET_CARD, // [ME_SET_CARD][ME_SET_NONE]
|
|
58
|
+
ME_SET_VAL ^ ME_SET_VAL, // [ME_SET_CARD][ME_SET_VAL]
|
|
59
|
+
ME_SET_CARD ^ ME_SET_CARD, // [ME_SET_CARD][ME_SET_CARD]
|
|
60
|
+
ME_SET_LUB ^ ME_SET_CLUB, // [ME_SET_CARD][ME_SET_LUB]
|
|
61
|
+
ME_SET_GLB ^ ME_SET_CGLB, // [ME_SET_CARD][ME_SET_GLB]
|
|
62
|
+
ME_SET_BB ^ ME_SET_CBB, // [ME_SET_CARD][ME_SET_BB]
|
|
63
|
+
ME_SET_CLUB ^ ME_SET_CLUB, // [ME_SET_CARD][ME_SET_CLUB]
|
|
64
|
+
ME_SET_CGLB ^ ME_SET_CGLB, // [ME_SET_CARD][ME_SET_CGLB]
|
|
65
|
+
ME_SET_CBB ^ ME_SET_CBB // [ME_SET_CARD][ME_SET_CBB]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
ME_SET_NONE ^ ME_SET_LUB, // [ME_SET_LUB][ME_SET_NONE]
|
|
69
|
+
ME_SET_VAL ^ ME_SET_VAL, // [ME_SET_LUB][ME_SET_VAL]
|
|
70
|
+
ME_SET_CARD ^ ME_SET_CLUB, // [ME_SET_LUB][ME_SET_CARD]
|
|
71
|
+
ME_SET_LUB ^ ME_SET_LUB, // [ME_SET_LUB][ME_SET_LUB]
|
|
72
|
+
ME_SET_GLB ^ ME_SET_BB, // [ME_SET_LUB][ME_SET_GLB]
|
|
73
|
+
ME_SET_BB ^ ME_SET_BB, // [ME_SET_LUB][ME_SET_BB]
|
|
74
|
+
ME_SET_CLUB ^ ME_SET_CLUB, // [ME_SET_LUB][ME_SET_CLUB]
|
|
75
|
+
ME_SET_CGLB ^ ME_SET_CBB, // [ME_SET_LUB][ME_SET_CGLB]
|
|
76
|
+
ME_SET_CBB ^ ME_SET_CBB // [ME_SET_LUB][ME_SET_CBB]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
ME_SET_NONE ^ ME_SET_GLB, // [ME_SET_GLB][ME_SET_NONE]
|
|
80
|
+
ME_SET_VAL ^ ME_SET_VAL, // [ME_SET_GLB][ME_SET_VAL]
|
|
81
|
+
ME_SET_CARD ^ ME_SET_CGLB, // [ME_SET_GLB][ME_SET_CARD]
|
|
82
|
+
ME_SET_LUB ^ ME_SET_BB, // [ME_SET_GLB][ME_SET_LUB]
|
|
83
|
+
ME_SET_GLB ^ ME_SET_GLB, // [ME_SET_GLB][ME_SET_GLB]
|
|
84
|
+
ME_SET_BB ^ ME_SET_BB, // [ME_SET_GLB][ME_SET_BB]
|
|
85
|
+
ME_SET_CLUB ^ ME_SET_CBB, // [ME_SET_GLB][ME_SET_CLUB]
|
|
86
|
+
ME_SET_CGLB ^ ME_SET_CGLB, // [ME_SET_GLB][ME_SET_CGLB]
|
|
87
|
+
ME_SET_CBB ^ ME_SET_CBB // [ME_SET_GLB][ME_SET_CBB]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
ME_SET_NONE ^ ME_SET_BB, // [ME_SET_BB][ME_SET_NONE]
|
|
91
|
+
ME_SET_VAL ^ ME_SET_VAL, // [ME_SET_BB][ME_SET_VAL]
|
|
92
|
+
ME_SET_CARD ^ ME_SET_CBB, // [ME_SET_BB][ME_SET_CARD]
|
|
93
|
+
ME_SET_LUB ^ ME_SET_BB, // [ME_SET_BB][ME_SET_LUB]
|
|
94
|
+
ME_SET_GLB ^ ME_SET_BB, // [ME_SET_BB][ME_SET_GLB]
|
|
95
|
+
ME_SET_BB ^ ME_SET_BB, // [ME_SET_BB][ME_SET_BB]
|
|
96
|
+
ME_SET_CLUB ^ ME_SET_CBB, // [ME_SET_BB][ME_SET_CLUB]
|
|
97
|
+
ME_SET_CGLB ^ ME_SET_CBB, // [ME_SET_BB][ME_SET_CGLB]
|
|
98
|
+
ME_SET_CBB ^ ME_SET_CBB // [ME_SET_BB][ME_SET_CBB]
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
ME_SET_NONE ^ ME_SET_CLUB, // [ME_SET_CLUB][ME_SET_NONE]
|
|
102
|
+
ME_SET_VAL ^ ME_SET_VAL, // [ME_SET_CLUB][ME_SET_VAL]
|
|
103
|
+
ME_SET_CARD ^ ME_SET_CLUB, // [ME_SET_CLUB][ME_SET_CARD]
|
|
104
|
+
ME_SET_LUB ^ ME_SET_CLUB, // [ME_SET_CLUB][ME_SET_LUB]
|
|
105
|
+
ME_SET_GLB ^ ME_SET_CBB, // [ME_SET_CLUB][ME_SET_GLB]
|
|
106
|
+
ME_SET_BB ^ ME_SET_CBB, // [ME_SET_CLUB][ME_SET_BB]
|
|
107
|
+
ME_SET_CLUB ^ ME_SET_CLUB, // [ME_SET_CLUB][ME_SET_CLUB]
|
|
108
|
+
ME_SET_CGLB ^ ME_SET_CBB, // [ME_SET_CLUB][ME_SET_CGLB]
|
|
109
|
+
ME_SET_CBB ^ ME_SET_CBB // [ME_SET_CLUB][ME_SET_CBB]
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
ME_SET_NONE ^ ME_SET_CGLB, // [ME_SET_CGLB][ME_SET_NONE]
|
|
113
|
+
ME_SET_VAL ^ ME_SET_VAL, // [ME_SET_CGLB][ME_SET_VAL]
|
|
114
|
+
ME_SET_CARD ^ ME_SET_CGLB, // [ME_SET_CGLB][ME_SET_CARD]
|
|
115
|
+
ME_SET_LUB ^ ME_SET_CBB, // [ME_SET_CGLB][ME_SET_LUB]
|
|
116
|
+
ME_SET_GLB ^ ME_SET_CGLB, // [ME_SET_CGLB][ME_SET_GLB]
|
|
117
|
+
ME_SET_BB ^ ME_SET_CBB, // [ME_SET_CGLB][ME_SET_BB]
|
|
118
|
+
ME_SET_CLUB ^ ME_SET_CBB, // [ME_SET_CGLB][ME_SET_CLUB]
|
|
119
|
+
ME_SET_CGLB ^ ME_SET_CGLB, // [ME_SET_CGLB][ME_SET_CGLB]
|
|
120
|
+
ME_SET_CBB ^ ME_SET_CBB // [ME_SET_CGLB][ME_SET_CBB]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
ME_SET_NONE ^ ME_SET_CBB, // [ME_SET_CBB][ME_SET_NONE]
|
|
124
|
+
ME_SET_VAL ^ ME_SET_VAL, // [ME_SET_CBB][ME_SET_VAL]
|
|
125
|
+
ME_SET_CARD ^ ME_SET_CBB, // [ME_SET_CBB][ME_SET_CARD]
|
|
126
|
+
ME_SET_LUB ^ ME_SET_CBB, // [ME_SET_CBB][ME_SET_LUB]
|
|
127
|
+
ME_SET_GLB ^ ME_SET_CBB, // [ME_SET_CBB][ME_SET_GLB]
|
|
128
|
+
ME_SET_BB ^ ME_SET_CBB, // [ME_SET_CBB][ME_SET_BB]
|
|
129
|
+
ME_SET_CLUB ^ ME_SET_CBB, // [ME_SET_CBB][ME_SET_CLUB]
|
|
130
|
+
ME_SET_CGLB ^ ME_SET_CBB, // [ME_SET_CBB][ME_SET_CGLB]
|
|
131
|
+
ME_SET_CBB ^ ME_SET_CBB // [ME_SET_CBB][ME_SET_CBB]
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
/*
|
|
137
|
+
* The variable processor for SetVarImpBase
|
|
138
|
+
*
|
|
139
|
+
*/
|
|
140
|
+
|
|
141
|
+
void
|
|
142
|
+
SetVarImpBase::Processor::process(Space* home, VarBase* _x) {
|
|
143
|
+
// Process modified variables
|
|
144
|
+
Gecode::Variable<VTI_SET,PC_SET_ANY,SetMeDiff>* x =
|
|
145
|
+
static_cast<Gecode::Variable<VTI_SET,PC_SET_ANY,SetMeDiff>*>(_x);
|
|
146
|
+
do {
|
|
147
|
+
switch (x->modevent()) {
|
|
148
|
+
case ME_SET_VAL:
|
|
149
|
+
x->process(home);
|
|
150
|
+
break;
|
|
151
|
+
case ME_SET_CARD:
|
|
152
|
+
// Conditions: CARD CLUB CGLB ANY
|
|
153
|
+
x->process(home,PC_SET_CARD,PC_SET_ANY,ME_SET_CARD);
|
|
154
|
+
break;
|
|
155
|
+
case ME_SET_LUB:
|
|
156
|
+
// Conditions: CLUB ANY
|
|
157
|
+
x->process(home,PC_SET_CLUB,PC_SET_CLUB,ME_SET_LUB);
|
|
158
|
+
x->process(home,PC_SET_ANY,PC_SET_ANY,ME_SET_LUB);
|
|
159
|
+
break;
|
|
160
|
+
case ME_SET_GLB:
|
|
161
|
+
// Conditions: CGLB ANY
|
|
162
|
+
x->process(home,PC_SET_CGLB,PC_SET_ANY,ME_SET_GLB);
|
|
163
|
+
break;
|
|
164
|
+
case ME_SET_BB:
|
|
165
|
+
// Conditions: CLUB CGLB ANY
|
|
166
|
+
x->process(home,PC_SET_CLUB,PC_SET_ANY,ME_SET_BB);
|
|
167
|
+
break;
|
|
168
|
+
case ME_SET_CLUB:
|
|
169
|
+
// Conditions: CARD CLUB CGLB ANY
|
|
170
|
+
x->process(home,PC_SET_CARD,PC_SET_ANY,ME_SET_CLUB);
|
|
171
|
+
break;
|
|
172
|
+
case ME_SET_CGLB:
|
|
173
|
+
// Conditions: CARD CLUB CGLB ANY
|
|
174
|
+
x->process(home,PC_SET_CARD,PC_SET_ANY,ME_SET_CGLB);
|
|
175
|
+
break;
|
|
176
|
+
case ME_SET_CBB:
|
|
177
|
+
// Conditions: CARD CLUB CGLB ANY
|
|
178
|
+
x->process(home,PC_SET_CARD,PC_SET_ANY,ME_SET_CBB);
|
|
179
|
+
break;
|
|
180
|
+
default: GECODE_NEVER;
|
|
181
|
+
}
|
|
182
|
+
x = x->next();
|
|
183
|
+
} while (x != NULL);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
SetVarImpBase::Processor SetVarImpBase::p;
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
}}
|
|
191
|
+
|
|
192
|
+
// STATISTICS: set-var
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* CAUTION:
|
|
3
|
+
* This file has been automatically generated.
|
|
4
|
+
* Do not edit, edit the file "../trunk/gecode/set/var-imp.vis" instead.
|
|
5
|
+
*
|
|
6
|
+
* This file contains generated code fragments which are
|
|
7
|
+
* copyrighted as follows:
|
|
8
|
+
*
|
|
9
|
+
* Main author:
|
|
10
|
+
* Christian Schulte <schulte@gecode.org>
|
|
11
|
+
*
|
|
12
|
+
* Copyright:
|
|
13
|
+
* Christian Schulte, 2006
|
|
14
|
+
*
|
|
15
|
+
* The generated code fragments are part of Gecode, the generic
|
|
16
|
+
* constraint development environment:
|
|
17
|
+
* http://www.gecode.org
|
|
18
|
+
*
|
|
19
|
+
* See the file "LICENSE" for information on usage and
|
|
20
|
+
* redistribution of this file, and for a
|
|
21
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
namespace Gecode { namespace Set {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* \defgroup TaskActorSetMEPC Set modification events and propagation conditions
|
|
30
|
+
* \ingroup TaskActorSet
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
//@{
|
|
34
|
+
/// Domain operation has resulted in failure
|
|
35
|
+
const Gecode::ModEvent ME_SET_FAILED = Gecode::ME_GEN_FAILED;
|
|
36
|
+
|
|
37
|
+
/// Domain operation has not changed domain
|
|
38
|
+
const Gecode::ModEvent ME_SET_NONE = Gecode::ME_GEN_NONE;
|
|
39
|
+
|
|
40
|
+
/// Domain operation has resulted in a value (assigned variable)
|
|
41
|
+
const Gecode::ModEvent ME_SET_VAL = Gecode::ME_GEN_ASSIGNED;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* \brief Domain operation has changed the variable cardinality
|
|
45
|
+
*
|
|
46
|
+
* Note that this implies that the domain has not resulted in a value.
|
|
47
|
+
*/
|
|
48
|
+
const Gecode::ModEvent ME_SET_CARD = Gecode::ME_GEN_ASSIGNED + 1;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* \brief Domain operation has changed the least upper bound
|
|
52
|
+
*
|
|
53
|
+
* Note that this implies that the domain has not resulted in a value
|
|
54
|
+
* and that also neither cardinality nor the greatest lower bound
|
|
55
|
+
* have changed.
|
|
56
|
+
*/
|
|
57
|
+
const Gecode::ModEvent ME_SET_LUB = Gecode::ME_GEN_ASSIGNED + 2;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* \brief Domain operation has changed the greatest lower bound
|
|
61
|
+
*
|
|
62
|
+
* Note that this implies that the domain has not resulted in a value
|
|
63
|
+
* and that also neither cardinality nor the least upper bound
|
|
64
|
+
* have changed.
|
|
65
|
+
*/
|
|
66
|
+
const Gecode::ModEvent ME_SET_GLB = Gecode::ME_GEN_ASSIGNED + 3;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* \brief Domain operation has changed both greatest lower and least
|
|
70
|
+
* upper bound
|
|
71
|
+
*
|
|
72
|
+
* Note that this implies that the domain has not resulted in a value
|
|
73
|
+
* and that also the cardinality has not changed.
|
|
74
|
+
*/
|
|
75
|
+
const Gecode::ModEvent ME_SET_BB = Gecode::ME_GEN_ASSIGNED + 4;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* \brief Domain operation has changed the least upper bound and the cardinality
|
|
79
|
+
*
|
|
80
|
+
* Note that this implies that the domain has not resulted in a value
|
|
81
|
+
* and that also the greatest lower bound has not changed.
|
|
82
|
+
*/
|
|
83
|
+
const Gecode::ModEvent ME_SET_CLUB = Gecode::ME_GEN_ASSIGNED + 5;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* \brief Domain operation has changed the greatest lower bound and the cardinality
|
|
87
|
+
*
|
|
88
|
+
* Note that this implies that the domain has not resulted in a value
|
|
89
|
+
* and that also the least upper bound has not changed.
|
|
90
|
+
*/
|
|
91
|
+
const Gecode::ModEvent ME_SET_CGLB = Gecode::ME_GEN_ASSIGNED + 6;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* \brief Domain operation has changed both the greatest lower bound and
|
|
95
|
+
* the least upper bound, as well as the cardinality
|
|
96
|
+
*
|
|
97
|
+
* Note that this implies that the domain has not resulted in a value.
|
|
98
|
+
*
|
|
99
|
+
* If a propagator subscribes to this variable, it will be processed
|
|
100
|
+
* assuming a ME_SET_CBB modification event.
|
|
101
|
+
*
|
|
102
|
+
*/
|
|
103
|
+
|
|
104
|
+
const Gecode::ModEvent ME_SET_CBB = Gecode::ME_GEN_ASSIGNED + 7;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* \brief Propagate when a view becomes assigned (single value)
|
|
108
|
+
*
|
|
109
|
+
* If a propagator \a p depends on a view \a x with propagation
|
|
110
|
+
* condition PC_SET_VAL, then \a p is propagated when a domain
|
|
111
|
+
* update operation on \a x returns the modification event ME_SET_VAL.
|
|
112
|
+
*/
|
|
113
|
+
const Gecode::PropCond PC_SET_VAL = Gecode::PC_GEN_ASSIGNED;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* \brief Propagate when the cardinality of a view changes
|
|
117
|
+
*
|
|
118
|
+
* If a propagator \a p depends on a view \a x with propagation
|
|
119
|
+
* condition PC_SET_CARD, then \a p is propagated when a domain
|
|
120
|
+
* update operation on \a x returns the modification event ME_SET_VAL,
|
|
121
|
+
* ME_SET_CARD, ME_SET_CGLB, ME_SET_CLUB, or ME_SET_CBB.
|
|
122
|
+
*/
|
|
123
|
+
const Gecode::PropCond PC_SET_CARD = Gecode::PC_GEN_ASSIGNED + 1;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* \brief Propagate when the cardinality or the least upper bound
|
|
127
|
+
* of a view changes
|
|
128
|
+
*
|
|
129
|
+
* If a propagator \a p depends on a view \a x with propagation
|
|
130
|
+
* condition PC_SET_CLUB, then \a p is propagated when a domain
|
|
131
|
+
* update operation on \a x returns the modification event ME_SET_VAL,
|
|
132
|
+
* ME_SET_LUB, ME_SET_BB, ME_SET_CARD, ME_SET_CGLB, ME_SET_CLUB,
|
|
133
|
+
* or ME_SET_CBB.
|
|
134
|
+
*/
|
|
135
|
+
const Gecode::PropCond PC_SET_CLUB = Gecode::PC_GEN_ASSIGNED + 2;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* \brief Propagate when the cardinality or the greatest lower bound
|
|
139
|
+
* of a view changes
|
|
140
|
+
*
|
|
141
|
+
* If a propagator \a p depends on a view \a x with propagation
|
|
142
|
+
* condition PC_SET_CGLB, then \a p is propagated when a domain
|
|
143
|
+
* update operation on \a x returns the modification event ME_SET_VAL,
|
|
144
|
+
* ME_SET_GLB, ME_SET_BB, ME_SET_CARD, ME_SET_CGLB, ME_SET_CLUB,
|
|
145
|
+
* or ME_SET_CBB.
|
|
146
|
+
*/
|
|
147
|
+
const Gecode::PropCond PC_SET_CGLB = Gecode::PC_GEN_ASSIGNED + 3;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* \brief Propagate when any bound or the cardinality
|
|
151
|
+
* of a view changes
|
|
152
|
+
*
|
|
153
|
+
* If a propagator \a p depends on a view \a x with propagation
|
|
154
|
+
* condition PC_SET_ANY, then \a p is propagated when a domain
|
|
155
|
+
* update operation on \a x returns any modification event but ME_SET_FAILED
|
|
156
|
+
* and ME_SET_NONE.
|
|
157
|
+
*/
|
|
158
|
+
const Gecode::PropCond PC_SET_ANY = Gecode::PC_GEN_ASSIGNED + 4;
|
|
159
|
+
|
|
160
|
+
//@}
|
|
161
|
+
|
|
162
|
+
/// Modification event difference for Set-variable implementations
|
|
163
|
+
class SetMeDiff {
|
|
164
|
+
private:
|
|
165
|
+
GECODE_SET_EXPORT static const Gecode::ModEvent med[ME_SET_CBB+1][ME_SET_CBB+1];
|
|
166
|
+
public:
|
|
167
|
+
/// Return difference when changing modification event \a me2 to \a me1
|
|
168
|
+
ModEvent operator()(ModEvent me1, ModEvent me2) const;
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
/// Base-class for Set-variable implementations
|
|
172
|
+
class SetVarImpBase : public Gecode::Variable<VTI_SET,PC_SET_ANY,SetMeDiff> {
|
|
173
|
+
protected:
|
|
174
|
+
/// Variable procesor for variables of this type
|
|
175
|
+
class Processor : public Gecode::VarTypeProcessor<VTI_SET,PC_SET_ANY,SetMeDiff> {
|
|
176
|
+
public:
|
|
177
|
+
/// Process modified variables linked from \a x
|
|
178
|
+
GECODE_SET_EXPORT virtual void process(Space* home, VarBase* x);
|
|
179
|
+
};
|
|
180
|
+
/// The processor used
|
|
181
|
+
GECODE_SET_EXPORT static Processor p;
|
|
182
|
+
/// Constructor for cloning \a x
|
|
183
|
+
SetVarImpBase(Space* home, bool share, SetVarImpBase& x);
|
|
184
|
+
public:
|
|
185
|
+
/// Constructor for creating variable
|
|
186
|
+
SetVarImpBase(Space* home);
|
|
187
|
+
/// \name Dependencies
|
|
188
|
+
//@{
|
|
189
|
+
/** \brief Subscribe propagator \a p with propagation condition \a pc to variable
|
|
190
|
+
*
|
|
191
|
+
* In case \a process is false, the propagator is just subscribed but
|
|
192
|
+
* not processed for execution (this must be used when creating
|
|
193
|
+
* subscriptions during propagation).
|
|
194
|
+
*
|
|
195
|
+
* In case the variable is assigned (that is, \a assigned is
|
|
196
|
+
* true), the subscribing propagator is processed for execution.
|
|
197
|
+
* Otherwise, the propagator subscribes and is processed for execution
|
|
198
|
+
* with modification event \a me provided that \a pc is different
|
|
199
|
+
* from \a PC_GEN_ASSIGNED.
|
|
200
|
+
*/
|
|
201
|
+
void subscribe(Space* home, Propagator* p, PropCond pc, bool assigned, bool process);
|
|
202
|
+
/// Notify that variable implementation has been modified with modification event \a me
|
|
203
|
+
void notify(Space* home, ModEvent me);
|
|
204
|
+
//@}
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
forceinline ModEvent
|
|
211
|
+
SetMeDiff::operator()(ModEvent me1, ModEvent me2) const {
|
|
212
|
+
return med[me1][me2];
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
forceinline
|
|
216
|
+
SetVarImpBase::SetVarImpBase(Space* home)
|
|
217
|
+
: Gecode::Variable<VTI_SET,PC_SET_ANY,SetMeDiff>(home) {}
|
|
218
|
+
|
|
219
|
+
forceinline
|
|
220
|
+
SetVarImpBase::SetVarImpBase(Space* home, bool share, SetVarImpBase& x)
|
|
221
|
+
: Gecode::Variable<VTI_SET,PC_SET_ANY,SetMeDiff>(home,share,x) {}
|
|
222
|
+
|
|
223
|
+
forceinline void
|
|
224
|
+
SetVarImpBase::subscribe(Space* home, Propagator* p, PropCond pc, bool assigned, bool process) {
|
|
225
|
+
Gecode::Variable<VTI_SET,PC_SET_ANY,SetMeDiff>::subscribe(home,p,pc,assigned,ME_SET_CBB,process);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
forceinline void
|
|
229
|
+
SetVarImpBase::notify(Space* home, ModEvent me) {
|
|
230
|
+
Gecode::Variable<VTI_SET,PC_SET_ANY,SetMeDiff>::notify(home,me);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
}}
|
|
234
|
+
|
|
235
|
+
// STATISTICS: set-var
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
* Christian Schulte <schulte@gecode.org>
|
|
5
|
+
*
|
|
6
|
+
* Copyright:
|
|
7
|
+
* Guido Tack, 2004
|
|
8
|
+
* Christian Schulte, 2004
|
|
9
|
+
*
|
|
10
|
+
* Last modified:
|
|
11
|
+
* $Date: 2006-08-25 10:43:21 +0200 (Fri, 25 Aug 2006) $ by $Author: schulte $
|
|
12
|
+
* $Revision: 3568 $
|
|
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
|
+
#include "gecode/set.hh"
|
|
25
|
+
|
|
26
|
+
#include "gecode/set/var/imp-body.icc"
|
|
27
|
+
|
|
28
|
+
namespace Gecode { namespace Set {
|
|
29
|
+
|
|
30
|
+
/*
|
|
31
|
+
* "Standard" tell operations
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
ModEvent
|
|
35
|
+
SetVarImp::cardMin_full(Space* home,unsigned int newMin) {
|
|
36
|
+
ModEvent me = ME_SET_CARD;
|
|
37
|
+
if (_cardMin == _cardMax)
|
|
38
|
+
me = checkLubCardAssigned(home,ME_SET_CARD);
|
|
39
|
+
if (!me_failed(me))
|
|
40
|
+
notify(home, me);
|
|
41
|
+
return me;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
ModEvent
|
|
45
|
+
SetVarImp::cardMax_full(Space* home,unsigned int newMax) {
|
|
46
|
+
ModEvent me = ME_SET_CARD;
|
|
47
|
+
if (_cardMin == _cardMax)
|
|
48
|
+
me = checkGlbCardAssigned(home,ME_SET_CARD);
|
|
49
|
+
if (!me_failed(me))
|
|
50
|
+
notify(home, me);
|
|
51
|
+
return me;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
ModEvent
|
|
55
|
+
SetVarImp::processLubChange(Space* home) {
|
|
56
|
+
if (!boundsConsistent()) {
|
|
57
|
+
return ME_SET_FAILED;
|
|
58
|
+
}
|
|
59
|
+
ModEvent me;
|
|
60
|
+
if (_cardMax > lub.size()) {
|
|
61
|
+
_cardMax = lub.size();
|
|
62
|
+
if (cardMin() > cardMax())
|
|
63
|
+
return ME_SET_FAILED;
|
|
64
|
+
if (assigned()) {
|
|
65
|
+
lub.linkTo(home, glb);
|
|
66
|
+
me = ME_SET_VAL;
|
|
67
|
+
} else {
|
|
68
|
+
me = checkLubCardAssigned(home, ME_SET_CLUB);
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
me = checkLubCardAssigned(home, ME_SET_LUB);
|
|
72
|
+
}
|
|
73
|
+
if (!me_failed(me))
|
|
74
|
+
notify(home, me);
|
|
75
|
+
return me;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
ModEvent
|
|
79
|
+
SetVarImp::processGlbChange(Space* home) {
|
|
80
|
+
if (!boundsConsistent())
|
|
81
|
+
return ME_SET_FAILED;
|
|
82
|
+
ModEvent me;
|
|
83
|
+
if (_cardMin < glb.size()) {
|
|
84
|
+
_cardMin = glb.size();
|
|
85
|
+
if (cardMin() > cardMax())
|
|
86
|
+
return ME_SET_FAILED;
|
|
87
|
+
if (assigned()) {
|
|
88
|
+
lub.linkTo(home, glb);
|
|
89
|
+
me = ME_SET_VAL;
|
|
90
|
+
} else {
|
|
91
|
+
me = checkGlbCardAssigned(home, ME_SET_CGLB);
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
me = checkGlbCardAssigned(home, ME_SET_GLB);
|
|
95
|
+
}
|
|
96
|
+
if (me!=ME_SET_FAILED)
|
|
97
|
+
notify(home, me);
|
|
98
|
+
return me;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/*
|
|
102
|
+
* Copying variables
|
|
103
|
+
*
|
|
104
|
+
*/
|
|
105
|
+
|
|
106
|
+
forceinline
|
|
107
|
+
SetVarImp::SetVarImp(Space* home, bool share, SetVarImp& x)
|
|
108
|
+
: SetVarImpBase(home,share,x),
|
|
109
|
+
_cardMin(x._cardMin), _cardMax(x._cardMax) {
|
|
110
|
+
lub.update(home, x.lub);
|
|
111
|
+
if (x.assigned()) {
|
|
112
|
+
glb.linkTo(home,lub);
|
|
113
|
+
} else {
|
|
114
|
+
glb.update(home,x.glb);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
SetVarImp*
|
|
120
|
+
SetVarImp::perform_copy(Space* home, bool share) {
|
|
121
|
+
return new (home) SetVarImp(home,share,*this);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
}}
|
|
125
|
+
|
|
126
|
+
// STATISTICS: set-var
|
|
127
|
+
|