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,651 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main authors:
|
|
3
|
+
* Guido Tack <tack@gecode.org>
|
|
4
|
+
*
|
|
5
|
+
* Copyright:
|
|
6
|
+
* Guido Tack, 2004
|
|
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
|
+
namespace Gecode { namespace Set {
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* \brief %Range iterator for a two-dimensional array
|
|
26
|
+
* \ingroup TaskActorSetView
|
|
27
|
+
*/
|
|
28
|
+
class ArrayRanges {
|
|
29
|
+
private:
|
|
30
|
+
int *_ranges;
|
|
31
|
+
int _size;
|
|
32
|
+
int _pos;
|
|
33
|
+
public:
|
|
34
|
+
/// \name Constructors and initialization
|
|
35
|
+
//@{
|
|
36
|
+
/// Default constructor
|
|
37
|
+
ArrayRanges() : _ranges(NULL), _size(0), _pos(0) {}
|
|
38
|
+
/// Initialize with ranges for array \a ranges which is of size \a size
|
|
39
|
+
ArrayRanges(int *ranges, int size)
|
|
40
|
+
: _ranges(ranges), _size(size), _pos(0) {}
|
|
41
|
+
/// Initialize with ranges for array \a ranges which is of size \a size
|
|
42
|
+
void init(int* ranges, int size) {
|
|
43
|
+
_ranges = ranges; _size = size; _pos = 0;
|
|
44
|
+
}
|
|
45
|
+
//@}
|
|
46
|
+
|
|
47
|
+
/// \name Iteration control
|
|
48
|
+
//@{
|
|
49
|
+
/// Test whether iterator is still at a range or done
|
|
50
|
+
bool operator()(void) const { return _pos<_size; }
|
|
51
|
+
/// Move iterator to next range (if possible)
|
|
52
|
+
void operator++(void) { _pos++; }
|
|
53
|
+
//@}
|
|
54
|
+
|
|
55
|
+
/// \name Range access
|
|
56
|
+
//@{
|
|
57
|
+
/// Return smallest value of range
|
|
58
|
+
int min(void) const { return _ranges[_pos*2]; }
|
|
59
|
+
/// Return largest value of range
|
|
60
|
+
int max(void) const { return _ranges[_pos*2+1]; }
|
|
61
|
+
/// Return width of range (distance between minimum and maximum)
|
|
62
|
+
unsigned int width(void) const {
|
|
63
|
+
return _ranges[_pos*2+1]-_ranges[_pos*2]+1;
|
|
64
|
+
}
|
|
65
|
+
//@}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
forceinline
|
|
69
|
+
ConstantView::ConstantView(void) : ranges(NULL), size(0), domSize(0) {}
|
|
70
|
+
|
|
71
|
+
forceinline
|
|
72
|
+
ConstantView::ConstantView(Space* home, const IntSet& dom)
|
|
73
|
+
: ranges(NULL), size(dom.size()), domSize(0) {
|
|
74
|
+
if (size > 0) {
|
|
75
|
+
ranges = static_cast<int*>(home->alloc(2*size*sizeof(int)));
|
|
76
|
+
IntSetRanges dr(dom);
|
|
77
|
+
for (int i=0; dr(); ++dr, i+=2) {
|
|
78
|
+
int min = dr.min(); int max = dr.max();
|
|
79
|
+
ranges[i] = min;
|
|
80
|
+
ranges[i+1] = max;
|
|
81
|
+
domSize += (max-min+1);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
forceinline bool
|
|
87
|
+
ConstantView::assigned(void) const { return true; }
|
|
88
|
+
|
|
89
|
+
forceinline unsigned int
|
|
90
|
+
ConstantView::glbSize(void) const { return domSize; }
|
|
91
|
+
|
|
92
|
+
forceinline unsigned int
|
|
93
|
+
ConstantView::lubSize(void) const { return domSize; }
|
|
94
|
+
|
|
95
|
+
forceinline unsigned int
|
|
96
|
+
ConstantView::unknownSize(void) const { return 0; }
|
|
97
|
+
|
|
98
|
+
forceinline bool
|
|
99
|
+
ConstantView::contains(int i) const {
|
|
100
|
+
for (unsigned int j=size; j--; ) {
|
|
101
|
+
if (ranges[2*j+1] < i)
|
|
102
|
+
return false;
|
|
103
|
+
if (ranges[2*j] >= i)
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
forceinline bool
|
|
110
|
+
ConstantView::notContains(int i) const {
|
|
111
|
+
return !contains(i);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
forceinline unsigned int
|
|
115
|
+
ConstantView::cardMin() const { return domSize; }
|
|
116
|
+
|
|
117
|
+
forceinline unsigned int
|
|
118
|
+
ConstantView::cardMax() const { return domSize; }
|
|
119
|
+
|
|
120
|
+
forceinline int
|
|
121
|
+
ConstantView::lubMin() const {
|
|
122
|
+
return size==0 ? BndSet::MIN_OF_EMPTY : ranges[0];
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
forceinline int
|
|
126
|
+
ConstantView::lubMax() const {
|
|
127
|
+
return size==0 ? BndSet::MAX_OF_EMPTY : ranges[size*2-1];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
forceinline int
|
|
131
|
+
ConstantView::glbMin() const { return lubMin(); }
|
|
132
|
+
|
|
133
|
+
forceinline int
|
|
134
|
+
ConstantView::glbMax() const { return lubMax(); }
|
|
135
|
+
|
|
136
|
+
forceinline ModEvent
|
|
137
|
+
ConstantView::cardMin(Space* home,unsigned int c) {
|
|
138
|
+
return c<=domSize ? ME_SET_NONE : ME_SET_FAILED;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
forceinline ModEvent
|
|
142
|
+
ConstantView::cardMax(Space* home,unsigned int c) {
|
|
143
|
+
return c>=domSize ? ME_SET_NONE : ME_SET_FAILED;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
forceinline ModEvent
|
|
147
|
+
ConstantView::include(Space* home,int c) {
|
|
148
|
+
return contains(c) ? ME_SET_NONE : ME_SET_FAILED;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
forceinline ModEvent
|
|
152
|
+
ConstantView::exclude(Space* home,int c) {
|
|
153
|
+
return contains(c) ? ME_SET_FAILED : ME_SET_NONE;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
forceinline ModEvent
|
|
157
|
+
ConstantView::intersect(Space* home,int c) {
|
|
158
|
+
return (size==0 ||
|
|
159
|
+
(size==1 &&
|
|
160
|
+
ranges[0]==ranges[1] && ranges[0]==c)) ?
|
|
161
|
+
ME_SET_NONE : ME_SET_FAILED;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
forceinline ModEvent
|
|
165
|
+
ConstantView::intersect(Space* home,int i,int j) {
|
|
166
|
+
return (glbMin()>=i && glbMax()<=j) ?
|
|
167
|
+
ME_SET_NONE : ME_SET_FAILED;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
forceinline ModEvent
|
|
171
|
+
ConstantView::include(Space* home,int i,int j) {
|
|
172
|
+
Iter::Ranges::Singleton single(i,j);
|
|
173
|
+
ArrayRanges ar(ranges, size);
|
|
174
|
+
return (single() && Iter::Ranges::subset(single, ar)) ?
|
|
175
|
+
ME_SET_NONE : ME_SET_FAILED;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
forceinline ModEvent
|
|
179
|
+
ConstantView::exclude(Space* home,int i,int j) {
|
|
180
|
+
Iter::Ranges::Singleton single(i,j);
|
|
181
|
+
ArrayRanges ar(ranges, size);
|
|
182
|
+
return (single() && Iter::Ranges::subset(single, ar)) ?
|
|
183
|
+
ME_SET_FAILED : ME_SET_NONE;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
template <class I> ModEvent
|
|
187
|
+
ConstantView::excludeI(Space* home,I& i) {
|
|
188
|
+
ArrayRanges ar(ranges, size);
|
|
189
|
+
return (i() && Iter::Ranges::subset(i, ar)) ? ME_SET_FAILED : ME_SET_NONE;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
template <class I> ModEvent
|
|
193
|
+
ConstantView::includeI(Space* home,I& i) {
|
|
194
|
+
ArrayRanges ar(ranges, size);
|
|
195
|
+
return Iter::Ranges::subset(i, ar) ? ME_SET_NONE : ME_SET_FAILED;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
template <class I> ModEvent
|
|
199
|
+
ConstantView::intersectI(Space* home,I& i) {
|
|
200
|
+
ArrayRanges ar(ranges, size);
|
|
201
|
+
return Iter::Ranges::subset(ar, i) ? ME_SET_NONE : ME_SET_FAILED;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
forceinline void
|
|
205
|
+
ConstantView::subscribe(Space* home,Propagator*,PropCond,bool) {}
|
|
206
|
+
forceinline void
|
|
207
|
+
ConstantView::cancel(Space* home, Propagator*,PropCond) {}
|
|
208
|
+
|
|
209
|
+
forceinline ModEvent
|
|
210
|
+
ConstantView::pme(const Propagator*) {
|
|
211
|
+
return ME_SET_NONE;
|
|
212
|
+
}
|
|
213
|
+
forceinline PropModEvent
|
|
214
|
+
ConstantView::pme(ModEvent me) {
|
|
215
|
+
return SetVarImp::pme(me);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
forceinline void
|
|
219
|
+
ConstantView::update(Space* home, bool share, ConstantView& p) {
|
|
220
|
+
// dispose old ranges
|
|
221
|
+
if (size>0) {
|
|
222
|
+
home->reuse(ranges, 2*size*sizeof(int));
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
domSize = p.domSize;
|
|
226
|
+
size = p.size;
|
|
227
|
+
if (size == 0) {
|
|
228
|
+
ranges = NULL;
|
|
229
|
+
} else {
|
|
230
|
+
// copy ranges from p
|
|
231
|
+
ranges = static_cast<int*>(home->alloc(2*size*sizeof(int)));
|
|
232
|
+
for (unsigned int i=size; i--; ) {
|
|
233
|
+
ranges[2*i] = p.ranges[2*i];
|
|
234
|
+
ranges[2*i+1] = p.ranges[2*i+1];
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
forceinline
|
|
240
|
+
EmptyView::EmptyView(void) {}
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
forceinline bool
|
|
244
|
+
EmptyView::assigned(void) const { return true; }
|
|
245
|
+
|
|
246
|
+
forceinline unsigned int
|
|
247
|
+
EmptyView::glbSize(void) const { return 0; }
|
|
248
|
+
|
|
249
|
+
forceinline unsigned int
|
|
250
|
+
EmptyView::lubSize(void) const { return 0; }
|
|
251
|
+
|
|
252
|
+
forceinline unsigned int
|
|
253
|
+
EmptyView::unknownSize(void) const { return 0; }
|
|
254
|
+
|
|
255
|
+
forceinline bool
|
|
256
|
+
EmptyView::contains(int) const { return false; }
|
|
257
|
+
|
|
258
|
+
forceinline bool
|
|
259
|
+
EmptyView::notContains(int) const { return true; }
|
|
260
|
+
|
|
261
|
+
forceinline unsigned int
|
|
262
|
+
EmptyView::cardMin() const { return 0; }
|
|
263
|
+
|
|
264
|
+
forceinline unsigned int
|
|
265
|
+
EmptyView::cardMax() const { return 0; }
|
|
266
|
+
|
|
267
|
+
forceinline int
|
|
268
|
+
EmptyView::lubMin() const { return 0; }
|
|
269
|
+
|
|
270
|
+
forceinline int
|
|
271
|
+
EmptyView::lubMax() const { return 0; }
|
|
272
|
+
|
|
273
|
+
forceinline int
|
|
274
|
+
EmptyView::glbMin() const { return 0; }
|
|
275
|
+
|
|
276
|
+
forceinline int
|
|
277
|
+
EmptyView::glbMax() const { return 0; }
|
|
278
|
+
|
|
279
|
+
forceinline ModEvent
|
|
280
|
+
EmptyView::cardMin(Space* home,unsigned int c) {
|
|
281
|
+
return c==0 ? ME_SET_NONE : ME_SET_FAILED;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
forceinline ModEvent
|
|
285
|
+
EmptyView::cardMax(Space* home,unsigned int c) {
|
|
286
|
+
return ME_SET_NONE;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
forceinline ModEvent
|
|
291
|
+
EmptyView::include(Space* home,int) {
|
|
292
|
+
return ME_SET_FAILED;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
forceinline ModEvent
|
|
296
|
+
EmptyView::exclude(Space* home,int) { return ME_SET_NONE; }
|
|
297
|
+
|
|
298
|
+
forceinline ModEvent
|
|
299
|
+
EmptyView::intersect(Space* home,int) { return ME_SET_NONE; }
|
|
300
|
+
|
|
301
|
+
forceinline ModEvent
|
|
302
|
+
EmptyView::intersect(Space* home,int,int) { return ME_SET_NONE; }
|
|
303
|
+
|
|
304
|
+
forceinline ModEvent
|
|
305
|
+
EmptyView::include(Space* home,int,int) {
|
|
306
|
+
return ME_SET_FAILED; }
|
|
307
|
+
|
|
308
|
+
forceinline ModEvent
|
|
309
|
+
EmptyView::exclude(Space* home,int,int) { return ME_SET_NONE; }
|
|
310
|
+
|
|
311
|
+
template <class I> ModEvent
|
|
312
|
+
EmptyView::excludeI(Space* home,I&) { return ME_SET_NONE; }
|
|
313
|
+
|
|
314
|
+
template <class I> ModEvent
|
|
315
|
+
EmptyView::includeI(Space* home,I& i) {
|
|
316
|
+
return i() ? ME_SET_FAILED : ME_SET_NONE;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
template <class I> ModEvent
|
|
320
|
+
EmptyView::intersectI(Space* home,I&) {
|
|
321
|
+
return ME_SET_NONE;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
forceinline void
|
|
325
|
+
EmptyView::subscribe(Space* home,Propagator*,PropCond,bool) {}
|
|
326
|
+
forceinline void
|
|
327
|
+
EmptyView::cancel(Space* home, Propagator*,PropCond) {}
|
|
328
|
+
|
|
329
|
+
forceinline ModEvent
|
|
330
|
+
EmptyView::pme(const Propagator*) {
|
|
331
|
+
return ME_SET_NONE;
|
|
332
|
+
}
|
|
333
|
+
forceinline PropModEvent
|
|
334
|
+
EmptyView::pme(ModEvent me) {
|
|
335
|
+
return SetVarImp::pme(me);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
forceinline void
|
|
339
|
+
EmptyView::update(Space* home, bool, EmptyView&) {}
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
// Constant universe variable
|
|
344
|
+
|
|
345
|
+
forceinline
|
|
346
|
+
UniverseView::UniverseView(void) {}
|
|
347
|
+
|
|
348
|
+
forceinline bool
|
|
349
|
+
UniverseView::assigned(void) const { return true; }
|
|
350
|
+
|
|
351
|
+
forceinline unsigned int
|
|
352
|
+
UniverseView::glbSize(void) const { return Limits::Set::card_max; }
|
|
353
|
+
|
|
354
|
+
forceinline unsigned int
|
|
355
|
+
UniverseView::lubSize(void) const { return Limits::Set::card_max; }
|
|
356
|
+
|
|
357
|
+
forceinline unsigned int
|
|
358
|
+
UniverseView::unknownSize(void) const { return 0; }
|
|
359
|
+
|
|
360
|
+
forceinline bool
|
|
361
|
+
UniverseView::contains(int) const { return true; }
|
|
362
|
+
|
|
363
|
+
forceinline bool
|
|
364
|
+
UniverseView::notContains(int) const { return false; }
|
|
365
|
+
|
|
366
|
+
forceinline unsigned int
|
|
367
|
+
UniverseView::cardMin() const { return Limits::Set::card_max; }
|
|
368
|
+
|
|
369
|
+
forceinline unsigned int
|
|
370
|
+
UniverseView::cardMax() const { return Limits::Set::card_max; }
|
|
371
|
+
|
|
372
|
+
forceinline int
|
|
373
|
+
UniverseView::lubMin() const { return Limits::Set::card_max; }
|
|
374
|
+
|
|
375
|
+
forceinline int
|
|
376
|
+
UniverseView::lubMax() const { return Limits::Set::card_max; }
|
|
377
|
+
|
|
378
|
+
forceinline int
|
|
379
|
+
UniverseView::glbMin() const { return Limits::Set::card_max; }
|
|
380
|
+
|
|
381
|
+
forceinline int
|
|
382
|
+
UniverseView::glbMax() const { return Limits::Set::card_max; }
|
|
383
|
+
|
|
384
|
+
forceinline ModEvent
|
|
385
|
+
UniverseView::cardMin(Space* home,unsigned int c) {
|
|
386
|
+
return c>Limits::Set::card_max ? ME_SET_FAILED : ME_SET_NONE;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
forceinline ModEvent
|
|
390
|
+
UniverseView::cardMax(Space* home,unsigned int c) {
|
|
391
|
+
return c>=Limits::Set::card_max ? ME_SET_NONE : ME_SET_FAILED;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
forceinline ModEvent
|
|
396
|
+
UniverseView::include(Space* home,int) {
|
|
397
|
+
return ME_SET_NONE;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
forceinline ModEvent
|
|
401
|
+
UniverseView::exclude(Space* home,int) { return ME_SET_FAILED; }
|
|
402
|
+
|
|
403
|
+
forceinline ModEvent
|
|
404
|
+
UniverseView::intersect(Space* home,int) { return ME_SET_FAILED; }
|
|
405
|
+
|
|
406
|
+
forceinline ModEvent
|
|
407
|
+
UniverseView::include(Space* home,int,int) { return ME_SET_NONE; }
|
|
408
|
+
|
|
409
|
+
forceinline ModEvent
|
|
410
|
+
UniverseView::exclude(Space* home,int,int) { return ME_SET_FAILED; }
|
|
411
|
+
|
|
412
|
+
template <class I> ModEvent
|
|
413
|
+
UniverseView::excludeI(Space* home,I& i) {
|
|
414
|
+
return i() ? ME_SET_FAILED : ME_SET_NONE;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
template <class I> forceinline ModEvent
|
|
418
|
+
UniverseView::includeI(Space* home,I&) { return ME_SET_NONE; }
|
|
419
|
+
|
|
420
|
+
forceinline ModEvent
|
|
421
|
+
UniverseView::intersect(Space* home,int i,int j) {
|
|
422
|
+
return (i>Limits::Set::int_min ||
|
|
423
|
+
i<Limits::Set::int_max) ? ME_SET_FAILED : ME_SET_NONE;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
template <class I> forceinline ModEvent
|
|
427
|
+
UniverseView::intersectI(Space* home,I& i) {
|
|
428
|
+
return (i() &&
|
|
429
|
+
(i.min()>Limits::Set::int_min ||
|
|
430
|
+
i.max()<Limits::Set::int_max) ) ?
|
|
431
|
+
ME_SET_FAILED : ME_SET_NONE;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
forceinline void
|
|
435
|
+
UniverseView::subscribe(Space* home,Propagator*,PropCond,bool) {}
|
|
436
|
+
forceinline void
|
|
437
|
+
UniverseView::cancel(Space* home, Propagator*,PropCond) {}
|
|
438
|
+
|
|
439
|
+
forceinline ModEvent
|
|
440
|
+
UniverseView::pme(const Propagator*) {
|
|
441
|
+
return ME_SET_NONE;
|
|
442
|
+
}
|
|
443
|
+
forceinline PropModEvent
|
|
444
|
+
UniverseView::pme(ModEvent me) {
|
|
445
|
+
return SetVarImp::pme(me);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
forceinline void
|
|
449
|
+
UniverseView::update(Space* home, bool, UniverseView&) {}
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
/*
|
|
455
|
+
* Iterators
|
|
456
|
+
*
|
|
457
|
+
*/
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* \brief %Range iterator for least upper bound of constantly empty set view
|
|
461
|
+
* \ingroup TaskActorSetView
|
|
462
|
+
*/
|
|
463
|
+
template <>
|
|
464
|
+
class LubRanges<EmptyView> : public Iter::Ranges::Empty {
|
|
465
|
+
public:
|
|
466
|
+
/// \name Constructors and initialization
|
|
467
|
+
//@{
|
|
468
|
+
/// Default constructor
|
|
469
|
+
LubRanges(void) {}
|
|
470
|
+
/// Initialize with ranges for view \a x
|
|
471
|
+
LubRanges(const EmptyView& x) {}
|
|
472
|
+
/// Initialize with ranges for view \a x
|
|
473
|
+
void init(const EmptyView& x) {}
|
|
474
|
+
//@}
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* \brief %Range iterator for greatesr lower bound of constantly empty set view
|
|
479
|
+
* \ingroup TaskActorSetView
|
|
480
|
+
*/
|
|
481
|
+
template <>
|
|
482
|
+
class GlbRanges<EmptyView> : public Iter::Ranges::Empty {
|
|
483
|
+
public:
|
|
484
|
+
/// \name Constructors and initialization
|
|
485
|
+
//@{
|
|
486
|
+
/// Default constructor
|
|
487
|
+
GlbRanges(void) {}
|
|
488
|
+
/// Initialize with ranges for view \a x
|
|
489
|
+
GlbRanges(const EmptyView& x) {}
|
|
490
|
+
/// Initialize with ranges for view \a x
|
|
491
|
+
void init(const EmptyView& x) {}
|
|
492
|
+
//@}
|
|
493
|
+
};
|
|
494
|
+
|
|
495
|
+
/**
|
|
496
|
+
* \brief %Range iterator for least upper bound of constant universe set view
|
|
497
|
+
* \ingroup TaskActorSetView
|
|
498
|
+
*/
|
|
499
|
+
template <>
|
|
500
|
+
class LubRanges<UniverseView> : public Iter::Ranges::Singleton {
|
|
501
|
+
public:
|
|
502
|
+
/// \name Constructors and initialization
|
|
503
|
+
//@{
|
|
504
|
+
/// Default constructor
|
|
505
|
+
LubRanges(void)
|
|
506
|
+
: Iter::Ranges::Singleton(Limits::Set::int_min,
|
|
507
|
+
Limits::Set::int_max) {}
|
|
508
|
+
/// Initialize with ranges for view \a x
|
|
509
|
+
LubRanges(const UniverseView& x)
|
|
510
|
+
: Iter::Ranges::Singleton(Limits::Set::int_min,
|
|
511
|
+
Limits::Set::int_max) {}
|
|
512
|
+
/// Initialize with ranges for view \a x
|
|
513
|
+
void init(const UniverseView& x) {}
|
|
514
|
+
//@}
|
|
515
|
+
};
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* \brief %Range iterator for greatest lower bound of constant universe set view
|
|
519
|
+
* \ingroup TaskActorSetView
|
|
520
|
+
*/
|
|
521
|
+
template <>
|
|
522
|
+
class GlbRanges<UniverseView> : public Iter::Ranges::Singleton {
|
|
523
|
+
public:
|
|
524
|
+
/// \name Constructors and initialization
|
|
525
|
+
//@{
|
|
526
|
+
/// Default constructor
|
|
527
|
+
GlbRanges(void)
|
|
528
|
+
: Iter::Ranges::Singleton(Limits::Set::int_min,
|
|
529
|
+
Limits::Set::int_max) {}
|
|
530
|
+
/// Initialize with ranges for view \a x
|
|
531
|
+
GlbRanges(const UniverseView& x)
|
|
532
|
+
: Iter::Ranges::Singleton(Limits::Set::int_min,
|
|
533
|
+
Limits::Set::int_max) {}
|
|
534
|
+
/// Initialize with ranges for view \a x
|
|
535
|
+
void init(const UniverseView& x) {}
|
|
536
|
+
//@}
|
|
537
|
+
};
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* \brief %Range iterator for least upper bound of constant set view
|
|
542
|
+
* \ingroup TaskActorSetView
|
|
543
|
+
*/
|
|
544
|
+
template <>
|
|
545
|
+
class LubRanges<ConstantView> {
|
|
546
|
+
private:
|
|
547
|
+
ArrayRanges ar;
|
|
548
|
+
public:
|
|
549
|
+
/// \name Constructors and initialization
|
|
550
|
+
//@{
|
|
551
|
+
/// Default constructor
|
|
552
|
+
LubRanges(void) {}
|
|
553
|
+
/// Initialize with ranges for view \a x
|
|
554
|
+
LubRanges(const ConstantView& x) : ar(x.ranges,x.size) {}
|
|
555
|
+
/// Initialize with ranges for view \a x
|
|
556
|
+
void init(const ConstantView& x) {
|
|
557
|
+
ar.init(x.ranges,x.size);
|
|
558
|
+
}
|
|
559
|
+
//@}
|
|
560
|
+
|
|
561
|
+
/// \name Iteration control
|
|
562
|
+
//@{
|
|
563
|
+
/// Test whether iterator is still at a value or done
|
|
564
|
+
bool operator()(void) const { return ar(); }
|
|
565
|
+
/// Move iterator to next value (if possible)
|
|
566
|
+
void operator++(void) { ++ar; }
|
|
567
|
+
//@}
|
|
568
|
+
|
|
569
|
+
/// \name Range access
|
|
570
|
+
//@{
|
|
571
|
+
/// Return smallest value of range
|
|
572
|
+
int min(void) const { return ar.min(); }
|
|
573
|
+
/// Return largest value of range
|
|
574
|
+
int max(void) const { return ar.max(); }
|
|
575
|
+
/// Return width of range (distance between minimum and maximum)
|
|
576
|
+
unsigned int width(void) const { return ar.width(); }
|
|
577
|
+
//@}
|
|
578
|
+
};
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* \brief %Range iterator for greatest lower bound of constant set view
|
|
582
|
+
* \ingroup TaskActorSetView
|
|
583
|
+
*/
|
|
584
|
+
template <>
|
|
585
|
+
class GlbRanges<ConstantView> : public LubRanges<ConstantView> {
|
|
586
|
+
public:
|
|
587
|
+
/// \name Constructors and initialization
|
|
588
|
+
//@{
|
|
589
|
+
/// Default constructor
|
|
590
|
+
GlbRanges(void) {}
|
|
591
|
+
/// Initialize with ranges for view \a x
|
|
592
|
+
GlbRanges(const ConstantView& x) : LubRanges<ConstantView>(x) {}
|
|
593
|
+
/// Initialize with ranges for view \a x
|
|
594
|
+
void init(const ConstantView& x) {
|
|
595
|
+
LubRanges<ConstantView>::init(x);
|
|
596
|
+
}
|
|
597
|
+
//@}
|
|
598
|
+
};
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
/*
|
|
603
|
+
* Testing
|
|
604
|
+
*
|
|
605
|
+
*/
|
|
606
|
+
forceinline bool
|
|
607
|
+
same(const Set::ConstantView& x, const Set::ConstantView& y) {
|
|
608
|
+
if ((x.size != y.size) || (x.domSize != y.domSize))
|
|
609
|
+
return false;
|
|
610
|
+
for (int i=x.size; i--; )
|
|
611
|
+
if (x.ranges[2*i] != y.ranges[2*i] ||
|
|
612
|
+
x.ranges[2*i+1] != y.ranges[2*i+1])
|
|
613
|
+
return false;
|
|
614
|
+
return true;
|
|
615
|
+
}
|
|
616
|
+
forceinline bool
|
|
617
|
+
before(const Set::ConstantView& x, const Set::ConstantView& y) {
|
|
618
|
+
if (x.size < y.size)
|
|
619
|
+
return true;
|
|
620
|
+
if (x.domSize < y.domSize)
|
|
621
|
+
return true;
|
|
622
|
+
for (int i=x.size; i--; )
|
|
623
|
+
if (x.ranges[2*i] < y.ranges[2*i] ||
|
|
624
|
+
x.ranges[2*i+1] < y.ranges[2*i+1])
|
|
625
|
+
return true;
|
|
626
|
+
return false;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
forceinline bool
|
|
631
|
+
same(const Set::EmptyView&, const Set::EmptyView&) {
|
|
632
|
+
return true;
|
|
633
|
+
}
|
|
634
|
+
forceinline bool
|
|
635
|
+
before(const Set::EmptyView&, const Set::EmptyView&) {
|
|
636
|
+
return false;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
forceinline bool
|
|
640
|
+
same(const Set::UniverseView&, const Set::UniverseView&) {
|
|
641
|
+
return true;
|
|
642
|
+
}
|
|
643
|
+
forceinline bool
|
|
644
|
+
before(const Set::UniverseView&, const Set::UniverseView&) {
|
|
645
|
+
return false;
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
// STATISTICS: set-var
|
|
651
|
+
|