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,583 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Christian Schulte <schulte@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Christian Schulte, 2005
|
|
7
|
+
*
|
|
8
|
+
* Last modified:
|
|
9
|
+
* $Date: 2006-08-24 11:25:05 +0200 (Thu, 24 Aug 2006) $ by $Author: schulte $
|
|
10
|
+
* $Revision: 3559 $
|
|
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 <iostream>
|
|
23
|
+
|
|
24
|
+
namespace Gecode {
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* \brief Base-class for constant views
|
|
28
|
+
* \ingroup TaskVarView
|
|
29
|
+
*/
|
|
30
|
+
class ConstantViewBase {
|
|
31
|
+
public:
|
|
32
|
+
/// \name Generic view information
|
|
33
|
+
//@{
|
|
34
|
+
/// Test whether view has been modified during propagation
|
|
35
|
+
bool modified(void) const;
|
|
36
|
+
/// Return degree (number of subscribed propagators)
|
|
37
|
+
unsigned int degree(void) const;
|
|
38
|
+
/// Return whether this view is derived from a VariableViewBase
|
|
39
|
+
static bool varderived(void);
|
|
40
|
+
/// Return dummy variable implementation of view
|
|
41
|
+
VarBase* variable(void) const;
|
|
42
|
+
//@}
|
|
43
|
+
private:
|
|
44
|
+
static void* operator new(size_t);
|
|
45
|
+
static void operator delete(void*);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* \brief Base-class for variable views
|
|
52
|
+
* \ingroup TaskVarView
|
|
53
|
+
*/
|
|
54
|
+
template <class Var>
|
|
55
|
+
class VariableViewBase {
|
|
56
|
+
protected:
|
|
57
|
+
/// Pointer to variable implementation
|
|
58
|
+
Var* var;
|
|
59
|
+
/// Default constructor
|
|
60
|
+
VariableViewBase(void);
|
|
61
|
+
/// Initialize with variable implementation x
|
|
62
|
+
VariableViewBase(Var* x);
|
|
63
|
+
|
|
64
|
+
public:
|
|
65
|
+
/// \name Generic view information
|
|
66
|
+
//@{
|
|
67
|
+
/// Return whether this view is derived from a VariableViewBase
|
|
68
|
+
static bool varderived(void);
|
|
69
|
+
/// Return variable implementation of view
|
|
70
|
+
Var* variable(void) const;
|
|
71
|
+
/// Test whether view has been modified during propagation
|
|
72
|
+
bool modified(void) const;
|
|
73
|
+
/// Return degree (number of subscribed propagators)
|
|
74
|
+
unsigned int degree(void) const;
|
|
75
|
+
//@}
|
|
76
|
+
|
|
77
|
+
/// \name Propagator modification events
|
|
78
|
+
//@{
|
|
79
|
+
/// Return modification event of propagator \a p for view
|
|
80
|
+
static ModEvent pme(const Propagator* p);
|
|
81
|
+
/// Translate modification event \a me to propagator modification event for view
|
|
82
|
+
static PropModEvent pme(ModEvent me);
|
|
83
|
+
/// Combine modifications events \a me1 and \a me2
|
|
84
|
+
static ModEvent combine(ModEvent me1, ModEvent me2);
|
|
85
|
+
//@}
|
|
86
|
+
|
|
87
|
+
/// \name Dependencies
|
|
88
|
+
//@{
|
|
89
|
+
/**
|
|
90
|
+
* \brief Subscribe propagator \a p with propagation condition \a pc to variable
|
|
91
|
+
*
|
|
92
|
+
* In case \a process is false, the propagator is just subscribed but
|
|
93
|
+
* not processed for execution (this must be used when creating
|
|
94
|
+
* subscriptions during propagation).
|
|
95
|
+
*/
|
|
96
|
+
void subscribe(Space*, Propagator* p, PropCond pc, bool process=true);
|
|
97
|
+
/// Cancel subscription of propagator \a p with propagation condition \a pc to view
|
|
98
|
+
void cancel(Space* home, Propagator* p, PropCond pc);
|
|
99
|
+
//@}
|
|
100
|
+
private:
|
|
101
|
+
static void* operator new(size_t);
|
|
102
|
+
static void operator delete(void*);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
/** \name View comparison
|
|
106
|
+
* \relates VariableViewBase
|
|
107
|
+
*/
|
|
108
|
+
//@{
|
|
109
|
+
/// Test whether views \a x and \a y are the same
|
|
110
|
+
template <class Var>
|
|
111
|
+
bool same(const VariableViewBase<Var>& x, const VariableViewBase<Var>& y);
|
|
112
|
+
/// Test whether view \a x comes before \a y (arbitrary order)
|
|
113
|
+
template <class Var>
|
|
114
|
+
bool before(const VariableViewBase<Var>& x, const VariableViewBase<Var>& y);
|
|
115
|
+
//@}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* \brief Traits class for views and variable implementations
|
|
121
|
+
*
|
|
122
|
+
* Each view must specialize this traits class and add a \code
|
|
123
|
+
* typedef \endcode for the variable implementation belonging to
|
|
124
|
+
* this view.
|
|
125
|
+
*
|
|
126
|
+
* \ingroup TaskVarView
|
|
127
|
+
*/
|
|
128
|
+
template <class View>
|
|
129
|
+
class ViewVarTraits {};
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* \brief Base-class for derived views
|
|
133
|
+
* \ingroup TaskVarView
|
|
134
|
+
*/
|
|
135
|
+
template <class View>
|
|
136
|
+
class DerivedViewBase {
|
|
137
|
+
protected:
|
|
138
|
+
/// View from which this view is derived
|
|
139
|
+
View view;
|
|
140
|
+
/// Default constructor
|
|
141
|
+
DerivedViewBase(void);
|
|
142
|
+
/// Initialize with view x
|
|
143
|
+
DerivedViewBase(const View& x);
|
|
144
|
+
|
|
145
|
+
public:
|
|
146
|
+
/// The variable type belonging to the \a View
|
|
147
|
+
typedef typename ViewVarTraits<View>::Var Var;
|
|
148
|
+
|
|
149
|
+
/// \name Generic view information
|
|
150
|
+
//@{
|
|
151
|
+
/// Return whether this view is derived from a VariableViewBase
|
|
152
|
+
static bool varderived(void);
|
|
153
|
+
/// Return variable implementation of view
|
|
154
|
+
Var* variable(void) const;
|
|
155
|
+
/// Return view from which this view is derived
|
|
156
|
+
View base(void) const;
|
|
157
|
+
/// Test whether view been modified during propagation
|
|
158
|
+
bool modified(void) const;
|
|
159
|
+
/// Return degree (number of subscribed propagators)
|
|
160
|
+
unsigned int degree(void) const;
|
|
161
|
+
//@}
|
|
162
|
+
|
|
163
|
+
private:
|
|
164
|
+
static void* operator new(size_t);
|
|
165
|
+
static void operator delete(void*);
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* \brief Test whether views share same variable
|
|
171
|
+
* \ingroup TaskVarView
|
|
172
|
+
*/
|
|
173
|
+
bool shared(const ConstantViewBase&, const ConstantViewBase&);
|
|
174
|
+
/**
|
|
175
|
+
* \brief Test whether views share same variable
|
|
176
|
+
* \ingroup TaskVarView
|
|
177
|
+
*/
|
|
178
|
+
template <class Var>
|
|
179
|
+
bool shared(const VariableViewBase<Var>&, const ConstantViewBase&);
|
|
180
|
+
/**
|
|
181
|
+
* \brief Test whether views share same variable
|
|
182
|
+
* \ingroup TaskVarView
|
|
183
|
+
*/
|
|
184
|
+
template <class ViewA>
|
|
185
|
+
bool shared(const DerivedViewBase<ViewA>&, const ConstantViewBase&);
|
|
186
|
+
/**
|
|
187
|
+
* \brief Test whether views share same variable
|
|
188
|
+
* \ingroup TaskVarView
|
|
189
|
+
*/
|
|
190
|
+
template <class Var>
|
|
191
|
+
bool shared(const ConstantViewBase&, const VariableViewBase<Var>&);
|
|
192
|
+
/**
|
|
193
|
+
* \brief Test whether views share same variable
|
|
194
|
+
* \ingroup TaskVarView
|
|
195
|
+
*/
|
|
196
|
+
template <class ViewA>
|
|
197
|
+
bool shared(const ConstantViewBase&, const DerivedViewBase<ViewA>&);
|
|
198
|
+
/**
|
|
199
|
+
* \brief Test whether views share same variable
|
|
200
|
+
* \ingroup TaskVarView
|
|
201
|
+
*/
|
|
202
|
+
template <class VarA, class VarB>
|
|
203
|
+
bool shared(const VariableViewBase<VarA>&,
|
|
204
|
+
const VariableViewBase<VarB>&);
|
|
205
|
+
/**
|
|
206
|
+
* \brief Test whether views share same variable
|
|
207
|
+
* \ingroup TaskVarView
|
|
208
|
+
*/
|
|
209
|
+
template <class VarA, class ViewB>
|
|
210
|
+
bool shared(const VariableViewBase<VarA>&,
|
|
211
|
+
const DerivedViewBase<ViewB>&);
|
|
212
|
+
/**
|
|
213
|
+
* \brief Test whether views share same variable
|
|
214
|
+
* \ingroup TaskVarView
|
|
215
|
+
*/
|
|
216
|
+
template <class ViewA, class VarB>
|
|
217
|
+
bool shared(const DerivedViewBase<ViewA>&,
|
|
218
|
+
const VariableViewBase<VarB>&);
|
|
219
|
+
/**
|
|
220
|
+
* \brief Test whether views share same variable
|
|
221
|
+
* \ingroup TaskVarView
|
|
222
|
+
*/
|
|
223
|
+
template <class ViewA, class ViewB>
|
|
224
|
+
bool shared(const DerivedViewBase<ViewA>&,
|
|
225
|
+
const DerivedViewBase<ViewB>&);
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* \brief Tuple of views
|
|
230
|
+
*
|
|
231
|
+
* Note that when tuples of views are stored inside
|
|
232
|
+
* ViewArrays, then operations that check for sharing or equality
|
|
233
|
+
* on these arrays do not work like expected.
|
|
234
|
+
* \ingroup TaskVarView
|
|
235
|
+
*/
|
|
236
|
+
template <class View, unsigned int n>
|
|
237
|
+
class ViewTuple {
|
|
238
|
+
private:
|
|
239
|
+
/// The views
|
|
240
|
+
View x[n];
|
|
241
|
+
public:
|
|
242
|
+
/// \name Initialization
|
|
243
|
+
//@{
|
|
244
|
+
/// Default constructor
|
|
245
|
+
ViewTuple(void);
|
|
246
|
+
//@}
|
|
247
|
+
|
|
248
|
+
/// \name Component access
|
|
249
|
+
//@{
|
|
250
|
+
/// Return \a i-th component of tuple
|
|
251
|
+
View& operator[](unsigned int i);
|
|
252
|
+
/// Return \a i-th component of tuple
|
|
253
|
+
const View& operator[](unsigned int i) const;
|
|
254
|
+
//@}
|
|
255
|
+
|
|
256
|
+
/// \name Dependencies
|
|
257
|
+
//@{
|
|
258
|
+
/**
|
|
259
|
+
* \brief Subscribe propagator \a p with propagation condition \a pc to variable
|
|
260
|
+
*
|
|
261
|
+
* In case \a process is false, the propagator is just subscribed but
|
|
262
|
+
* not processed for execution (this must be used when creating
|
|
263
|
+
* subscriptions during propagation).
|
|
264
|
+
*/
|
|
265
|
+
void subscribe(Space*, Propagator* p, PropCond pc, bool process=true);
|
|
266
|
+
/// Cancel subscription of propagator \a p with propagation condition \a pc to view
|
|
267
|
+
void cancel(Space* home, Propagator* p, PropCond pc);
|
|
268
|
+
//@}
|
|
269
|
+
|
|
270
|
+
/// \name Cloning
|
|
271
|
+
//@{
|
|
272
|
+
/// Update this view to be a clone of view tuple \a xs
|
|
273
|
+
void update(Space* home, bool share, ViewTuple& xs);
|
|
274
|
+
//@}
|
|
275
|
+
|
|
276
|
+
private:
|
|
277
|
+
static void* operator new(size_t);
|
|
278
|
+
static void operator delete(void*);
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* \name View comparison
|
|
283
|
+
* \relates ViewTuple
|
|
284
|
+
*/
|
|
285
|
+
//@{
|
|
286
|
+
/// Test whether tuples \a x and \a y are the same
|
|
287
|
+
template <class View, unsigned int n>
|
|
288
|
+
bool same(const ViewTuple<View,n>& x, const ViewTuple<View,n>& y);
|
|
289
|
+
/// Test whether tuple \a x is before \a y (arbitrary order)
|
|
290
|
+
template <class View, unsigned int n>
|
|
291
|
+
bool before(const ViewTuple<View,n>& x, const ViewTuple<View,n>& y);
|
|
292
|
+
//@}
|
|
293
|
+
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* \brief Print tuple of views \a xs
|
|
298
|
+
* \relates ViewTuple
|
|
299
|
+
*/
|
|
300
|
+
template <class View, unsigned int n>
|
|
301
|
+
std::ostream&
|
|
302
|
+
operator<<(std::ostream& os, const Gecode::ViewTuple<View,n>& xy);
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
namespace Gecode {
|
|
306
|
+
|
|
307
|
+
/*
|
|
308
|
+
* Constant view: has no variable implementation
|
|
309
|
+
*
|
|
310
|
+
*/
|
|
311
|
+
forceinline bool
|
|
312
|
+
ConstantViewBase::modified(void) const {
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
forceinline unsigned int
|
|
316
|
+
ConstantViewBase::degree(void) const {
|
|
317
|
+
return 0;
|
|
318
|
+
}
|
|
319
|
+
forceinline bool
|
|
320
|
+
ConstantViewBase::varderived(void) {
|
|
321
|
+
return false;
|
|
322
|
+
}
|
|
323
|
+
forceinline VarBase*
|
|
324
|
+
ConstantViewBase::variable(void) const {
|
|
325
|
+
return NULL;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
/*
|
|
330
|
+
* Variable view: contains a pointer to a variable implementation
|
|
331
|
+
*
|
|
332
|
+
*/
|
|
333
|
+
template <class Var>
|
|
334
|
+
forceinline
|
|
335
|
+
VariableViewBase<Var>::VariableViewBase(void) {}
|
|
336
|
+
template <class Var>
|
|
337
|
+
forceinline
|
|
338
|
+
VariableViewBase<Var>::VariableViewBase(Var* x)
|
|
339
|
+
: var(x) {}
|
|
340
|
+
template <class Var>
|
|
341
|
+
forceinline bool
|
|
342
|
+
VariableViewBase<Var>::varderived(void) {
|
|
343
|
+
return true;
|
|
344
|
+
}
|
|
345
|
+
template <class Var>
|
|
346
|
+
forceinline Var*
|
|
347
|
+
VariableViewBase<Var>::variable(void) const {
|
|
348
|
+
return var;
|
|
349
|
+
}
|
|
350
|
+
template <class Var>
|
|
351
|
+
forceinline bool
|
|
352
|
+
VariableViewBase<Var>::modified(void) const {
|
|
353
|
+
return var->modified();
|
|
354
|
+
}
|
|
355
|
+
template <class Var>
|
|
356
|
+
forceinline unsigned int
|
|
357
|
+
VariableViewBase<Var>::degree(void) const {
|
|
358
|
+
return var->degree();
|
|
359
|
+
}
|
|
360
|
+
template <class Var>
|
|
361
|
+
forceinline void
|
|
362
|
+
VariableViewBase<Var>::subscribe(Space* home, Propagator* p, PropCond pc,
|
|
363
|
+
bool process) {
|
|
364
|
+
var->subscribe(home,p,pc,process);
|
|
365
|
+
}
|
|
366
|
+
template <class Var>
|
|
367
|
+
forceinline void
|
|
368
|
+
VariableViewBase<Var>::cancel(Space* home, Propagator* p, PropCond pc) {
|
|
369
|
+
var->cancel(home,p,pc);
|
|
370
|
+
}
|
|
371
|
+
template <class Var>
|
|
372
|
+
forceinline ModEvent
|
|
373
|
+
VariableViewBase<Var>::pme(const Propagator* p) {
|
|
374
|
+
return Var::pme(p);
|
|
375
|
+
}
|
|
376
|
+
template <class Var>
|
|
377
|
+
forceinline PropModEvent
|
|
378
|
+
VariableViewBase<Var>::pme(ModEvent me) {
|
|
379
|
+
return Var::pme(me);
|
|
380
|
+
}
|
|
381
|
+
template <class Var>
|
|
382
|
+
forceinline ModEvent
|
|
383
|
+
VariableViewBase<Var>::combine(ModEvent me1, ModEvent me2) {
|
|
384
|
+
return Var::combine(me1,me2);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
template <class Var>
|
|
388
|
+
forceinline bool
|
|
389
|
+
same(const VariableViewBase<Var>& x, const VariableViewBase<Var>& y) {
|
|
390
|
+
return x.variable() == y.variable();
|
|
391
|
+
}
|
|
392
|
+
template <class Var>
|
|
393
|
+
forceinline bool
|
|
394
|
+
before(const VariableViewBase<Var>& x, const VariableViewBase<Var>& y) {
|
|
395
|
+
return x.variable() < y.variable();
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/*
|
|
399
|
+
* Derived view: contain the base view from which they are derived
|
|
400
|
+
*
|
|
401
|
+
*/
|
|
402
|
+
|
|
403
|
+
template <class View>
|
|
404
|
+
forceinline
|
|
405
|
+
DerivedViewBase<View>::DerivedViewBase(void) {}
|
|
406
|
+
|
|
407
|
+
template <class View>
|
|
408
|
+
forceinline
|
|
409
|
+
DerivedViewBase<View>::DerivedViewBase(const View& x)
|
|
410
|
+
: view(x) {}
|
|
411
|
+
|
|
412
|
+
template <class View>
|
|
413
|
+
forceinline bool
|
|
414
|
+
DerivedViewBase<View>::varderived(void) {
|
|
415
|
+
return View::varderived();
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
template <class View>
|
|
419
|
+
forceinline typename ViewVarTraits<View>::Var*
|
|
420
|
+
DerivedViewBase<View>::variable(void) const {
|
|
421
|
+
return view.variable();
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
template <class View>
|
|
425
|
+
forceinline View
|
|
426
|
+
DerivedViewBase<View>::base(void) const {
|
|
427
|
+
return view;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
template <class View>
|
|
431
|
+
forceinline bool
|
|
432
|
+
DerivedViewBase<View>::modified(void) const {
|
|
433
|
+
return view.modified();
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
template <class View>
|
|
437
|
+
forceinline unsigned int
|
|
438
|
+
DerivedViewBase<View>::degree(void) const {
|
|
439
|
+
return view.degree();
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
/*
|
|
444
|
+
* Testing whether two views share the same variable
|
|
445
|
+
*
|
|
446
|
+
*/
|
|
447
|
+
|
|
448
|
+
forceinline bool
|
|
449
|
+
shared(const ConstantViewBase&, const ConstantViewBase&) {
|
|
450
|
+
return false;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
template <class Var>
|
|
454
|
+
forceinline bool
|
|
455
|
+
shared(const VariableViewBase<Var>&, const ConstantViewBase&) {
|
|
456
|
+
return false;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
template <class View>
|
|
460
|
+
forceinline bool
|
|
461
|
+
shared(const DerivedViewBase<View>&, const ConstantViewBase&) {
|
|
462
|
+
return false;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
template <class Var>
|
|
466
|
+
forceinline bool
|
|
467
|
+
shared(const ConstantViewBase&, const VariableViewBase<Var>&) {
|
|
468
|
+
return false;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
template <class View>
|
|
472
|
+
forceinline bool
|
|
473
|
+
shared(const ConstantViewBase&, const DerivedViewBase<View>&) {
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
template <class VarA, class VarB>
|
|
478
|
+
forceinline bool
|
|
479
|
+
shared(const VariableViewBase<VarA>& x,
|
|
480
|
+
const VariableViewBase<VarB>& y) {
|
|
481
|
+
return (static_cast<VarBase*>(x.variable()) ==
|
|
482
|
+
static_cast<VarBase*>(y.variable()));
|
|
483
|
+
}
|
|
484
|
+
template <class VarA, class ViewB>
|
|
485
|
+
forceinline bool
|
|
486
|
+
shared(const VariableViewBase<VarA>& x,
|
|
487
|
+
const DerivedViewBase<ViewB>& y) {
|
|
488
|
+
return (ViewB::varderived() &&
|
|
489
|
+
static_cast<VarBase*>(x.variable()) ==
|
|
490
|
+
static_cast<VarBase*>(y.variable()));
|
|
491
|
+
}
|
|
492
|
+
template <class ViewA, class VarB>
|
|
493
|
+
forceinline bool
|
|
494
|
+
shared(const DerivedViewBase<ViewA>& x,
|
|
495
|
+
const VariableViewBase<VarB>& y) {
|
|
496
|
+
return (ViewA::varderived() &&
|
|
497
|
+
static_cast<VarBase*>(x.variable()) ==
|
|
498
|
+
static_cast<VarBase*>(y.variable()));
|
|
499
|
+
}
|
|
500
|
+
template <class ViewA, class ViewB>
|
|
501
|
+
forceinline bool
|
|
502
|
+
shared(const DerivedViewBase<ViewA>& x,
|
|
503
|
+
const DerivedViewBase<ViewB>& y) {
|
|
504
|
+
return (ViewA::varderived() && ViewB::varderived() &&
|
|
505
|
+
static_cast<VarBase*>(x.variable()) ==
|
|
506
|
+
static_cast<VarBase*>(y.variable()));
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
/*
|
|
511
|
+
* Tuple of views
|
|
512
|
+
*
|
|
513
|
+
*/
|
|
514
|
+
template <class View, unsigned int n>
|
|
515
|
+
forceinline
|
|
516
|
+
ViewTuple<View,n>::ViewTuple(void) {}
|
|
517
|
+
|
|
518
|
+
template <class View, unsigned int n>
|
|
519
|
+
forceinline const View&
|
|
520
|
+
ViewTuple<View,n>::operator[](unsigned int i) const {
|
|
521
|
+
assert((i>=0)&&(i<n));
|
|
522
|
+
return x[i];
|
|
523
|
+
}
|
|
524
|
+
template <class View, unsigned int n>
|
|
525
|
+
forceinline View&
|
|
526
|
+
ViewTuple<View,n>::operator[](unsigned int i) {
|
|
527
|
+
assert((i>=0)&&(i<n));
|
|
528
|
+
return x[i];
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
template <class View, unsigned int n>
|
|
532
|
+
forceinline void
|
|
533
|
+
ViewTuple<View,n>::subscribe(Space* home, Propagator* p, PropCond pc,
|
|
534
|
+
bool process) {
|
|
535
|
+
for (unsigned int i=0; i<n; i++)
|
|
536
|
+
x[i].subscribe(home,p,pc,process);
|
|
537
|
+
}
|
|
538
|
+
template <class View, unsigned int n>
|
|
539
|
+
forceinline void
|
|
540
|
+
ViewTuple<View,n>::cancel(Space* home, Propagator* p, PropCond pc) {
|
|
541
|
+
for (unsigned int i=0; i<n; i++)
|
|
542
|
+
x[i].cancel(home,p,pc);
|
|
543
|
+
}
|
|
544
|
+
template <class View, unsigned int n>
|
|
545
|
+
forceinline void
|
|
546
|
+
ViewTuple<View,n>::update(Space* home, bool share, ViewTuple& xs) {
|
|
547
|
+
for (unsigned int i=0; i<n; i++)
|
|
548
|
+
x[i].update(home,share,xs.x[i]);
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
template <class View, unsigned int n>
|
|
552
|
+
forceinline bool
|
|
553
|
+
same(const ViewTuple<View,n>& x, const ViewTuple<View,n>& y) {
|
|
554
|
+
for (unsigned int i=0; i<n; i++)
|
|
555
|
+
if (!same(x[i],y[i]))
|
|
556
|
+
return false;
|
|
557
|
+
return true;
|
|
558
|
+
}
|
|
559
|
+
template <class View, unsigned int n>
|
|
560
|
+
forceinline bool
|
|
561
|
+
before(const ViewTuple<View,n>& x, const ViewTuple<View,n>& y){
|
|
562
|
+
for (unsigned int i=0; i<n; i++)
|
|
563
|
+
if (before(x[i],y[i])) {
|
|
564
|
+
return true;
|
|
565
|
+
} else if (before(y[i],x[i])) {
|
|
566
|
+
return false;
|
|
567
|
+
}
|
|
568
|
+
return false;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
template <class View, unsigned int n>
|
|
574
|
+
inline std::ostream&
|
|
575
|
+
operator<<(std::ostream& os, const Gecode::ViewTuple<View,n>& xs) {
|
|
576
|
+
os << "[";
|
|
577
|
+
for (unsigned int i=0; i<n-1; i++)
|
|
578
|
+
os << xs[i] << ",";
|
|
579
|
+
return os << xs[n-1] << "]";
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
// STATISTICS: kernel-other
|