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,132 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* Main authors:
|
|
4
|
+
* Gr�goire Dooms <dooms@info.ucl.ac.be>
|
|
5
|
+
*
|
|
6
|
+
* Copyright:
|
|
7
|
+
* Gr�goire Dooms (Universit� catholique de Louvain), 2005
|
|
8
|
+
*
|
|
9
|
+
* Last modified:
|
|
10
|
+
* $Date: 2005-11-29 10:57:21 +0100 (Tue, 29 Nov 2005) $
|
|
11
|
+
* $Revision: 271 $
|
|
12
|
+
*
|
|
13
|
+
* This file is part of CP(Graph)
|
|
14
|
+
*
|
|
15
|
+
* See the file "contribs/graph/LICENSE" for information on usage and
|
|
16
|
+
* redistribution of this file, and for a
|
|
17
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
* No code, just contains the group definitions of the
|
|
24
|
+
* Doxygen-generated documentation
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* \defgroup TaskProp Programming propagators for graph constraints
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* \defgroup TaskPropViews Graph views used for programming propagators
|
|
33
|
+
* \ingroup TaskProp
|
|
34
|
+
*
|
|
35
|
+
* Graph constraints are posted on graph views ( OutAdjSetsGraphViews and
|
|
36
|
+
* NodeArcSetsGraphViews ). These views provide reflection methods to consult
|
|
37
|
+
* the current state of the domain of the variable(view). Among these
|
|
38
|
+
* reflection methods, you can find iteration methods which return an iterator
|
|
39
|
+
* over one of the bounds of the graph domain.
|
|
40
|
+
*
|
|
41
|
+
* The views also provide basic and iterator tells for updating the domains.
|
|
42
|
+
* These methods return a ModEvent, a modification event which indicates which
|
|
43
|
+
* part of the domain was changed. These tells must be surrounded by the
|
|
44
|
+
* GECODE_ME_CHECK macro which returns from the propagator as soon as the space
|
|
45
|
+
* is failed as a failed space cannot be used in any later tells.
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* \defgroup TaskPropIter Additional iteration for graph constraints.
|
|
51
|
+
* \ingroup TaskProp
|
|
52
|
+
*
|
|
53
|
+
* In addition to the iterator reflection and tells provided by the views,
|
|
54
|
+
* generic iteration functions are provided. These functions take one or two
|
|
55
|
+
* graphs and scan their domains. A visitor object is passed as an argument and
|
|
56
|
+
* its callback functions called accordingly. For instance, with
|
|
57
|
+
* scanTwoGraphsCompleteNodeArcs, An node iterator is passed as argument. The
|
|
58
|
+
* function then scans all possible arcs build using couple of nodes in that
|
|
59
|
+
* iterator. A method of the visitor is called according to the
|
|
60
|
+
* presence/absence of this arc in the domains of two graph views. The possible
|
|
61
|
+
* states are None, Lub, and Glb if the arc (resp.) cannot , can, and must be
|
|
62
|
+
* part of the graph. The methods are named after the state of the arc in both
|
|
63
|
+
* graph domains e.g NoneNone or LubGlb.
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* \defgroup TaskPropGraph Graph data-structures for graph algorithm in propagators and branchings
|
|
68
|
+
* \ingroup TaskProp
|
|
69
|
+
*
|
|
70
|
+
* The CP(Graph) framework also provides the BoundsGraphs class.
|
|
71
|
+
* This class provides a graph data-structure for both bounds of the graph
|
|
72
|
+
* domain. This allows to easily use graph algorithms in a graph propagator.
|
|
73
|
+
*
|
|
74
|
+
* A propagator defines a class inheriting from BoundsGraphs. In that children
|
|
75
|
+
* class, propagation steps are implemented by using graph algorithms. Then
|
|
76
|
+
* the propagate method of the Propagator calls these methods on an instance
|
|
77
|
+
* of the BoundsGraphs class. The process is examplified in the path
|
|
78
|
+
* constraint.
|
|
79
|
+
*
|
|
80
|
+
* The Boost Graph Library http://www.boost.org/libs/graph/ was chosen for its
|
|
81
|
+
* genericity, adaptability and number of available graph algorihtms. The
|
|
82
|
+
* graph members of the BoundsGraphs class are encoding the bounds of the graph
|
|
83
|
+
* domain. They have a boost graph interface.
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
/** \defgroup TaskModel Modelling problems involving graph variables and
|
|
87
|
+
* constraints.
|
|
88
|
+
*
|
|
89
|
+
* In Gecode, Var is used for modelling, View for propagators and branching and
|
|
90
|
+
* Imp for the underlying implementations. CP(Graph) uses graph views for all
|
|
91
|
+
* of these tasks. This means the graph views must be used with great caution.
|
|
92
|
+
* When the tells are used in modelling, they must be surrounded by a check for
|
|
93
|
+
* Space failure.
|
|
94
|
+
*
|
|
95
|
+
* Two constraints specific to graphs are currently available: the complement constraint
|
|
96
|
+
* and two path constraints. Constraints are posted on graph views using a function e.g. path and complement.
|
|
97
|
+
*
|
|
98
|
+
* The two set-based graph views currently available allow you to post set constraints on the underlying set variables.
|
|
99
|
+
* For instance if you wish to constrain the out-degree of node 4 to be 3, you
|
|
100
|
+
* can use the OutAdjSetsGraphView g and post the cardinality set constraint on
|
|
101
|
+
* g.outN[4]: cardinality(this, g.outN[4], 3, g.outN[4].cardMax());
|
|
102
|
+
*
|
|
103
|
+
* Other graph specific constraints are under investigation. If you wish to
|
|
104
|
+
* design and implement new ones, please contact Gr�goire Dooms at
|
|
105
|
+
* dooms@info.ucl.ac.be to avoid duplicate work.
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
/** \defgroup TaskModelBranch Programming search heuristics for graph problems.
|
|
109
|
+
* \ingroup TaskModel
|
|
110
|
+
*
|
|
111
|
+
* UnaryGraphBranching, a class inheriting from Branching is provided with
|
|
112
|
+
* CP(Graph). This class allows to define search heuristics which perform a
|
|
113
|
+
* binary choice of inclusion or exclusion of a node or arc from a single graph
|
|
114
|
+
* view.
|
|
115
|
+
*
|
|
116
|
+
* It uses a BoundsGraphs::branch method which can use graph algorithms to
|
|
117
|
+
* decide on which node or arc to choose. This branch method must return a
|
|
118
|
+
* BranchingDesc a description of the branching decision. Two classes are
|
|
119
|
+
* provided for implementing branching Description for the UnaryGraphBranching:
|
|
120
|
+
* GraphBDSingle and GraphBDMultiple. GraphBDSingle should be used if your
|
|
121
|
+
* search heuristic always chooses arcs or always chooses nodes to branch on.
|
|
122
|
+
* If the search tree interleaves choices about the nodes and choices about the
|
|
123
|
+
* arcs, then GraphBDMultiple should be used. See CPGraphSimplePathHeur and
|
|
124
|
+
* PathHeurBoundsG for examples.
|
|
125
|
+
*/
|
|
126
|
+
|
|
127
|
+
/** \defgroup Examples Examples/Tests
|
|
128
|
+
*
|
|
129
|
+
* Some Examples or tests of the constraints and views are provided too. They
|
|
130
|
+
* are implemented by inheriting from the Examples class.
|
|
131
|
+
*/
|
|
132
|
+
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* Main authors:
|
|
4
|
+
* Gr�goire Dooms <dooms@info.ucl.ac.be>
|
|
5
|
+
*
|
|
6
|
+
* Copyright:
|
|
7
|
+
* Gr�goire Dooms (Universit� catholique de Louvain), 2005
|
|
8
|
+
*
|
|
9
|
+
* Last modified:
|
|
10
|
+
* $Date: 2005-11-29 10:57:21 +0100 (Tue, 29 Nov 2005) $
|
|
11
|
+
* $Revision: 271 $
|
|
12
|
+
*
|
|
13
|
+
* This file is part of CP(Graph)
|
|
14
|
+
*
|
|
15
|
+
* See the file "contribs/graph/LICENSE" for information on usage and
|
|
16
|
+
* redistribution of this file, and for a
|
|
17
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
#include "examples/support.hh"
|
|
22
|
+
#include "graphutils.icc"
|
|
23
|
+
#include "graph.hh"
|
|
24
|
+
using namespace Gecode::Graph;
|
|
25
|
+
/** \brief Most basic example possible for OutAdjSetsGraphView
|
|
26
|
+
*
|
|
27
|
+
* instantiate the View and distribute in a naive way.
|
|
28
|
+
* \ingroup Examples
|
|
29
|
+
*/
|
|
30
|
+
class CPGraphBasic: public Example {
|
|
31
|
+
private:
|
|
32
|
+
OutAdjSetsGraphView g1;
|
|
33
|
+
public:
|
|
34
|
+
/// Constructor with unused options
|
|
35
|
+
CPGraphBasic(const Options& opt): g1(this,loadGraph("g1.txt")){
|
|
36
|
+
cout << g1 << endl;
|
|
37
|
+
g1.distrib(this);
|
|
38
|
+
}
|
|
39
|
+
/// Constructor for cloning \a s
|
|
40
|
+
CPGraphBasic(bool share, CPGraphBasic& s) : Example(share,s){
|
|
41
|
+
g1.update(this, share, s.g1);
|
|
42
|
+
}
|
|
43
|
+
/// Copying during cloning
|
|
44
|
+
virtual Space*
|
|
45
|
+
copy(bool share) {
|
|
46
|
+
return new CPGraphBasic(share,*this);
|
|
47
|
+
}
|
|
48
|
+
/// Print the solution
|
|
49
|
+
virtual void
|
|
50
|
+
print(void) {
|
|
51
|
+
std::cout << "\tg1 = " << g1 << std::endl;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
/** \brief Most basic example possible for NodeArcSetsGraphView
|
|
55
|
+
*
|
|
56
|
+
* instantiate the View and distribute in a naive way.
|
|
57
|
+
* \ingroup Examples
|
|
58
|
+
*/
|
|
59
|
+
class CPGraphBasic2vars: public Example {
|
|
60
|
+
private:
|
|
61
|
+
NodeArcSetsGraphView g1;
|
|
62
|
+
public:
|
|
63
|
+
/// Constructor with unused options
|
|
64
|
+
CPGraphBasic2vars(const Options& opt): g1(this,new ArcNode(loadGraph("g1.txt").second),loadGraph("g1.txt")){
|
|
65
|
+
g1.distrib(this);
|
|
66
|
+
}
|
|
67
|
+
/// Constructor for cloning \a s
|
|
68
|
+
CPGraphBasic2vars(bool share, CPGraphBasic2vars& s) : Example(share,s){
|
|
69
|
+
g1.update(this, share, s.g1);
|
|
70
|
+
}
|
|
71
|
+
/// Copying during cloning
|
|
72
|
+
virtual Space*
|
|
73
|
+
copy(bool share) {
|
|
74
|
+
return new CPGraphBasic2vars(share,*this);
|
|
75
|
+
}
|
|
76
|
+
/// Print the solution
|
|
77
|
+
virtual void
|
|
78
|
+
print(void) {
|
|
79
|
+
std::cout << "\tg1 = " << g1 << std::endl;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
int
|
|
83
|
+
main(int argc, char** argv) {
|
|
84
|
+
Options opt("CPGraphBasic");
|
|
85
|
+
opt.icl = ICL_DOM;
|
|
86
|
+
opt.solutions = 0;
|
|
87
|
+
opt.parse(argc,argv);
|
|
88
|
+
if (opt.size == 2){
|
|
89
|
+
Example::run<CPGraphBasic2vars,DFS>(opt);
|
|
90
|
+
}else{
|
|
91
|
+
Example::run<CPGraphBasic,DFS>(opt);
|
|
92
|
+
}
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* Main authors:
|
|
4
|
+
* Gr�goire Dooms <dooms@info.ucl.ac.be>
|
|
5
|
+
*
|
|
6
|
+
* Copyright:
|
|
7
|
+
* Gr�goire Dooms (Universit� catholique de Louvain), 2005
|
|
8
|
+
*
|
|
9
|
+
* Last modified:
|
|
10
|
+
* $Date: 2005-11-29 10:57:21 +0100 (Tue, 29 Nov 2005) $
|
|
11
|
+
* $Revision: 271 $
|
|
12
|
+
*
|
|
13
|
+
* This file is part of CP(Graph)
|
|
14
|
+
*
|
|
15
|
+
* See the file "contribs/graph/LICENSE" for information on usage and
|
|
16
|
+
* redistribution of this file, and for a
|
|
17
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
#include "examples/support.hh"
|
|
22
|
+
#include "graphutils.icc"
|
|
23
|
+
#include "graph.hh"
|
|
24
|
+
using namespace Gecode::Graph;
|
|
25
|
+
|
|
26
|
+
/** \brief Example to test the Complement constraint with OutAdjSetsGraphView
|
|
27
|
+
* \ingroup Examples
|
|
28
|
+
* */
|
|
29
|
+
class CPGraphComplement: public Example {
|
|
30
|
+
private:
|
|
31
|
+
OutAdjSetsGraphView g1;
|
|
32
|
+
OutAdjSetsGraphView g2;
|
|
33
|
+
public:
|
|
34
|
+
/// Constructor with unused options
|
|
35
|
+
CPGraphComplement(const Options& opt): g1(this,loadGraph("g1.txt")), g2(this,loadGraph("g1.txt").first.size()){
|
|
36
|
+
complement(this,g1,g2);
|
|
37
|
+
g1.distrib(this);
|
|
38
|
+
}
|
|
39
|
+
/// Constructor for cloning \a s
|
|
40
|
+
CPGraphComplement(bool share, CPGraphComplement& s) : Example(share,s){
|
|
41
|
+
g1.update(this, share, s.g1);
|
|
42
|
+
g2.update(this, share, s.g2);
|
|
43
|
+
}
|
|
44
|
+
/// Copying during cloning
|
|
45
|
+
virtual Space*
|
|
46
|
+
copy(bool share) {
|
|
47
|
+
return new CPGraphComplement(share,*this);
|
|
48
|
+
}
|
|
49
|
+
/// Print the solution
|
|
50
|
+
virtual void
|
|
51
|
+
print(void) {
|
|
52
|
+
std::cout << std::endl << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
|
|
53
|
+
std::cout << "g1 = " << g1 << std::endl;
|
|
54
|
+
std::cout << "g2 = " << g2 << std::endl;
|
|
55
|
+
std::cout << std::endl << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/** \brief Example to test the Complement constraint with NodeArcSetsGraphView
|
|
60
|
+
* \ingroup Examples
|
|
61
|
+
* */
|
|
62
|
+
class CPGraphComplement2vars: public Example {
|
|
63
|
+
private:
|
|
64
|
+
ArcNode *an ; //used for member init
|
|
65
|
+
NodeArcSetsGraphView g1;
|
|
66
|
+
NodeArcSetsGraphView g2;
|
|
67
|
+
public:
|
|
68
|
+
/// Constructor with unused options
|
|
69
|
+
CPGraphComplement2vars(const Options& opt): an(new ArcNode(loadGraph("g1.txt").first.size())), g1(this,an,loadGraph("g1.txt")), g2(this,an,loadGraph("g1.txt").first.size()) {
|
|
70
|
+
complement(this,g1,g2);
|
|
71
|
+
g1.distrib(this);
|
|
72
|
+
}
|
|
73
|
+
/// Constructor for cloning \a s
|
|
74
|
+
CPGraphComplement2vars(bool share, CPGraphComplement2vars& s) : Example(share,s){
|
|
75
|
+
g1.update(this, share, s.g1);
|
|
76
|
+
g2.update(this, share, s.g2);
|
|
77
|
+
}
|
|
78
|
+
/// Copying during cloning
|
|
79
|
+
virtual Space*
|
|
80
|
+
copy(bool share) {
|
|
81
|
+
return new CPGraphComplement2vars(share,*this);
|
|
82
|
+
}
|
|
83
|
+
/// Print the solution
|
|
84
|
+
virtual void
|
|
85
|
+
print(void) {
|
|
86
|
+
std::cout << std::endl << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
|
|
87
|
+
std::cout << "g1 = " << g1 << std::endl;
|
|
88
|
+
std::cout << "g2 = " << g2 << std::endl;
|
|
89
|
+
std::cout << std::endl << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
int
|
|
93
|
+
main(int argc, char** argv) {
|
|
94
|
+
Options opt("CPGraphComplement");
|
|
95
|
+
opt.icl = ICL_DOM;
|
|
96
|
+
opt.solutions = 0;
|
|
97
|
+
opt.parse(argc,argv);
|
|
98
|
+
if (opt.size == 2){
|
|
99
|
+
Example::run<CPGraphComplement2vars,DFS>(opt);
|
|
100
|
+
}else{
|
|
101
|
+
Example::run<CPGraphComplement,DFS>(opt);
|
|
102
|
+
}
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* Main authors:
|
|
4
|
+
* Gr�goire Dooms <dooms@info.ucl.ac.be>
|
|
5
|
+
*
|
|
6
|
+
* Copyright:
|
|
7
|
+
* Gr�goire Dooms (Universit� catholique de Louvain), 2005
|
|
8
|
+
*
|
|
9
|
+
* Last modified:
|
|
10
|
+
* $Date: 2005-11-29 10:57:21 +0100 (Tue, 29 Nov 2005) $
|
|
11
|
+
* $Revision: 271 $
|
|
12
|
+
*
|
|
13
|
+
* This file is part of CP(Graph)
|
|
14
|
+
*
|
|
15
|
+
* See the file "contribs/graph/LICENSE" for information on usage and
|
|
16
|
+
* redistribution of this file, and for a
|
|
17
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
#include "examples/support.hh"
|
|
22
|
+
#include "graphutils.icc"
|
|
23
|
+
#include "graph.hh"
|
|
24
|
+
using namespace Gecode::Graph;
|
|
25
|
+
/** \brief Example to test the intantiateUB method of OutAdjSetsGraphView
|
|
26
|
+
* \ingroup Examples
|
|
27
|
+
* */
|
|
28
|
+
class CPGraphInstUB: public Example {
|
|
29
|
+
private:
|
|
30
|
+
OutAdjSetsGraphView g1;
|
|
31
|
+
OutAdjSetsGraphView g2;
|
|
32
|
+
public:
|
|
33
|
+
/// Constructor with unused options
|
|
34
|
+
CPGraphInstUB(const Options& opt): g1(this,loadGraph("g1.txt")), g2(this,loadGraph("g1.txt")){
|
|
35
|
+
cout << g1 << endl;
|
|
36
|
+
cout << g2 << endl;
|
|
37
|
+
g2.instantiateUB(this);
|
|
38
|
+
g1.distrib(this);
|
|
39
|
+
|
|
40
|
+
}
|
|
41
|
+
/// Constructor for cloning \a s
|
|
42
|
+
CPGraphInstUB(bool share, CPGraphInstUB& s) : Example(share,s){
|
|
43
|
+
g1.update(this, share, s.g1);
|
|
44
|
+
g2.update(this, share, s.g2);
|
|
45
|
+
}
|
|
46
|
+
/// Copying during cloning
|
|
47
|
+
virtual Space*
|
|
48
|
+
copy(bool share) {
|
|
49
|
+
return new CPGraphInstUB(share,*this);
|
|
50
|
+
}
|
|
51
|
+
/// Print the solution
|
|
52
|
+
virtual void
|
|
53
|
+
print(void) {
|
|
54
|
+
std::cout << std::endl << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
|
|
55
|
+
std::cout << "g1 = " << g1 << std::endl;
|
|
56
|
+
std::cout << "g2 = " << g2 << std::endl;
|
|
57
|
+
std::cout << std::endl << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
/** \brief Example to test the intantiateUB method of NodeArcSetsGraphView
|
|
61
|
+
* \ingroup Examples
|
|
62
|
+
* */
|
|
63
|
+
class CPGraphInstUB2vars: public Example {
|
|
64
|
+
private:
|
|
65
|
+
ArcNode *an ; //used for member init
|
|
66
|
+
NodeArcSetsGraphView g1;
|
|
67
|
+
NodeArcSetsGraphView g2;
|
|
68
|
+
public:
|
|
69
|
+
/// Constructor with unused options
|
|
70
|
+
CPGraphInstUB2vars(const Options& opt): an(new ArcNode(loadGraph("g1.txt").first.size())), g1(this,an,loadGraph("g1.txt")), g2(this,an,loadGraph("g1.txt")) {
|
|
71
|
+
g2.instantiateUB(this);
|
|
72
|
+
g1.distrib(this);
|
|
73
|
+
}
|
|
74
|
+
/// Constructor for cloning \a s
|
|
75
|
+
CPGraphInstUB2vars(bool share, CPGraphInstUB2vars& s) : Example(share,s){
|
|
76
|
+
g1.update(this, share, s.g1);
|
|
77
|
+
g2.update(this, share, s.g2);
|
|
78
|
+
}
|
|
79
|
+
/// Copying during cloning
|
|
80
|
+
virtual Space*
|
|
81
|
+
copy(bool share) {
|
|
82
|
+
return new CPGraphInstUB2vars(share,*this);
|
|
83
|
+
}
|
|
84
|
+
/// Print the solution
|
|
85
|
+
virtual void
|
|
86
|
+
print(void) {
|
|
87
|
+
std::cout << std::endl << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
|
|
88
|
+
std::cout << "g1 = " << g1 << std::endl;
|
|
89
|
+
std::cout << "g2 = " << g2 << std::endl;
|
|
90
|
+
std::cout << std::endl << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
int
|
|
94
|
+
main(int argc, char** argv) {
|
|
95
|
+
Options opt("CPGraphInstUB");
|
|
96
|
+
opt.icl = ICL_DOM;
|
|
97
|
+
opt.solutions = 0;
|
|
98
|
+
opt.parse(argc,argv);
|
|
99
|
+
if (opt.size == 2){
|
|
100
|
+
Example::run<CPGraphInstUB2vars,DFS>(opt);
|
|
101
|
+
}else{
|
|
102
|
+
Example::run<CPGraphInstUB,DFS>(opt);
|
|
103
|
+
}
|
|
104
|
+
return 0;
|
|
105
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* Main authors:
|
|
4
|
+
* Gr�goire Dooms <dooms@info.ucl.ac.be>
|
|
5
|
+
*
|
|
6
|
+
* Copyright:
|
|
7
|
+
* Gr�goire Dooms (Universit� catholique de Louvain), 2005
|
|
8
|
+
*
|
|
9
|
+
* Last modified:
|
|
10
|
+
* $Date: 2005-11-29 10:57:21 +0100 (Tue, 29 Nov 2005) $
|
|
11
|
+
* $Revision: 271 $
|
|
12
|
+
*
|
|
13
|
+
* This file is part of CP(Graph)
|
|
14
|
+
*
|
|
15
|
+
* See the file "contribs/graph/LICENSE" for information on usage and
|
|
16
|
+
* redistribution of this file, and for a
|
|
17
|
+
* DISCLAIMER OF ALL WARRANTIES.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
#include "examples/support.hh"
|
|
22
|
+
#include "graphutils.icc"
|
|
23
|
+
#include "graph.hh"
|
|
24
|
+
using namespace Gecode::Graph;
|
|
25
|
+
|
|
26
|
+
/** \brief Example to test the simple Path propagator with OutAdjSetsGraphView
|
|
27
|
+
* \ingroup Examples
|
|
28
|
+
* */
|
|
29
|
+
class CPGraphSimplePath: public Example {
|
|
30
|
+
private:
|
|
31
|
+
OutAdjSetsGraphView g1;
|
|
32
|
+
public:
|
|
33
|
+
/// Constructor sith unused options
|
|
34
|
+
CPGraphSimplePath(const Options& opt): g1(this,loadGraph("g2.txt")){
|
|
35
|
+
path(this,g1,0,5);
|
|
36
|
+
g1.distrib(this);
|
|
37
|
+
}
|
|
38
|
+
/// Constructor for cloning \a s
|
|
39
|
+
CPGraphSimplePath(bool share, CPGraphSimplePath& s) : Example(share,s){
|
|
40
|
+
g1.update(this, share, s.g1);
|
|
41
|
+
}
|
|
42
|
+
/// Copying during cloning
|
|
43
|
+
virtual Space*
|
|
44
|
+
copy(bool share) {
|
|
45
|
+
return new CPGraphSimplePath(share,*this);
|
|
46
|
+
}
|
|
47
|
+
/// Print the solution
|
|
48
|
+
virtual void
|
|
49
|
+
print(void) {
|
|
50
|
+
std::cout << "\tg1 = " << g1 << std::endl;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
/** \brief Example to test the simple Path propagator with NodeArcSetsGraphView
|
|
54
|
+
* \ingroup Examples
|
|
55
|
+
* */
|
|
56
|
+
class CPGraphSimplePath2vars: public Example {
|
|
57
|
+
private:
|
|
58
|
+
NodeArcSetsGraphView g1;
|
|
59
|
+
public:
|
|
60
|
+
/// Constructor sith unused options
|
|
61
|
+
CPGraphSimplePath2vars(const Options& opt): g1(this,new ArcNode(loadGraph("g2.txt").second),loadGraph("g2.txt")){
|
|
62
|
+
path(this,g1,0,5);
|
|
63
|
+
g1.distrib(this);
|
|
64
|
+
}
|
|
65
|
+
/// Constructor for cloning \a s
|
|
66
|
+
CPGraphSimplePath2vars(bool share, CPGraphSimplePath2vars& s) : Example(share,s){
|
|
67
|
+
g1.update(this, share, s.g1);
|
|
68
|
+
}
|
|
69
|
+
/// Copying during cloning
|
|
70
|
+
virtual Space*
|
|
71
|
+
copy(bool share) {
|
|
72
|
+
return new CPGraphSimplePath2vars(share,*this);
|
|
73
|
+
}
|
|
74
|
+
/// Print the solution
|
|
75
|
+
virtual void
|
|
76
|
+
print(void) {
|
|
77
|
+
std::cout << "Solution \tg1 = " <<std::endl<< g1 << std::endl;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
int
|
|
81
|
+
main(int argc, char** argv) {
|
|
82
|
+
Options opt("CPGraphSimplePath");
|
|
83
|
+
opt.icl = ICL_DOM;
|
|
84
|
+
opt.solutions = 0;
|
|
85
|
+
opt.parse(argc,argv);
|
|
86
|
+
if (opt.size == 2){
|
|
87
|
+
Example::run<CPGraphSimplePath2vars,DFS>(opt);
|
|
88
|
+
}else{
|
|
89
|
+
Example::run<CPGraphSimplePath,DFS>(opt);
|
|
90
|
+
}
|
|
91
|
+
return 0;
|
|
92
|
+
}
|