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,120 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
* Gabor Szokoli <szokoli@gecode.org>
|
|
5
|
+
*
|
|
6
|
+
* Copyright:
|
|
7
|
+
* Guido Tack, 2004, 2005
|
|
8
|
+
* Gabor Szokoli, 2004
|
|
9
|
+
*
|
|
10
|
+
* Last modified:
|
|
11
|
+
* $Date: 2006-04-11 15:58:37 +0200 (Tue, 11 Apr 2006) $ by $Author: tack $
|
|
12
|
+
* $Revision: 3188 $
|
|
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
|
+
using namespace Gecode::Set;
|
|
27
|
+
using namespace Gecode::Int;
|
|
28
|
+
|
|
29
|
+
namespace Gecode { namespace Set {
|
|
30
|
+
|
|
31
|
+
/*
|
|
32
|
+
* Printing a bound
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
template <class I>
|
|
36
|
+
static void
|
|
37
|
+
printBound(std::ostream& os, I& r) {
|
|
38
|
+
os << '{';
|
|
39
|
+
while (r()) {
|
|
40
|
+
if (r.min() == r.max()) {
|
|
41
|
+
os << r.min();
|
|
42
|
+
} else if (r.min()+1 == r.max()) {
|
|
43
|
+
os << r.min() << " " << r.max();
|
|
44
|
+
} else {
|
|
45
|
+
os << r.min() << "#" << r.max();
|
|
46
|
+
}
|
|
47
|
+
++r;
|
|
48
|
+
if (!r()) break;
|
|
49
|
+
os << ' ';
|
|
50
|
+
}
|
|
51
|
+
os << '}';
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* Printing a variable or view from the data generaly available
|
|
56
|
+
*
|
|
57
|
+
*/
|
|
58
|
+
template <class IL, class IU>
|
|
59
|
+
static void
|
|
60
|
+
printVar(std::ostream& os, const bool assigned, IL& lb, IU& ub,
|
|
61
|
+
unsigned int cardMin, unsigned int cardMax) {
|
|
62
|
+
if (assigned) {
|
|
63
|
+
printBound(os, ub);
|
|
64
|
+
os << "#" << cardMin;
|
|
65
|
+
} else {
|
|
66
|
+
os << "_{";
|
|
67
|
+
printBound(os,lb);
|
|
68
|
+
os << "..";
|
|
69
|
+
printBound(os,ub);
|
|
70
|
+
os << "}";
|
|
71
|
+
if (cardMin==cardMax) {
|
|
72
|
+
os << "#" <<cardMin;
|
|
73
|
+
} else {
|
|
74
|
+
os << "#{" << cardMin << "," << cardMax << "}";
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
}}
|
|
80
|
+
|
|
81
|
+
std::ostream&
|
|
82
|
+
operator<<(std::ostream& os, const SetVarImp& x) {
|
|
83
|
+
LubRanges<SetVarImp*> ub(&x);
|
|
84
|
+
GlbRanges<SetVarImp*> lb(&x);
|
|
85
|
+
printVar(os, x.assigned(), lb, ub, x.cardMin(), x.cardMax()) ;
|
|
86
|
+
return os;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
std::ostream&
|
|
90
|
+
operator<<(std::ostream& os, const SetView& x) {
|
|
91
|
+
LubRanges<SetView> ub(x);
|
|
92
|
+
GlbRanges<SetView> lb(x);
|
|
93
|
+
printVar(os, x.assigned(), lb, ub, x.cardMin(), x.cardMax()) ;
|
|
94
|
+
return os;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
std::ostream&
|
|
98
|
+
operator<<(std::ostream& os, const EmptyView&) {
|
|
99
|
+
return os << "{}#0";
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
std::ostream&
|
|
103
|
+
operator<<(std::ostream& os, const UniverseView&) {
|
|
104
|
+
return os << "{" << Gecode::Limits::Set::int_min << "#"
|
|
105
|
+
<< Gecode::Limits::Set::int_max << "}#"
|
|
106
|
+
<< Gecode::Limits::Set::card_max;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
std::ostream&
|
|
110
|
+
operator<<(std::ostream& os, const ConstantView& s) {
|
|
111
|
+
return os << "{?}#?";
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
std::ostream&
|
|
115
|
+
operator<<(std::ostream& os, const SingletonView&) {
|
|
116
|
+
return os << "{?}#1";
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// STATISTICS: set-var
|
|
120
|
+
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Contributing authors:
|
|
6
|
+
* Christian Schulte <schulte@gecode.org>
|
|
7
|
+
* Gabor Szokoli <szokoli@gecode.org>
|
|
8
|
+
*
|
|
9
|
+
* Copyright:
|
|
10
|
+
* Guido Tack, 2004
|
|
11
|
+
* Christian Schulte, 2004
|
|
12
|
+
* Gabor Szokoli, 2004
|
|
13
|
+
*
|
|
14
|
+
* Last modified:
|
|
15
|
+
* $Date: 2006-03-31 16:57:12 +0200 (Fri, 31 Mar 2006) $ by $Author: tack $
|
|
16
|
+
* $Revision: 3146 $
|
|
17
|
+
*
|
|
18
|
+
* This file is part of Gecode, the generic constraint
|
|
19
|
+
* development environment:
|
|
20
|
+
* http://www.gecode.org
|
|
21
|
+
*
|
|
22
|
+
* See the file "LICENSE" for information on usage and
|
|
23
|
+
* redistribution of this file, and for a
|
|
24
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
namespace Gecode { namespace Set {
|
|
29
|
+
|
|
30
|
+
/*
|
|
31
|
+
* Constructors and access
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
forceinline
|
|
36
|
+
SetView::SetView(void) {}
|
|
37
|
+
forceinline
|
|
38
|
+
SetView::SetView(const SetVar& y)
|
|
39
|
+
: VariableViewBase<SetVarImp>(y.variable()) {}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
/*
|
|
43
|
+
* Variable information
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
forceinline bool
|
|
48
|
+
SetView::assigned(void) const { return var->assigned(); }
|
|
49
|
+
|
|
50
|
+
forceinline unsigned int
|
|
51
|
+
SetView::glbSize(void) const { return var->glbSize(); }
|
|
52
|
+
|
|
53
|
+
forceinline unsigned int
|
|
54
|
+
SetView::lubSize(void) const { return var->lubSize(); }
|
|
55
|
+
|
|
56
|
+
forceinline unsigned int
|
|
57
|
+
SetView::unknownSize(void) const { return var->lubSize() - var->glbSize(); }
|
|
58
|
+
|
|
59
|
+
forceinline bool
|
|
60
|
+
SetView::contains(int i) const { return (var->knownIn(i)); }
|
|
61
|
+
|
|
62
|
+
forceinline bool
|
|
63
|
+
SetView::notContains(int i) const { return (var->knownOut(i)); }
|
|
64
|
+
|
|
65
|
+
forceinline unsigned int
|
|
66
|
+
SetView::cardMin(void) const { return var->cardMin(); }
|
|
67
|
+
|
|
68
|
+
forceinline unsigned int
|
|
69
|
+
SetView::cardMax(void) const { return var->cardMax(); }
|
|
70
|
+
|
|
71
|
+
forceinline int
|
|
72
|
+
SetView::lubMin(void) const { return var->lubMin(); }
|
|
73
|
+
|
|
74
|
+
forceinline int
|
|
75
|
+
SetView::lubMax(void) const { return var->lubMax(); }
|
|
76
|
+
|
|
77
|
+
forceinline int
|
|
78
|
+
SetView::lubMinN(int n) const { return var->lubMinN(n); }
|
|
79
|
+
|
|
80
|
+
forceinline int
|
|
81
|
+
SetView::lubMaxN(int n) const { return var->lubMaxN(n); }
|
|
82
|
+
|
|
83
|
+
forceinline int
|
|
84
|
+
SetView::glbMin(void) const { return var->glbMin(); }
|
|
85
|
+
|
|
86
|
+
forceinline int
|
|
87
|
+
SetView::glbMax(void) const { return var->glbMax(); }
|
|
88
|
+
|
|
89
|
+
/*
|
|
90
|
+
* Tells
|
|
91
|
+
*
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
forceinline ModEvent
|
|
95
|
+
SetView::cardMin(Space* home, unsigned int m) {
|
|
96
|
+
return var-> cardMin(home, m);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
forceinline ModEvent
|
|
100
|
+
SetView::cardMax(Space* home, unsigned int m) {
|
|
101
|
+
return var-> cardMax(home, m);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
forceinline ModEvent
|
|
105
|
+
SetView::include (Space* home,int from, int to)
|
|
106
|
+
{ return (var->include(home,from,to)); }
|
|
107
|
+
|
|
108
|
+
forceinline ModEvent
|
|
109
|
+
SetView::include (Space* home,int n)
|
|
110
|
+
{ return (var->include(home,n)); }
|
|
111
|
+
|
|
112
|
+
forceinline ModEvent
|
|
113
|
+
SetView::exclude (Space* home,int n)
|
|
114
|
+
{ return (var->exclude(home, n)); }
|
|
115
|
+
|
|
116
|
+
forceinline ModEvent
|
|
117
|
+
SetView::intersect (Space* home,int from, int to)
|
|
118
|
+
{ return (var->intersect(home,from,to)); }
|
|
119
|
+
|
|
120
|
+
forceinline ModEvent
|
|
121
|
+
SetView::intersect (Space* home,int n)
|
|
122
|
+
{ return (var->intersect(home,n)); }
|
|
123
|
+
|
|
124
|
+
template <class I> ModEvent
|
|
125
|
+
SetView::includeI (Space* home, I& iter)
|
|
126
|
+
{ return (var->includeI(home, iter)); }
|
|
127
|
+
|
|
128
|
+
forceinline ModEvent
|
|
129
|
+
SetView::exclude (Space* home,int from, int to)
|
|
130
|
+
{ return (var->exclude(home,from,to)); }
|
|
131
|
+
|
|
132
|
+
template <class I> ModEvent
|
|
133
|
+
SetView::excludeI(Space* home, I& iter) {
|
|
134
|
+
return var->excludeI(home, iter);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
template <class I> ModEvent
|
|
138
|
+
SetView::intersectI(Space* home, I& iter) {
|
|
139
|
+
return var->intersectI(home, iter);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
/*
|
|
145
|
+
* Cloning
|
|
146
|
+
*
|
|
147
|
+
*/
|
|
148
|
+
|
|
149
|
+
forceinline void
|
|
150
|
+
SetView::update(Space* home, bool share, SetView& y) {
|
|
151
|
+
var = y.var->copy(home,share);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* \brief %Range iterator for least upper bound of set variable views
|
|
156
|
+
* \ingroup TaskActorSetView
|
|
157
|
+
*/
|
|
158
|
+
template <>
|
|
159
|
+
class LubRanges<SetView> : public LubRanges<SetVarImp*> {
|
|
160
|
+
public:
|
|
161
|
+
/// \name Constructors and initialization
|
|
162
|
+
//@{
|
|
163
|
+
/// Default constructor
|
|
164
|
+
LubRanges(void);
|
|
165
|
+
/// Initialize with ranges for view \a x
|
|
166
|
+
LubRanges(const SetView& x);
|
|
167
|
+
/// Initialize with ranges for view \a x
|
|
168
|
+
void init(const SetView& x);
|
|
169
|
+
//@}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
forceinline
|
|
173
|
+
LubRanges<SetView>::LubRanges(void) {}
|
|
174
|
+
|
|
175
|
+
forceinline
|
|
176
|
+
LubRanges<SetView>::LubRanges(const SetView& x)
|
|
177
|
+
: LubRanges<SetVarImp*>(x.variable()) {}
|
|
178
|
+
|
|
179
|
+
forceinline void
|
|
180
|
+
LubRanges<SetView>::init(const SetView& x) {
|
|
181
|
+
LubRanges<SetVarImp*>::init(x.variable());
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* \brief %Range iterator for greatest lower bound of set variable views
|
|
187
|
+
* \ingroup TaskActorSetView
|
|
188
|
+
*/
|
|
189
|
+
template <>
|
|
190
|
+
class GlbRanges<SetView> : public GlbRanges<SetVarImp*> {
|
|
191
|
+
public:
|
|
192
|
+
/// \name Constructors and initialization
|
|
193
|
+
//@{
|
|
194
|
+
/// Default constructor
|
|
195
|
+
GlbRanges(void);
|
|
196
|
+
/// Initialize with ranges for view \a x
|
|
197
|
+
GlbRanges(const SetView& x);
|
|
198
|
+
/// Initialize with ranges for view \a x
|
|
199
|
+
void init(const SetView& x);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
forceinline
|
|
203
|
+
GlbRanges<SetView>::GlbRanges(void) {}
|
|
204
|
+
|
|
205
|
+
forceinline
|
|
206
|
+
GlbRanges<SetView>::GlbRanges(const SetView& x)
|
|
207
|
+
: GlbRanges<SetVarImp*>(x.variable()) {}
|
|
208
|
+
|
|
209
|
+
forceinline void
|
|
210
|
+
GlbRanges<SetView>::init(const SetView& x) {
|
|
211
|
+
GlbRanges<SetVarImp*>::init(x.variable());
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
}}
|
|
215
|
+
|
|
216
|
+
// STATISTICS: set-var
|
|
217
|
+
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Contributing authors:
|
|
6
|
+
* Christian Schulte <schulte@gecode.org>
|
|
7
|
+
*
|
|
8
|
+
* Copyright:
|
|
9
|
+
* Guido Tack, 2004
|
|
10
|
+
* Christian Schulte, 2004
|
|
11
|
+
*
|
|
12
|
+
* Last modified:
|
|
13
|
+
* $Date: 2006-08-24 11:25:05 +0200 (Thu, 24 Aug 2006) $ by $Author: schulte $
|
|
14
|
+
* $Revision: 3559 $
|
|
15
|
+
*
|
|
16
|
+
* This file is part of Gecode, the generic constraint
|
|
17
|
+
* development environment:
|
|
18
|
+
* http://www.gecode.org
|
|
19
|
+
*
|
|
20
|
+
* See the file "LICENSE" for information on usage and
|
|
21
|
+
* redistribution of this file, and for a
|
|
22
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
namespace Gecode {
|
|
27
|
+
|
|
28
|
+
namespace Set {
|
|
29
|
+
|
|
30
|
+
forceinline
|
|
31
|
+
SingletonView::SingletonView(void) {}
|
|
32
|
+
|
|
33
|
+
forceinline
|
|
34
|
+
SingletonView::SingletonView(Gecode::Int::IntView& i0)
|
|
35
|
+
: DerivedViewBase<Gecode::Int::IntView>(i0) {}
|
|
36
|
+
|
|
37
|
+
forceinline PropCond
|
|
38
|
+
SingletonView::pc_settoint(PropCond pc) {
|
|
39
|
+
switch(pc) {
|
|
40
|
+
case PC_SET_VAL:
|
|
41
|
+
case PC_SET_CGLB:
|
|
42
|
+
case PC_SET_CARD:
|
|
43
|
+
return Gecode::Int::PC_INT_VAL;
|
|
44
|
+
default:
|
|
45
|
+
return Gecode::Int::PC_INT_DOM;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
forceinline ModEvent
|
|
50
|
+
SingletonView::me_inttoset(ModEvent me) {
|
|
51
|
+
switch(me) {
|
|
52
|
+
case Gecode::Int::ME_INT_FAILED:
|
|
53
|
+
return ME_SET_FAILED;
|
|
54
|
+
case Gecode::Int::ME_INT_NONE:
|
|
55
|
+
return ME_SET_NONE;
|
|
56
|
+
case Gecode::Int::ME_INT_VAL:
|
|
57
|
+
return ME_SET_VAL;
|
|
58
|
+
case Gecode::Int::ME_INT_DOM:
|
|
59
|
+
return ME_SET_LUB;
|
|
60
|
+
default:
|
|
61
|
+
return ME_SET_LUB;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
forceinline bool
|
|
66
|
+
SingletonView::assigned(void) const { return view.assigned(); }
|
|
67
|
+
|
|
68
|
+
forceinline unsigned int
|
|
69
|
+
SingletonView::glbSize(void) const { return view.assigned() ? 1 : 0; }
|
|
70
|
+
|
|
71
|
+
forceinline unsigned int
|
|
72
|
+
SingletonView::lubSize(void) const { return view.size(); }
|
|
73
|
+
|
|
74
|
+
forceinline unsigned int
|
|
75
|
+
SingletonView::unknownSize(void) const {
|
|
76
|
+
return lubSize() - glbSize();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
forceinline bool
|
|
80
|
+
SingletonView::contains(int n) const { return view.assigned() ?
|
|
81
|
+
(view.val()==n) : false; }
|
|
82
|
+
|
|
83
|
+
forceinline bool
|
|
84
|
+
SingletonView::notContains(int n) const { return !view.in(n); }
|
|
85
|
+
|
|
86
|
+
forceinline unsigned int
|
|
87
|
+
SingletonView::cardMin() const { return 1; }
|
|
88
|
+
|
|
89
|
+
forceinline unsigned int
|
|
90
|
+
SingletonView::cardMax() const { return 1; }
|
|
91
|
+
|
|
92
|
+
forceinline int
|
|
93
|
+
SingletonView::lubMin() const { return view.min(); }
|
|
94
|
+
|
|
95
|
+
forceinline int
|
|
96
|
+
SingletonView::lubMax() const { return view.max(); }
|
|
97
|
+
|
|
98
|
+
forceinline int
|
|
99
|
+
SingletonView::glbMin() const { return view.assigned() ?
|
|
100
|
+
view.val() : BndSet::MIN_OF_EMPTY; }
|
|
101
|
+
|
|
102
|
+
forceinline int
|
|
103
|
+
SingletonView::glbMax() const { return view.assigned() ?
|
|
104
|
+
view.val() : BndSet::MAX_OF_EMPTY; }
|
|
105
|
+
|
|
106
|
+
forceinline ModEvent
|
|
107
|
+
SingletonView::cardMin(Space* home,unsigned int c) {
|
|
108
|
+
return c<=1 ? ME_SET_NONE : ME_SET_FAILED;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
forceinline ModEvent
|
|
112
|
+
SingletonView::cardMax(Space* home,unsigned int c) {
|
|
113
|
+
return c<1 ? ME_SET_FAILED : ME_SET_NONE;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
forceinline ModEvent
|
|
117
|
+
SingletonView::include(Space* home,int c) {
|
|
118
|
+
return me_inttoset(view.eq(home,c));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
forceinline ModEvent
|
|
122
|
+
SingletonView::intersect(Space* home,int c) {
|
|
123
|
+
return me_inttoset(view.eq(home,c));
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
forceinline ModEvent
|
|
127
|
+
SingletonView::intersect(Space* home,int i, int j) {
|
|
128
|
+
ModEvent me1 = me_inttoset(view.gq(home,i));
|
|
129
|
+
ModEvent me2 = me_inttoset(view.lq(home,j));
|
|
130
|
+
if (me_failed(me1) || me_failed(me2))
|
|
131
|
+
return ME_SET_FAILED;
|
|
132
|
+
switch (me1) {
|
|
133
|
+
case ME_SET_NONE:
|
|
134
|
+
case ME_SET_LUB:
|
|
135
|
+
return me2;
|
|
136
|
+
case ME_SET_VAL:
|
|
137
|
+
return ME_SET_VAL;
|
|
138
|
+
default:
|
|
139
|
+
GECODE_NEVER;
|
|
140
|
+
return ME_SET_VAL;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
forceinline ModEvent
|
|
145
|
+
SingletonView::exclude(Space* home,int c) {
|
|
146
|
+
return me_inttoset(view.nq(home,c));
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
forceinline ModEvent
|
|
150
|
+
SingletonView::include(Space* home, int j, int k) {
|
|
151
|
+
return j==k ? me_inttoset(view.eq(home,j)) : ME_SET_FAILED ;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
forceinline ModEvent
|
|
155
|
+
SingletonView::exclude(Space* home, int j, int k) {
|
|
156
|
+
ModEvent me1 = me_inttoset(view.gr(home,j));
|
|
157
|
+
ModEvent me2 = me_inttoset(view.le(home,k));
|
|
158
|
+
if (me_failed(me1) || me_failed(me2))
|
|
159
|
+
return ME_SET_FAILED;
|
|
160
|
+
switch (me1) {
|
|
161
|
+
case ME_SET_NONE:
|
|
162
|
+
case ME_SET_LUB:
|
|
163
|
+
return me2;
|
|
164
|
+
case ME_SET_VAL:
|
|
165
|
+
return ME_SET_VAL;
|
|
166
|
+
default:
|
|
167
|
+
GECODE_NEVER;
|
|
168
|
+
return ME_SET_VAL;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
template <class I> ModEvent
|
|
173
|
+
SingletonView::excludeI(Space* home, I& iter) {
|
|
174
|
+
return me_inttoset(view.minus(home,iter));
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
template <class I> ModEvent
|
|
178
|
+
SingletonView::includeI(Space* home, I& iter) {
|
|
179
|
+
if (!iter())
|
|
180
|
+
return ME_SET_NONE;
|
|
181
|
+
|
|
182
|
+
if (iter.min()!=iter.max())
|
|
183
|
+
return ME_SET_FAILED;
|
|
184
|
+
|
|
185
|
+
int val = iter.min();
|
|
186
|
+
++iter;
|
|
187
|
+
if ( iter() )
|
|
188
|
+
return ME_SET_FAILED;
|
|
189
|
+
|
|
190
|
+
return me_inttoset(view.eq(home, val));
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
template <class I> ModEvent
|
|
194
|
+
SingletonView::intersectI(Space* home, I& iter) {
|
|
195
|
+
return me_inttoset(view.inter(home,iter));
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
forceinline void
|
|
199
|
+
SingletonView::subscribe(Space* home, Propagator* p, PropCond pc,
|
|
200
|
+
bool process) {
|
|
201
|
+
view.subscribe(home,p,pc_settoint(pc),process);
|
|
202
|
+
}
|
|
203
|
+
forceinline void
|
|
204
|
+
SingletonView::cancel(Space* home, Propagator* p, PropCond pc) {
|
|
205
|
+
view.cancel(home,p,pc_settoint(pc));
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
forceinline ModEvent
|
|
210
|
+
SingletonView::pme(const Propagator* p) {
|
|
211
|
+
return me_inttoset(Int::IntView::pme(p));
|
|
212
|
+
}
|
|
213
|
+
forceinline PropModEvent
|
|
214
|
+
SingletonView::pme(ModEvent me) {
|
|
215
|
+
// CHECK THIS
|
|
216
|
+
return SetView::pme(me);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
forceinline void
|
|
220
|
+
SingletonView::update(Space* home, bool share, SingletonView& y) {
|
|
221
|
+
view.update(home,share,y.view);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/*
|
|
225
|
+
* Iterators
|
|
226
|
+
*
|
|
227
|
+
*/
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* \brief %Range iterator for least upper bound of singleton set view
|
|
231
|
+
* \ingroup TaskActorSetView
|
|
232
|
+
*/
|
|
233
|
+
template <>
|
|
234
|
+
class LubRanges<SingletonView> : public Gecode::Int::IntVarImpFwd {
|
|
235
|
+
public:
|
|
236
|
+
/// \name Constructors and initialization
|
|
237
|
+
//@{
|
|
238
|
+
/// Default constructor
|
|
239
|
+
LubRanges(void);
|
|
240
|
+
/// Initialize with ranges for view \a x
|
|
241
|
+
LubRanges(const SingletonView& x);
|
|
242
|
+
/// Initialize with ranges for view \a x
|
|
243
|
+
void init(const SingletonView& x);
|
|
244
|
+
//@}
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
forceinline
|
|
248
|
+
LubRanges<SingletonView>::LubRanges(void) {}
|
|
249
|
+
|
|
250
|
+
forceinline
|
|
251
|
+
LubRanges<SingletonView>::LubRanges(const SingletonView& s) :
|
|
252
|
+
Gecode::Int::IntVarImpFwd(s.base().variable()) {}
|
|
253
|
+
|
|
254
|
+
forceinline void
|
|
255
|
+
LubRanges<SingletonView>::init(const SingletonView& s) {
|
|
256
|
+
Gecode::Int::IntVarImpFwd::init(s.base().variable());
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* \brief %Range iterator for greatest lower bound of singleton set view
|
|
261
|
+
* \ingroup TaskActorSetView
|
|
262
|
+
*/
|
|
263
|
+
template <>
|
|
264
|
+
class GlbRanges<SingletonView> {
|
|
265
|
+
private:
|
|
266
|
+
int val;
|
|
267
|
+
bool flag;
|
|
268
|
+
public:
|
|
269
|
+
/// \name Constructors and initialization
|
|
270
|
+
//@{
|
|
271
|
+
/// Default constructor
|
|
272
|
+
GlbRanges(void);
|
|
273
|
+
/// Initialize with ranges for view \a x
|
|
274
|
+
GlbRanges(const SingletonView& x);
|
|
275
|
+
/// Initialize with ranges for view \a x
|
|
276
|
+
void init(const SingletonView& x);
|
|
277
|
+
|
|
278
|
+
/// \name Iteration control
|
|
279
|
+
//@{
|
|
280
|
+
/// Test whether iterator is still at a range or done
|
|
281
|
+
bool operator()(void) const;
|
|
282
|
+
/// Move iterator to next range (if possible)
|
|
283
|
+
void operator++(void);
|
|
284
|
+
//@}
|
|
285
|
+
|
|
286
|
+
/// \name Range access
|
|
287
|
+
//@{
|
|
288
|
+
/// Return smallest value of range
|
|
289
|
+
int min(void) const;
|
|
290
|
+
/// Return largest value of range
|
|
291
|
+
int max(void) const;
|
|
292
|
+
/// Return width of ranges (distance between minimum and maximum)
|
|
293
|
+
unsigned int width(void) const;
|
|
294
|
+
//@}
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
forceinline
|
|
298
|
+
GlbRanges<SingletonView>::GlbRanges(void) {}
|
|
299
|
+
|
|
300
|
+
forceinline void
|
|
301
|
+
GlbRanges<SingletonView>::init(const SingletonView& s) {
|
|
302
|
+
if (s.base().assigned()) {
|
|
303
|
+
val = s.base().val();
|
|
304
|
+
flag = true;
|
|
305
|
+
} else {
|
|
306
|
+
val = 0;
|
|
307
|
+
flag = false;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
forceinline
|
|
312
|
+
GlbRanges<SingletonView>::GlbRanges(const SingletonView& s) {
|
|
313
|
+
init(s);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
forceinline bool
|
|
317
|
+
GlbRanges<SingletonView>::operator()(void) const { return flag; }
|
|
318
|
+
|
|
319
|
+
forceinline void
|
|
320
|
+
GlbRanges<SingletonView>::operator++(void) { flag=false; }
|
|
321
|
+
|
|
322
|
+
forceinline int
|
|
323
|
+
GlbRanges<SingletonView>::min(void) const { return val; }
|
|
324
|
+
forceinline int
|
|
325
|
+
GlbRanges<SingletonView>::max(void) const { return val; }
|
|
326
|
+
forceinline unsigned int
|
|
327
|
+
GlbRanges<SingletonView>::width(void) const { return 1; }
|
|
328
|
+
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/*
|
|
332
|
+
* Testing
|
|
333
|
+
*
|
|
334
|
+
*/
|
|
335
|
+
forceinline bool
|
|
336
|
+
same(const Set::SingletonView& x, const Set::SingletonView& y) {
|
|
337
|
+
return same(x.base(),y.base());
|
|
338
|
+
}
|
|
339
|
+
forceinline bool
|
|
340
|
+
before(const Set::SingletonView& x, const Set::SingletonView& y) {
|
|
341
|
+
return before(x.base(),y.base());
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// STATISTICS: set-var
|
|
348
|
+
|