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,148 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Guido Tack, 2006
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-04-11 15:58:37 +0200 (Tue, 11 Apr 2006) $ by $Author: tack $
|
|
10
|
+
* $Revision: 3188 $
|
|
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
|
+
#ifndef __GECODE_GENERATOR_PROJECOTRS_COMPILER_HH
|
|
23
|
+
#define __GECODE_GENERATOR_PROJECTORS_COMPILER_HH
|
|
24
|
+
|
|
25
|
+
#include "gecode/set/projectors.hh"
|
|
26
|
+
|
|
27
|
+
namespace Gecode {
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* \brief Specification for a C++ finite set propagator
|
|
31
|
+
*
|
|
32
|
+
*/
|
|
33
|
+
class ProjectorPropagatorSpec {
|
|
34
|
+
public:
|
|
35
|
+
/// The name of the propagator
|
|
36
|
+
std::string _name;
|
|
37
|
+
/// The namespace to place the propagator in
|
|
38
|
+
std::string _namespace;
|
|
39
|
+
|
|
40
|
+
/// Arity of the generated propagator, 0 meaning n-ary
|
|
41
|
+
int _arity;
|
|
42
|
+
/// Whether this propagator is reified
|
|
43
|
+
bool _reified;
|
|
44
|
+
/// Whether this propagator is negated
|
|
45
|
+
bool _negated;
|
|
46
|
+
|
|
47
|
+
ProjectorSet _ps;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* \brief Compiler from projector specifications to C++
|
|
52
|
+
*
|
|
53
|
+
*/
|
|
54
|
+
class ProjectorCompiler {
|
|
55
|
+
public:
|
|
56
|
+
/// Indentation helper class
|
|
57
|
+
class Indent {
|
|
58
|
+
public:
|
|
59
|
+
/// current indentation
|
|
60
|
+
int i;
|
|
61
|
+
/// Default constructor
|
|
62
|
+
Indent(void);
|
|
63
|
+
/// Increment indentation level
|
|
64
|
+
void operator++(void);
|
|
65
|
+
/// Decrement indentation level
|
|
66
|
+
void operator--(void);
|
|
67
|
+
};
|
|
68
|
+
private:
|
|
69
|
+
/// Indentation to use
|
|
70
|
+
Indent indent;
|
|
71
|
+
/// The outstream for the header file (.hh)
|
|
72
|
+
std::ostream& hhos;
|
|
73
|
+
/// The outstream for the implementation header file (.icc)
|
|
74
|
+
std::ostream& iccos;
|
|
75
|
+
|
|
76
|
+
/// The projector specification that gets compiled
|
|
77
|
+
const ProjectorPropagatorSpec& spec;
|
|
78
|
+
|
|
79
|
+
///\name Internal helper functions
|
|
80
|
+
//@{
|
|
81
|
+
/// Test if this is an nary propagator
|
|
82
|
+
bool nary(void);
|
|
83
|
+
/// Return string representation of propagation cost
|
|
84
|
+
std::string propcost(void);
|
|
85
|
+
/// Emit test that checks if all variables are assigned
|
|
86
|
+
void allAssigned(std::ostream&);
|
|
87
|
+
/// Emit argument list for the views
|
|
88
|
+
void viewsarglist(std::ostream&);
|
|
89
|
+
/// Emit constructor initializer list for the views
|
|
90
|
+
void initarglist(std::ostream&);
|
|
91
|
+
/// Return string representation of propagation condition
|
|
92
|
+
std::string propcond(PropCond);
|
|
93
|
+
/// Emit template parameters for member functions
|
|
94
|
+
void templateparams(void);
|
|
95
|
+
/// Emit template head for member functions and class
|
|
96
|
+
void templatehead(std::ostream&);
|
|
97
|
+
/// Emit file header, including namespace
|
|
98
|
+
void header(std::ostream&);
|
|
99
|
+
/// Emit file footer
|
|
100
|
+
void footer(std::ostream&);
|
|
101
|
+
/// Emit class delcaration
|
|
102
|
+
void classdef(void);
|
|
103
|
+
/// Emit implementation
|
|
104
|
+
void standardMemberFunctions(void);
|
|
105
|
+
/// Emit iterator for set expression
|
|
106
|
+
int iterator(const SetExprCode& instrs,
|
|
107
|
+
bool countSize=false,
|
|
108
|
+
bool invert=false);
|
|
109
|
+
/// Emit propagation function
|
|
110
|
+
void propagation(void);
|
|
111
|
+
//@}
|
|
112
|
+
|
|
113
|
+
public:
|
|
114
|
+
/// Description of the fixpoint to compute
|
|
115
|
+
enum FixpointType {
|
|
116
|
+
NO_FIX, ///< Do not compute fixpoint, return ES_NOFIX
|
|
117
|
+
ITER_FIX, ///< Compute fixpoint by iteration
|
|
118
|
+
};
|
|
119
|
+
/// Description of how generic the propagator should be
|
|
120
|
+
enum ViewsType {
|
|
121
|
+
SINGLE_VIEW, ///< Make propagator parametric in a single view
|
|
122
|
+
MULTI_VIEW ///< Make propagator parametric in one view per variable
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
///\name Configuration options
|
|
126
|
+
//@{
|
|
127
|
+
/// Whether to generate a test case, default=false
|
|
128
|
+
bool compiletest;
|
|
129
|
+
/// What fixpoint to compute, default=ITER_FIX
|
|
130
|
+
FixpointType fixpoint;
|
|
131
|
+
/// How generic the propagator is, default=SINGLE_VIEW
|
|
132
|
+
ViewsType views;
|
|
133
|
+
//@}
|
|
134
|
+
|
|
135
|
+
/// Construct compiler
|
|
136
|
+
GECODE_SET_EXPORT ProjectorCompiler(std::ostream& hhos,
|
|
137
|
+
std::ostream& iccos,
|
|
138
|
+
const ProjectorPropagatorSpec& spec);
|
|
139
|
+
/// Do the compilation
|
|
140
|
+
GECODE_SET_EXPORT void compile(void);
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
#endif
|
|
147
|
+
|
|
148
|
+
// STATISTICS: set-prop
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Guido Tack, 2006
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-07-12 15:53:12 +0200 (Wed, 12 Jul 2006) $ by $Author: tack $
|
|
10
|
+
* $Revision: 3349 $
|
|
11
|
+
*
|
|
12
|
+
* This file is part of Gecode, the generic constraint
|
|
13
|
+
* development environment:
|
|
14
|
+
* http://www.gecode.org
|
|
15
|
+
*
|
|
16
|
+
* See the file "LICENSE" for information on usage and
|
|
17
|
+
* redistribution of this file, and for a
|
|
18
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#include "gecode/set/projectors/propagator.hh"
|
|
23
|
+
|
|
24
|
+
using namespace Gecode::Set;
|
|
25
|
+
|
|
26
|
+
namespace Gecode {
|
|
27
|
+
|
|
28
|
+
void projector(Space* home, const SetVar& xa, const SetVar& ya,
|
|
29
|
+
ProjectorSet& ps, bool negated) {
|
|
30
|
+
if (home->failed()) return;
|
|
31
|
+
ViewArray<SetView> x(home, 2);
|
|
32
|
+
x[0] = xa; x[1] = ya;
|
|
33
|
+
if (negated) {
|
|
34
|
+
GECODE_ES_FAIL(home,
|
|
35
|
+
(Projection::NaryProjection<true>::post(home,
|
|
36
|
+
x, ps)));
|
|
37
|
+
} else {
|
|
38
|
+
GECODE_ES_FAIL(home,
|
|
39
|
+
(Projection::NaryProjection<false>::post(home,
|
|
40
|
+
x, ps)));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
void projector(Space* home, const SetVar& xa, const SetVar& ya,
|
|
46
|
+
const BoolVar& bv, ProjectorSet& ps) {
|
|
47
|
+
if (home->failed()) return;
|
|
48
|
+
ViewArray<SetView> x(home, 2);
|
|
49
|
+
x[0] = xa; x[1] = ya;
|
|
50
|
+
Gecode::Int::BoolView b(bv);
|
|
51
|
+
GECODE_ES_FAIL(home,
|
|
52
|
+
(Projection::ReNaryProjection::post(home,
|
|
53
|
+
x, b, ps)));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
void projector(Space* home,
|
|
57
|
+
const SetVar& xa, const SetVar& ya, const SetVar& za,
|
|
58
|
+
ProjectorSet& ps, bool negated) {
|
|
59
|
+
if (home->failed()) return;
|
|
60
|
+
ViewArray<SetView> x(home, 3);
|
|
61
|
+
x[0] = xa; x[1] = ya; x[2] = za;
|
|
62
|
+
if (negated) {
|
|
63
|
+
GECODE_ES_FAIL(home,
|
|
64
|
+
(Projection::NaryProjection<true>::post(home,
|
|
65
|
+
x, ps)));
|
|
66
|
+
} else {
|
|
67
|
+
GECODE_ES_FAIL(home,
|
|
68
|
+
(Projection::NaryProjection<false>::post(home,
|
|
69
|
+
x, ps)));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
void projector(Space* home,
|
|
75
|
+
const SetVar& xa, const SetVar& ya, const SetVar& za,
|
|
76
|
+
const BoolVar& bv, ProjectorSet& ps) {
|
|
77
|
+
if (home->failed()) return;
|
|
78
|
+
ViewArray<SetView> x(home, 3);
|
|
79
|
+
x[0] = xa; x[1] = ya; x[2] = za;
|
|
80
|
+
Gecode::Int::BoolView b(bv);
|
|
81
|
+
GECODE_ES_FAIL(home,
|
|
82
|
+
(Projection::ReNaryProjection::post(home,
|
|
83
|
+
x, b, ps)));
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
void projector(Space* home, const SetVar& xa, const SetVar& ya,
|
|
87
|
+
const IntVar& i, Projector& p) {
|
|
88
|
+
if (home->failed()) return;
|
|
89
|
+
ViewArray<SetView> x(home, 2);
|
|
90
|
+
x[0] = xa; x[1] = ya;
|
|
91
|
+
Gecode::Int::IntView iv(i);
|
|
92
|
+
GECODE_ES_FAIL(home,
|
|
93
|
+
(Projection::CardProjection::post(home,x,i,p)));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
void projector(Space* home, const SetVar& xa, const SetVar& ya,
|
|
97
|
+
const SetVar& za, const IntVar& i, Projector& p) {
|
|
98
|
+
if (home->failed()) return;
|
|
99
|
+
ViewArray<SetView> x(home, 3);
|
|
100
|
+
x[0] = xa; x[1] = ya; x[2] = za;
|
|
101
|
+
Gecode::Int::IntView iv(i);
|
|
102
|
+
GECODE_ES_FAIL(home,
|
|
103
|
+
(Projection::CardProjection::post(home,x,i,p)));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// STATISTICS: set-post
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Guido Tack, 2006
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-08-25 17:31:32 +0200 (Fri, 25 Aug 2006) $ by $Author: tack $
|
|
10
|
+
* $Revision: 3573 $
|
|
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
|
+
#ifndef __GECODE_GENERATOR_PROJECOTRS_HH
|
|
23
|
+
#define __GECODE_GENERATOR_PROJECTORS_HH
|
|
24
|
+
|
|
25
|
+
#include "gecode/set.hh"
|
|
26
|
+
#include "gecode/support/dynamic-array.hh"
|
|
27
|
+
#include "gecode/support/shared-array.hh"
|
|
28
|
+
|
|
29
|
+
namespace Gecode {
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* \defgroup TaskIntSetProjector Projector constraints
|
|
33
|
+
* \ingroup TaskIntSet
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
//@{
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* \brief Code representing set-valued expressions for finite set projectors
|
|
41
|
+
*
|
|
42
|
+
* Set-valued expressions are represented using a simple stack-based
|
|
43
|
+
* language.
|
|
44
|
+
*/
|
|
45
|
+
class SetExprCode {
|
|
46
|
+
private:
|
|
47
|
+
/// The actual code
|
|
48
|
+
Support::SharedArray<int> c;
|
|
49
|
+
/// The number of instructions
|
|
50
|
+
int n;
|
|
51
|
+
public:
|
|
52
|
+
/// Instructions for set-valued expression code
|
|
53
|
+
enum Instruction {
|
|
54
|
+
COMPLEMENT, ///< Complement
|
|
55
|
+
INTER, ///< Intersection
|
|
56
|
+
UNION, ///< Union
|
|
57
|
+
GLB, ///< Greatest lower bound
|
|
58
|
+
LUB, ///< Least upper bound
|
|
59
|
+
EMPTY, ///< Constant empty set
|
|
60
|
+
UNIVERSE, ///< Constant universal set
|
|
61
|
+
LAST ///< First integer to use for immediate arguments
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
///\name Construction and initialization
|
|
65
|
+
//@{
|
|
66
|
+
|
|
67
|
+
/// Default constructor
|
|
68
|
+
SetExprCode(void);
|
|
69
|
+
|
|
70
|
+
/// Copy constructor
|
|
71
|
+
SetExprCode(const SetExprCode& sc);
|
|
72
|
+
|
|
73
|
+
//@}
|
|
74
|
+
|
|
75
|
+
/// Copying
|
|
76
|
+
void update(bool share, SetExprCode& sc);
|
|
77
|
+
|
|
78
|
+
/// Add instruction \a i to the end of the current code
|
|
79
|
+
void add(int i);
|
|
80
|
+
|
|
81
|
+
/// Return number of instructions
|
|
82
|
+
int size(void) const;
|
|
83
|
+
|
|
84
|
+
/// Return instruction at position \a i
|
|
85
|
+
int operator[](int i) const;
|
|
86
|
+
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* \brief Set-valued expressions for finite set projectors
|
|
91
|
+
*/
|
|
92
|
+
class SetExpr {
|
|
93
|
+
public:
|
|
94
|
+
/// Type of variable indices
|
|
95
|
+
typedef int var_idx;
|
|
96
|
+
|
|
97
|
+
/// Relation used to connect two set expressions
|
|
98
|
+
enum RelType {
|
|
99
|
+
REL_INTER, ///< Intersection relation
|
|
100
|
+
REL_UNION ///< Union relation
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
private:
|
|
104
|
+
/// Nodes for set expressions
|
|
105
|
+
class Node;
|
|
106
|
+
|
|
107
|
+
Node* ax; ///< Node for expression
|
|
108
|
+
int sign; ///< Sign for expression
|
|
109
|
+
public:
|
|
110
|
+
|
|
111
|
+
/// Construct constant set expression for the empty set
|
|
112
|
+
SetExpr(void);
|
|
113
|
+
/// Copy constructor
|
|
114
|
+
GECODE_SET_EXPORT SetExpr(const SetExpr& s);
|
|
115
|
+
/// Construct set expression for variable \a v
|
|
116
|
+
GECODE_SET_EXPORT SetExpr(var_idx v);
|
|
117
|
+
/// Construct set expression from \a s with sign \a sign
|
|
118
|
+
GECODE_SET_EXPORT SetExpr(const SetExpr& s, int sign);
|
|
119
|
+
/// Construct set expression from \a s with sign \a ssign and \a t with sign \a tsign under relation \a r
|
|
120
|
+
GECODE_SET_EXPORT SetExpr(const SetExpr& s, int ssign,
|
|
121
|
+
RelType r,
|
|
122
|
+
const SetExpr& t, int tsign);
|
|
123
|
+
/// Assignment operator
|
|
124
|
+
GECODE_SET_EXPORT const SetExpr& operator=(const SetExpr& e);
|
|
125
|
+
/// Returns the arity of the set expression
|
|
126
|
+
GECODE_SET_EXPORT int arity(void) const;
|
|
127
|
+
/// Returns code for this set expression
|
|
128
|
+
GECODE_SET_EXPORT SetExprCode encode(void) const;
|
|
129
|
+
/// Destructor
|
|
130
|
+
GECODE_SET_EXPORT ~SetExpr(void);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
///\name Specifying finite set projectors
|
|
134
|
+
//@{
|
|
135
|
+
|
|
136
|
+
/// Return set expression for the complement of \a s
|
|
137
|
+
SetExpr operator-(const SetExpr& s);
|
|
138
|
+
/// Return set expression for the union of \a s and \a t
|
|
139
|
+
SetExpr operator||(const SetExpr& s, const SetExpr& t);
|
|
140
|
+
/// Return set expression for the intersection of \a s and \a t
|
|
141
|
+
SetExpr operator&&(const SetExpr&, const SetExpr&);
|
|
142
|
+
/// Return set expression for the difference of \a s and \a t
|
|
143
|
+
SetExpr operator-(const SetExpr&, const SetExpr&);
|
|
144
|
+
|
|
145
|
+
///@}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* \brief Finite set projector specification
|
|
149
|
+
*/
|
|
150
|
+
class Projector {
|
|
151
|
+
private:
|
|
152
|
+
SetExpr::var_idx i; ///< The variable for this projector
|
|
153
|
+
SetExprCode glb; ///< The greatest lower bound set expression code
|
|
154
|
+
SetExprCode lub; ///< The least upper bound set expression code
|
|
155
|
+
int _arity; ///< The arity of this projector
|
|
156
|
+
public:
|
|
157
|
+
/// Default constructor
|
|
158
|
+
Projector(void);
|
|
159
|
+
/// Construct a projector \f$(\mathrm{sglb}\subseteq x\subseteq\mathrm{slub})\f$
|
|
160
|
+
Projector(SetExpr::var_idx x, const SetExpr& sglb, const SetExpr& slub);
|
|
161
|
+
|
|
162
|
+
/// Returns the scope of the projector
|
|
163
|
+
GECODE_SET_EXPORT void scope(Support::DynamicArray<int>&) const;
|
|
164
|
+
|
|
165
|
+
/// Returns the arity of the projector
|
|
166
|
+
GECODE_SET_EXPORT int arity(void) const;
|
|
167
|
+
|
|
168
|
+
/// Propagate the projector
|
|
169
|
+
template <bool negated>
|
|
170
|
+
ExecStatus propagate(Space* home, ViewArray<Set::SetView>& x);
|
|
171
|
+
|
|
172
|
+
/// Check for subsumption or failure
|
|
173
|
+
GECODE_SET_EXPORT ExecStatus check(Space* home,
|
|
174
|
+
ViewArray<Set::SetView>& x);
|
|
175
|
+
|
|
176
|
+
/// Compute size of greatest lower bound
|
|
177
|
+
unsigned int glbSize(ViewArray<Set::SetView>& x);
|
|
178
|
+
|
|
179
|
+
/// Compute size of least upper bound
|
|
180
|
+
unsigned int lubSize(ViewArray<Set::SetView>& x);
|
|
181
|
+
|
|
182
|
+
/// Return the set expression code for the glb
|
|
183
|
+
const SetExprCode& getGlb(void) const;
|
|
184
|
+
|
|
185
|
+
/// Return the set expression code for the lub
|
|
186
|
+
const SetExprCode& getLub(void) const;
|
|
187
|
+
|
|
188
|
+
/// Return the variable index for this projector
|
|
189
|
+
SetExpr::var_idx getIdx(void) const;
|
|
190
|
+
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* \brief Group of finite set projector specifications
|
|
195
|
+
*/
|
|
196
|
+
class ProjectorSet {
|
|
197
|
+
private:
|
|
198
|
+
Support::SharedArray<Projector,true> _ps; ///< The projectors
|
|
199
|
+
int _count; ///< The number of projectors in the set
|
|
200
|
+
int _arity; ///< The maximum arity of the projectors in the set
|
|
201
|
+
public:
|
|
202
|
+
|
|
203
|
+
/// Construct empty projector set
|
|
204
|
+
ProjectorSet(void);
|
|
205
|
+
|
|
206
|
+
/// Used for copying
|
|
207
|
+
void update(Space* home, bool share, ProjectorSet& p);
|
|
208
|
+
|
|
209
|
+
/// Add projector \a p to the set
|
|
210
|
+
GECODE_SET_EXPORT void add(const Projector& p);
|
|
211
|
+
|
|
212
|
+
/// Returns the arity of the projector set
|
|
213
|
+
int arity(void) const;
|
|
214
|
+
|
|
215
|
+
/// Returns the scope of the projector set
|
|
216
|
+
GECODE_SET_EXPORT void scope(Support::DynamicArray<int>&) const;
|
|
217
|
+
|
|
218
|
+
/// Propagate the set
|
|
219
|
+
template <bool negated>
|
|
220
|
+
ExecStatus propagate(Space* home, ViewArray<Set::SetView>& x);
|
|
221
|
+
|
|
222
|
+
/// Check for subsumption or failure
|
|
223
|
+
GECODE_SET_EXPORT ExecStatus check(Space* home,
|
|
224
|
+
ViewArray<Set::SetView>& x);
|
|
225
|
+
|
|
226
|
+
/// Return number of projectors int the set
|
|
227
|
+
int size(void) const;
|
|
228
|
+
|
|
229
|
+
/// Return projector \a i from the set
|
|
230
|
+
const Projector& operator[](int i) const;
|
|
231
|
+
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
///\name Posting projection propagators
|
|
235
|
+
//@{
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* \brief Post projection propagators for binary constraint
|
|
239
|
+
*
|
|
240
|
+
* Post projection propagators for binary constraint on variables
|
|
241
|
+
* \a xa and \a ya, specified by \a ps. If \a negated is true, the
|
|
242
|
+
* negation of the specified constraint is propagated.
|
|
243
|
+
*/
|
|
244
|
+
GECODE_SET_EXPORT void
|
|
245
|
+
projector(Space* home, const SetVar& xa, const SetVar& ya,
|
|
246
|
+
ProjectorSet& ps, bool negated=false);
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* \brief Post reified projection propagators for binary constraint
|
|
250
|
+
*
|
|
251
|
+
* Post projection propagators for binary constraint on variables
|
|
252
|
+
* \a xa and \a ya, specified by \a ps, reified with \a bv.
|
|
253
|
+
*/
|
|
254
|
+
GECODE_SET_EXPORT void
|
|
255
|
+
projector(Space* home, const SetVar& xa, const SetVar& ya,
|
|
256
|
+
const BoolVar& bv,
|
|
257
|
+
ProjectorSet& ps);
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* \brief Post projection propagators for ternary constraint
|
|
261
|
+
*
|
|
262
|
+
* Post projection propagators for ternary constraint on variables
|
|
263
|
+
* \a xa, \a ya and \a za, specified by \a ps. If \a negated is true, the
|
|
264
|
+
* negation of the specified constraint is propagated.
|
|
265
|
+
*/
|
|
266
|
+
GECODE_SET_EXPORT void
|
|
267
|
+
projector(Space* home,
|
|
268
|
+
const SetVar& xa, const SetVar& ya, const SetVar& za,
|
|
269
|
+
ProjectorSet& ps, bool negated=false);
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* \brief Post reified projection propagators for ternary constraint
|
|
273
|
+
*
|
|
274
|
+
* Post projection propagators for ternary constraint on variables
|
|
275
|
+
* \a xa, \a ya and \a za, specified by \a ps, reified with \a bv.
|
|
276
|
+
*/
|
|
277
|
+
GECODE_SET_EXPORT void
|
|
278
|
+
projector(Space* home,
|
|
279
|
+
const SetVar& xa, const SetVar& ya, const SetVar& za,
|
|
280
|
+
const BoolVar& bv,
|
|
281
|
+
ProjectorSet& ps);
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* \brief Post projection propagator for cardinality constraint
|
|
285
|
+
*
|
|
286
|
+
* Post propagator for the constraint that \a i is the
|
|
287
|
+
* cardinality of the set represented by \a p, interpreted over the
|
|
288
|
+
* variables \a xa and \a ya.
|
|
289
|
+
*/
|
|
290
|
+
GECODE_SET_EXPORT void
|
|
291
|
+
projector(Space* home, const SetVar& xa, const SetVar& ya,
|
|
292
|
+
const IntVar& i,
|
|
293
|
+
Projector& p);
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* \brief Post projection propagator for cardinality constraint
|
|
297
|
+
*
|
|
298
|
+
* Post propagator for the constraint that \a i is the
|
|
299
|
+
* cardinality of the set represented by \a p, interpreted over the
|
|
300
|
+
* variables \a xa, \a ya, and \a za.
|
|
301
|
+
*/
|
|
302
|
+
GECODE_SET_EXPORT void
|
|
303
|
+
projector(Space* home, const SetVar& xa, const SetVar& ya,
|
|
304
|
+
const SetVar& za, const IntVar& i,
|
|
305
|
+
Projector& p);
|
|
306
|
+
|
|
307
|
+
//@}
|
|
308
|
+
|
|
309
|
+
//@}
|
|
310
|
+
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
#include "gecode/set/projectors/set-expr.icc"
|
|
314
|
+
#include "gecode/set/projectors/projector.icc"
|
|
315
|
+
#include "gecode/set/projectors/projector-set.icc"
|
|
316
|
+
|
|
317
|
+
#endif
|
|
318
|
+
|
|
319
|
+
// STATISTICS: set-prop
|