gecoder-with-gecode 0.9.0 → 0.9.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 +6 -0
- data/README +1 -1
- data/THANKS +18 -0
- data/example/equation_system.rb +3 -1
- data/example/magic_sequence.rb +3 -1
- data/example/queens.rb +3 -1
- data/example/send_more_money.rb +24 -30
- data/example/send_most_money.rb +15 -26
- data/example/square_tiling.rb +3 -1
- data/example/sudoku-set.rb +3 -1
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/LICENSE +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/Makefile.contribs +0 -0
- data/ext/gecode-2.2.0/Makefile.dep +8056 -0
- data/ext/gecode-2.2.0/Makefile.in +1590 -0
- data/ext/gecode-2.2.0/changelog.in +2698 -0
- data/ext/gecode-2.2.0/configure +13112 -0
- data/ext/gecode-2.2.0/configure.ac +273 -0
- data/ext/gecode-2.2.0/configure.ac.in +269 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/README +0 -0
- data/ext/gecode-2.2.0/contribs/qecode/Doxyfile +263 -0
- data/ext/gecode-2.2.0/contribs/qecode/Implicative.cc +267 -0
- data/ext/gecode-2.2.0/contribs/qecode/Implicative.hh +164 -0
- data/ext/gecode-2.2.0/contribs/qecode/Makefile.in.in +163 -0
- data/ext/gecode-2.2.0/contribs/qecode/OptVar.cc +82 -0
- data/ext/gecode-2.2.0/contribs/qecode/OptVar.hh +123 -0
- data/ext/gecode-2.2.0/contribs/qecode/Strategy.cc +131 -0
- data/ext/gecode-2.2.0/contribs/qecode/Strategy.hh +91 -0
- data/ext/gecode-2.2.0/contribs/qecode/StrategyNode.cc +62 -0
- data/ext/gecode-2.2.0/contribs/qecode/StrategyNode.hh +47 -0
- data/ext/gecode-2.2.0/contribs/qecode/autom4te.cache/output.0 +2264 -0
- data/ext/gecode-2.2.0/contribs/qecode/autom4te.cache/requests +115 -0
- data/ext/gecode-2.2.0/contribs/qecode/autom4te.cache/traces.0 +57 -0
- data/ext/gecode-2.2.0/contribs/qecode/config.log +147 -0
- data/ext/gecode-2.2.0/contribs/qecode/config.status +817 -0
- data/ext/gecode-2.2.0/contribs/qecode/configure +2264 -0
- data/ext/gecode-2.2.0/contribs/qecode/configure.ac +23 -0
- data/ext/gecode-2.2.0/contribs/qecode/examples/COMPILING +13 -0
- data/ext/gecode-2.2.0/contribs/qecode/examples/MatrixGame.cpp +140 -0
- data/ext/gecode-2.2.0/contribs/qecode/examples/NimFibo.cpp +73 -0
- data/ext/gecode-2.2.0/contribs/qecode/examples/connect-5-3-3-3.cpp +842 -0
- data/ext/gecode-2.2.0/contribs/qecode/examples/network-pricing.cc +146 -0
- data/ext/gecode-2.2.0/contribs/qecode/examples/optim2.cc +149 -0
- data/ext/gecode-2.2.0/contribs/qecode/examples/stress_test.cpp +240 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/heap.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/myDom.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/myspace.cc +0 -0
- data/ext/gecode-2.2.0/contribs/qecode/myspace.hh +68 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/qecode.hh +0 -0
- data/ext/gecode-2.2.0/contribs/qecode/qsolver.cc +268 -0
- data/ext/gecode-2.2.0/contribs/qecode/qsolver.hh +46 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/shortdesc.ac +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/vartype.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/doxygen/doxygen.conf.in +0 -0
- data/ext/gecode-2.2.0/doxygen/doxygen.hh.in +1112 -0
- data/ext/gecode-2.2.0/doxygen/reflection.hh +417 -0
- data/ext/gecode-2.2.0/examples/all-interval.cc +133 -0
- data/ext/gecode-2.2.0/examples/alpha.cc +137 -0
- data/ext/gecode-2.2.0/examples/bacp.cc +521 -0
- data/ext/gecode-2.2.0/examples/baseline.cc +87 -0
- data/ext/gecode-2.2.0/examples/bibd.cc +203 -0
- data/ext/gecode-2.2.0/examples/black-hole.cc +389 -0
- data/ext/gecode-2.2.0/examples/crew.cc +286 -0
- data/ext/gecode-2.2.0/examples/crowded-chess.cc +424 -0
- data/ext/gecode-2.2.0/examples/domino.cc +297 -0
- data/ext/gecode-2.2.0/examples/donald.cc +107 -0
- data/ext/gecode-2.2.0/examples/eq20.cc +125 -0
- data/ext/gecode-2.2.0/examples/golf.cc +297 -0
- data/ext/gecode-2.2.0/examples/golomb-ruler.cc +199 -0
- data/ext/gecode-2.2.0/examples/graph-color.cc +407 -0
- data/ext/gecode-2.2.0/examples/grocery.cc +113 -0
- data/ext/gecode-2.2.0/examples/hamming.cc +129 -0
- data/ext/gecode-2.2.0/examples/ind-set.cc +143 -0
- data/ext/gecode-2.2.0/examples/javascript.cc +163 -0
- data/ext/gecode-2.2.0/examples/kakuro.cc +686 -0
- data/ext/gecode-2.2.0/examples/knights.cc +220 -0
- data/ext/gecode-2.2.0/examples/langford-number.cc +225 -0
- data/ext/gecode-2.2.0/examples/magic-sequence.cc +146 -0
- data/ext/gecode-2.2.0/examples/magic-square.cc +138 -0
- data/ext/gecode-2.2.0/examples/minesweeper.cc +304 -0
- data/ext/gecode-2.2.0/examples/money.cc +105 -0
- data/ext/gecode-2.2.0/examples/nonogram.cc +492 -0
- data/ext/gecode-2.2.0/examples/ortho-latin.cc +172 -0
- data/ext/gecode-2.2.0/examples/partition.cc +141 -0
- data/ext/gecode-2.2.0/examples/pentominoes.cc +949 -0
- data/ext/gecode-2.2.0/examples/perfect-square.cc +311 -0
- data/ext/gecode-2.2.0/examples/photo.cc +170 -0
- data/ext/gecode-2.2.0/examples/queen-armies.cc +284 -0
- data/ext/gecode-2.2.0/examples/queens.cc +147 -0
- data/ext/gecode-2.2.0/examples/queens.js +57 -0
- data/ext/gecode-2.2.0/examples/sports-league.cc +342 -0
- data/ext/gecode-2.2.0/examples/steiner.cc +192 -0
- data/ext/gecode-2.2.0/examples/stress-distinct.cc +90 -0
- data/ext/gecode-2.2.0/examples/stress-domain.cc +99 -0
- data/ext/gecode-2.2.0/examples/stress-element.cc +112 -0
- data/ext/gecode-2.2.0/examples/stress-exec.cc +97 -0
- data/ext/gecode-2.2.0/examples/stress-extensional.cc +134 -0
- data/ext/gecode-2.2.0/examples/stress-linear-bool.cc +97 -0
- data/ext/gecode-2.2.0/examples/stress-min.cc +98 -0
- data/ext/gecode-2.2.0/examples/stress-search.cc +88 -0
- data/ext/gecode-2.2.0/examples/sudoku.cc +2341 -0
- data/ext/gecode-2.2.0/examples/support.hh +338 -0
- data/ext/gecode-2.2.0/examples/support/example.cc +64 -0
- data/ext/gecode-2.2.0/examples/support/example.icc +321 -0
- data/ext/gecode-2.2.0/examples/support/options.cc +226 -0
- data/ext/gecode-2.2.0/examples/support/options.icc +276 -0
- data/ext/gecode-2.2.0/examples/tsp.cc +317 -0
- data/ext/gecode-2.2.0/examples/warehouses.cc +191 -0
- data/ext/gecode-2.2.0/gecode.m4 +1046 -0
- data/ext/gecode-2.2.0/gecode/cpltset.hh +797 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/array.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/array.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/bddmanager.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/bddmanager.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/branch.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/branch.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/branch/select-val.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/branch/select-view.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/atmost.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/cardinality.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/distinct.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/dom.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/partition.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/rangeroots.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/rel.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/select.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/singleton.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/exception.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/binary.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/nary.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/naryone.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/narytwo.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/singleton.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/unary.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/support.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/support.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var-imp.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var-imp/cpltset.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var-imp/cpltset.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var-imp/cpltset.vis +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var/cpltset.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var/cpltset.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/view.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/view/cpltset.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/view/print.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/addchild.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/addchild.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/addvisualisationdialog.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/addvisualisationdialog.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/better.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/config.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/config.hh +0 -0
- data/ext/gecode-2.2.0/gecode/gist/drawingcursor.cc +281 -0
- data/ext/gecode-2.2.0/gecode/gist/drawingcursor.hh +103 -0
- data/ext/gecode-2.2.0/gecode/gist/drawingcursor.icc +70 -0
- data/ext/gecode-2.2.0/gecode/gist/gecodelogo.cc +672 -0
- data/ext/gecode-2.2.0/gecode/gist/gecodelogo.hh +64 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/gist.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/gist.icc +0 -0
- data/ext/gecode-2.2.0/gecode/gist/layoutcursor.cc +115 -0
- data/ext/gecode-2.2.0/gecode/gist/layoutcursor.hh +75 -0
- data/ext/gecode-2.2.0/gecode/gist/layoutcursor.icc +48 -0
- data/ext/gecode-2.2.0/gecode/gist/mainwindow.cc +274 -0
- data/ext/gecode-2.2.0/gecode/gist/mainwindow.hh +86 -0
- data/ext/gecode-2.2.0/gecode/gist/node.cc +148 -0
- data/ext/gecode-2.2.0/gecode/gist/node.hh +117 -0
- data/ext/gecode-2.2.0/gecode/gist/node.icc +99 -0
- data/ext/gecode-2.2.0/gecode/gist/nodecursor.cc +123 -0
- data/ext/gecode-2.2.0/gecode/gist/nodecursor.hh +147 -0
- data/ext/gecode-2.2.0/gecode/gist/nodecursor.icc +122 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/nodevisitor.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/nodevisitor.icc +0 -0
- data/ext/gecode-2.2.0/gecode/gist/preferences.cc +120 -0
- data/ext/gecode-2.2.0/gecode/gist/preferences.hh +79 -0
- data/ext/gecode-2.2.0/gecode/gist/spacenode.cc +468 -0
- data/ext/gecode-2.2.0/gecode/gist/spacenode.hh +227 -0
- data/ext/gecode-2.2.0/gecode/gist/spacenode.icc +170 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/test.cc +0 -0
- data/ext/gecode-2.2.0/gecode/gist/textoutput.cc +134 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/textoutput.hh +0 -0
- data/ext/gecode-2.2.0/gecode/gist/treecanvas.cc +1343 -0
- data/ext/gecode-2.2.0/gecode/gist/treecanvas.hh +361 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/ui_addchild.hh +0 -0
- data/ext/gecode-2.2.0/gecode/gist/ui_addvisualisationdialog.hh +165 -0
- data/ext/gecode-2.2.0/gecode/gist/visualisation/intvaritem.cc +192 -0
- data/ext/gecode-2.2.0/gecode/gist/visualisation/intvaritem.hh +75 -0
- data/ext/gecode-2.2.0/gecode/gist/visualisation/setvaritem.cc +235 -0
- data/ext/gecode-2.2.0/gecode/gist/visualisation/setvaritem.hh +77 -0
- data/ext/gecode-2.2.0/gecode/gist/visualisation/vararrayitem.hh +125 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/vararrayview.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/vararrayview.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/vararrayviewt.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/varitem.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/varitem.hh +0 -0
- data/ext/gecode-2.2.0/gecode/gist/visualnode.cc +474 -0
- data/ext/gecode-2.2.0/gecode/gist/visualnode.hh +226 -0
- data/ext/gecode-2.2.0/gecode/gist/visualnode.icc +198 -0
- data/ext/gecode-2.2.0/gecode/gist/zoomToFitIcon.icc +113 -0
- data/ext/gecode-2.2.0/gecode/int.hh +2116 -0
- data/ext/gecode-2.2.0/gecode/int/arithmetic.cc +237 -0
- data/ext/gecode-2.2.0/gecode/int/arithmetic.hh +827 -0
- data/ext/gecode-2.2.0/gecode/int/arithmetic/abs.icc +278 -0
- data/ext/gecode-2.2.0/gecode/int/arithmetic/divmod.icc +496 -0
- data/ext/gecode-2.2.0/gecode/int/arithmetic/max.icc +474 -0
- data/ext/gecode-2.2.0/gecode/int/arithmetic/mult.icc +858 -0
- data/ext/gecode-2.2.0/gecode/int/arithmetic/sqr.icc +464 -0
- data/ext/gecode-2.2.0/gecode/int/arithmetic/sqrt.icc +260 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/array.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/array.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/bool.cc +734 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool/base.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool/eq.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool/eqv.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool/lq.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/bool/or.icc +1000 -0
- data/ext/gecode-2.2.0/gecode/int/branch.cc +167 -0
- data/ext/gecode-2.2.0/gecode/int/branch.hh +587 -0
- data/ext/gecode-2.2.0/gecode/int/branch/create-branch.icc +190 -0
- data/ext/gecode-2.2.0/gecode/int/branch/select-val.icc +340 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/branch/select-view.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/channel.cc +165 -0
- data/ext/gecode-2.2.0/gecode/int/channel.hh +259 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/base.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/channel/dom.icc +348 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/link-multi.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/link-multi.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/link-single.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/link-single.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/channel/val.icc +278 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/circuit.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/circuit.hh +175 -0
- data/ext/gecode-2.2.0/gecode/int/circuit/base.icc +266 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/circuit/dom.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/circuit/val.icc +126 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/count.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/count.hh +487 -0
- data/ext/gecode-2.2.0/gecode/int/count/int.icc +620 -0
- data/ext/gecode-2.2.0/gecode/int/count/rel.icc +144 -0
- data/ext/gecode-2.2.0/gecode/int/count/view.icc +449 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/cumulatives.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/cumulatives.hh +138 -0
- data/ext/gecode-2.2.0/gecode/int/cumulatives/val.icc +455 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/distinct.hh +341 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/bilink.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/bnd.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/combptr.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/distinct/dom.icc +752 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/edge.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/node.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/distinct/ter-dom.icc +136 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/val.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/dom.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/dom.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/dom/range.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/dom/spec.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/element.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/element.hh +239 -0
- data/ext/gecode-2.2.0/gecode/int/element/int.icc +444 -0
- data/ext/gecode-2.2.0/gecode/int/element/view.icc +584 -0
- data/ext/gecode-2.2.0/gecode/int/exception.icc +174 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/extensional.hh +415 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/base.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/basic.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/bitset.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/extensional/dfa.cc +565 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/dfa.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/incremental.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/layered-graph.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/extensional/tuple-set.cc +285 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/tuple-set.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/gcc.hh +329 -0
- data/ext/gecode-2.2.0/gecode/int/gcc/bnd.icc +660 -0
- data/ext/gecode-2.2.0/gecode/int/gcc/dom.icc +531 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/gccbndsup.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/graphsup.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/lbc.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/occur.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/ubc.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/gcc/val.icc +400 -0
- data/ext/gecode-2.2.0/gecode/int/int-set.cc +157 -0
- data/ext/gecode-2.2.0/gecode/int/int-set.icc +195 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/limits.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/linear-bool.cc +235 -0
- data/ext/gecode-2.2.0/gecode/int/linear-int.cc +272 -0
- data/ext/gecode-2.2.0/gecode/int/linear.hh +1849 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/bool-int.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/linear/bool-post.cc +433 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/bool-scale.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/bool-view.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/linear/int-bin.icc +605 -0
- data/ext/gecode-2.2.0/gecode/int/linear/int-dom.icc +539 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/int-nary.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/int-noview.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/linear/int-post.cc +493 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/int-ter.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/post.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/propagator.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/rel.cc +420 -0
- data/ext/gecode-2.2.0/gecode/int/rel.hh +627 -0
- data/ext/gecode-2.2.0/gecode/int/rel/eq.icc +885 -0
- data/ext/gecode-2.2.0/gecode/int/rel/lex.icc +275 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/rel/lq-le.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/rel/nq.icc +118 -0
- data/ext/gecode-2.2.0/gecode/int/sorted.cc +81 -0
- data/ext/gecode-2.2.0/gecode/int/sorted.hh +118 -0
- data/ext/gecode-2.2.0/gecode/int/sorted/matching.icc +173 -0
- data/ext/gecode-2.2.0/gecode/int/sorted/narrowing.icc +249 -0
- data/ext/gecode-2.2.0/gecode/int/sorted/order.icc +212 -0
- data/ext/gecode-2.2.0/gecode/int/sorted/propagate.icc +702 -0
- data/ext/gecode-2.2.0/gecode/int/sorted/sortsup.icc +563 -0
- data/ext/gecode-2.2.0/gecode/int/support-values.hh +158 -0
- data/ext/gecode-2.2.0/gecode/int/support-values.icc +203 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/unshare.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/var-imp.icc +745 -0
- data/ext/gecode-2.2.0/gecode/int/var-imp/bool.cc +105 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/bool.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/bool.vis +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/delta.icc +0 -0
- data/ext/gecode-2.2.0/gecode/int/var-imp/int.cc +408 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/int.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/int.vis +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var/bool.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/var/bool.icc +128 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var/int.cc +0 -0
- data/ext/gecode-2.2.0/gecode/int/var/int.icc +153 -0
- data/ext/gecode-2.2.0/gecode/int/view.icc +1918 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/bool.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/constint.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/int.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/iter.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/minus.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/offset.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/print.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/rtest.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/scale.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/zero.icc +0 -0
- data/ext/gecode-2.2.0/gecode/iter.hh +98 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-add.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-append.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-array.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-cache.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-compl.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-diff.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-empty.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-inter.icc +0 -0
- data/ext/gecode-2.2.0/gecode/iter/ranges-map.icc +260 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-minmax.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-minus.icc +0 -0
- data/ext/gecode-2.2.0/gecode/iter/ranges-negative.icc +137 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-offset.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-operations.icc +0 -0
- data/ext/gecode-2.2.0/gecode/iter/ranges-positive.icc +139 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-scale.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-singleton-append.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-singleton.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-size.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-union.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-values.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-array.icc +0 -0
- data/ext/gecode-2.2.0/gecode/iter/values-inter.icc +130 -0
- data/ext/gecode-2.2.0/gecode/iter/values-map.icc +136 -0
- data/ext/gecode-2.2.0/gecode/iter/values-minus.icc +130 -0
- data/ext/gecode-2.2.0/gecode/iter/values-negative.icc +116 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-offset.icc +0 -0
- data/ext/gecode-2.2.0/gecode/iter/values-positive.icc +123 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-ranges.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-singleton.icc +0 -0
- data/ext/gecode-2.2.0/gecode/iter/values-union.icc +137 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-unique.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/virtual-ranges-compl.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/virtual-ranges-inter.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/virtual-ranges-union.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/virtual-ranges.icc +0 -0
- data/ext/gecode-2.2.0/gecode/kernel.hh +188 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/advisor.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/array.icc +0 -0
- data/ext/gecode-2.2.0/gecode/kernel/branching.icc +433 -0
- data/ext/gecode-2.2.0/gecode/kernel/core.cc +474 -0
- data/ext/gecode-2.2.0/gecode/kernel/core.icc +2311 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/exception.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/macros.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/memory-manager.cc +0 -0
- data/ext/gecode-2.2.0/gecode/kernel/memory-manager.icc +454 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/modevent.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/propagator.icc +0 -0
- data/ext/gecode-2.2.0/gecode/kernel/reflection.cc +951 -0
- data/ext/gecode-2.2.0/gecode/kernel/reflection.icc +1213 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/shared-array.icc +0 -0
- data/ext/gecode-2.2.0/gecode/kernel/var-imp.icc +433 -0
- data/ext/gecode-2.2.0/gecode/kernel/var-map.cc +269 -0
- data/ext/gecode-2.2.0/gecode/kernel/var-map.icc +230 -0
- data/ext/gecode-2.2.0/gecode/kernel/var-traits.icc +79 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/var-type.cc +0 -0
- data/ext/gecode-2.2.0/gecode/kernel/var-type.icc +915 -0
- data/ext/gecode-2.2.0/gecode/kernel/var.icc +114 -0
- data/ext/gecode-2.2.0/gecode/kernel/view.icc +413 -0
- data/ext/gecode-2.2.0/gecode/minimodel.hh +1206 -0
- data/ext/gecode-2.2.0/gecode/minimodel/arithmetic.icc +118 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/bool-expr.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/bool-expr.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/bool-rel.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/exception.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/lin-expr.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/lin-rel.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/matrix.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/reg.cc +0 -0
- data/ext/gecode-2.2.0/gecode/search.hh +759 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/bab.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/bab.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/dfs.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/dfs.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/engine-ctrl.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/lds.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/lds.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/options.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/options.icc +0 -0
- data/ext/gecode-2.2.0/gecode/search/reco-stack.icc +277 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/restart.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/statistics.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/stop.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/stop.icc +0 -0
- data/ext/gecode-2.2.0/gecode/serialization.hh +149 -0
- data/ext/gecode-2.2.0/gecode/serialization/boost.cc +78 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/serialization/boost.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/serialization/flatzinc.cc +0 -0
- data/ext/gecode-2.2.0/gecode/serialization/javascript.cc +343 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/serialization/javascript.hh +0 -0
- data/ext/gecode-2.2.0/gecode/serialization/register.cc +8498 -0
- data/ext/gecode-2.2.0/gecode/set.hh +970 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/array.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/array.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/branch.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/branch.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/branch/select-val.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/branch/select-view.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/cardinality.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex/conv.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex/conv.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex/hull.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex/hull.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/distinct.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/distinct.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/distinct/atmostOne.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/distinct/atmostOne.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/dom.cc +0 -0
- data/ext/gecode-2.2.0/gecode/set/element.cc +135 -0
- data/ext/gecode-2.2.0/gecode/set/element.hh +233 -0
- data/ext/gecode-2.2.0/gecode/set/element/disjoint.cc +308 -0
- data/ext/gecode-2.2.0/gecode/set/element/disjoint.icc +75 -0
- data/ext/gecode-2.2.0/gecode/set/element/idxarray.hh +113 -0
- data/ext/gecode-2.2.0/gecode/set/element/idxarray.icc +155 -0
- data/ext/gecode-2.2.0/gecode/set/element/inter.icc +348 -0
- data/ext/gecode-2.2.0/gecode/set/element/union.icc +371 -0
- data/ext/gecode-2.2.0/gecode/set/element/unionConst.icc +334 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/exception.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/card.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/channel-bool.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/channel-int.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/match.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/minmax.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/weights.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/limits.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors-compiler.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors.cc +0 -0
- data/ext/gecode-2.2.0/gecode/set/projectors.hh +438 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/compiler.cc +0 -0
- data/ext/gecode-2.2.0/gecode/set/projectors/formula.cc +312 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/formula.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/projector-set.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/projector-set.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/projector.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/projector.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator/card.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator/nary.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator/re-nary.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator/re-nary.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/set-expr.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/set-expr.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/propagator.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op-const.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op.hh +0 -0
- data/ext/gecode-2.2.0/gecode/set/rel-op/common.icc +613 -0
- data/ext/gecode-2.2.0/gecode/set/rel-op/inter.icc +452 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/partition.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/post.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/subofunion.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/superofinter.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/union.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/common.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/eq.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/nosubset.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/nq.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/re-eq.icc +0 -0
- data/ext/gecode-2.2.0/gecode/set/rel/re-subset.icc +174 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/subset.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence.hh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/common.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/seq-u.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/seq-u.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/seq.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/seq.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/delta.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/integerset.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/integerset.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/iter.icc +0 -0
- data/ext/gecode-2.2.0/gecode/set/var-imp/set.cc +215 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/set.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/set.vis +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var/set.cc +0 -0
- data/ext/gecode-2.2.0/gecode/set/var/set.icc +303 -0
- data/ext/gecode-2.2.0/gecode/set/view.icc +1451 -0
- data/ext/gecode-2.2.0/gecode/set/view/complement.icc +614 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/const.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/offset.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/print.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/set.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/singleton.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support.hh +0 -0
- data/ext/gecode-2.2.0/gecode/support/block-allocator.icc +159 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/AUTHORS +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/ChangeLog +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/NEWS +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/README +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bdd.h +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bddio.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bddop.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bddtree.h +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bvec.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bvec.h +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/cache.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/cache.h +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/config.h +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/cppext.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/fdd.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/fdd.h +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/imatrix.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/imatrix.h +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/kernel.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/kernel.h +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/pairs.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/prime.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/prime.h +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/reorder.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/tree.c +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/cast.icc +0 -0
- data/ext/gecode-2.2.0/gecode/support/config.icc.in +83 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/dynamic-array.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/dynamic-stack.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/exception.cc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/exception.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/macros.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/map.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/marked-pointer.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/memory.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/random.icc +0 -0
- data/ext/gecode-2.2.0/gecode/support/sentinel-stack.icc +138 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/sort.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/static-pqueue.icc +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/static-stack.icc +0 -0
- data/ext/gecode-2.2.0/gecode/support/symbol.cc +241 -0
- data/ext/gecode-2.2.0/gecode/support/symbol.icc +134 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/install-sh +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/AppleHelpbookInfo.plist +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/allexamples.perl +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/Makefile.am +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/changelog +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/control +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/copyright +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/gecode.info +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/gecode.install +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/gecode.spec +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/rules +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/back.png +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/footer.html +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/gecode-logo-100.png +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/header.html +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/stylesheet.css +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/fixproperties.sh +0 -0
- data/ext/gecode-2.2.0/misc/gecode-gist.pc.in +45 -0
- data/ext/gecode-2.2.0/misc/gecode-minimodel.pc.in +45 -0
- data/ext/gecode-2.2.0/misc/gecode-search.pc.in +45 -0
- data/ext/gecode-2.2.0/misc/gecode-serialization.pc.in +45 -0
- data/ext/gecode-2.2.0/misc/gecode.pc.in +45 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/genchangelog.perl +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/genlcovmakefile.perl +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/genlicense.perl +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/genregistry.perl +0 -0
- data/ext/gecode-2.2.0/misc/genstatistics.perl +179 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/gentxtchangelog.perl +0 -0
- data/ext/gecode-2.2.0/misc/genvariables.perl +905 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/getrevision.perl +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/makedepend.perl +0 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/svn-ignore.txt +0 -0
- data/ext/gecode-2.2.0/test/assign.cc +181 -0
- data/ext/gecode-2.2.0/test/assign.hh +93 -0
- data/ext/gecode-2.2.0/test/assign/bool.cc +61 -0
- data/ext/gecode-2.2.0/test/assign/int.cc +70 -0
- data/ext/gecode-2.2.0/test/branch.cc +563 -0
- data/ext/gecode-2.2.0/test/branch.hh +144 -0
- data/ext/gecode-2.2.0/test/branch/bool.cc +61 -0
- data/ext/gecode-2.2.0/test/branch/cpltset.cc +71 -0
- data/ext/gecode-2.2.0/test/branch/int.cc +70 -0
- data/ext/gecode-2.2.0/test/branch/set.cc +74 -0
- data/ext/gecode-2.2.0/test/cpltset.cc +568 -0
- data/ext/gecode-2.2.0/test/cpltset.hh +125 -0
- data/ext/gecode-2.2.0/test/cpltset/atmost.cc +155 -0
- data/ext/gecode-2.2.0/test/cpltset/cardinality.cc +138 -0
- data/ext/gecode-2.2.0/test/cpltset/dom.cc +137 -0
- data/ext/gecode-2.2.0/test/cpltset/partition.cc +210 -0
- data/ext/gecode-2.2.0/test/cpltset/rel.cc +158 -0
- data/ext/gecode-2.2.0/test/cpltset/select.cc +216 -0
- data/ext/gecode-2.2.0/test/int.cc +688 -0
- data/ext/gecode-2.2.0/test/int.hh +267 -0
- data/ext/gecode-2.2.0/test/int.icc +266 -0
- data/ext/gecode-2.2.0/test/int/arithmetic.cc +766 -0
- data/ext/gecode-2.2.0/test/int/basic.cc +77 -0
- data/ext/gecode-2.2.0/test/int/bool.cc +340 -0
- data/ext/gecode-2.2.0/test/int/channel.cc +238 -0
- data/ext/gecode-2.2.0/test/int/circuit.cc +100 -0
- data/ext/gecode-2.2.0/test/int/count.cc +357 -0
- data/ext/gecode-2.2.0/test/int/distinct.cc +248 -0
- data/ext/gecode-2.2.0/test/int/dom.cc +123 -0
- data/ext/gecode-2.2.0/test/int/element.cc +333 -0
- data/ext/gecode-2.2.0/test/int/extensional.cc +475 -0
- data/ext/gecode-2.2.0/test/int/gcc.cc +293 -0
- data/ext/gecode-2.2.0/test/int/linear.cc +383 -0
- data/ext/gecode-2.2.0/test/int/mm-arithmetic.cc +302 -0
- data/ext/gecode-2.2.0/test/int/mm-bool.cc +4342 -0
- data/ext/gecode-2.2.0/test/int/mm-count.cc +295 -0
- data/ext/gecode-2.2.0/test/int/mm-lin.cc +2035 -0
- data/ext/gecode-2.2.0/test/int/mm-rel.cc +136 -0
- data/ext/gecode-2.2.0/test/int/rel.cc +416 -0
- data/ext/gecode-2.2.0/test/int/scheduling.cc +276 -0
- data/ext/gecode-2.2.0/test/int/sorted.cc +165 -0
- data/ext/gecode-2.2.0/test/int/unshare.cc +109 -0
- data/ext/gecode-2.2.0/test/search.cc +618 -0
- data/ext/gecode-2.2.0/test/set.cc +753 -0
- data/ext/gecode-2.2.0/test/set.hh +286 -0
- data/ext/gecode-2.2.0/test/set.icc +108 -0
- data/ext/gecode-2.2.0/test/set/convex.cc +139 -0
- data/ext/gecode-2.2.0/test/set/distinct.cc +116 -0
- data/ext/gecode-2.2.0/test/set/dom.cc +292 -0
- data/ext/gecode-2.2.0/test/set/int.cc +473 -0
- data/ext/gecode-2.2.0/test/set/projection.cc +436 -0
- data/ext/gecode-2.2.0/test/set/rel-op-const.cc +368 -0
- data/ext/gecode-2.2.0/test/set/rel-op.cc +465 -0
- data/ext/gecode-2.2.0/test/set/rel.cc +125 -0
- data/ext/gecode-2.2.0/test/set/select.cc +299 -0
- data/ext/gecode-2.2.0/test/set/sequence.cc +125 -0
- data/ext/gecode-2.2.0/test/test.cc +287 -0
- data/ext/gecode-2.2.0/test/test.hh +175 -0
- data/ext/gecode-2.2.0/test/test.icc +93 -0
- data/ext/{gecode-2.1.1 → gecode-2.2.0}/variables.vsl +0 -0
- data/lib/gecoder/bindings.rb +7 -5
- data/lib/gecoder/bindings/bindings.rb +8 -8
- data/lib/gecoder/interface.rb +4 -2
- data/lib/gecoder/interface/binding_changes.rb +1 -1
- data/lib/gecoder/interface/branch.rb +1 -1
- data/lib/gecoder/interface/constraints/bool_enum_constraints.rb +4 -4
- data/lib/gecoder/interface/constraints/bool_var_constraints.rb +2 -2
- data/lib/gecoder/interface/constraints/extensional_regexp.rb +1 -1
- data/lib/gecoder/interface/constraints/fixnum_enum_constraints.rb +2 -2
- data/lib/gecoder/interface/constraints/int_enum/extensional.rb +5 -5
- data/lib/gecoder/interface/constraints/int_enum_constraints.rb +4 -4
- data/lib/gecoder/interface/constraints/int_var_constraints.rb +2 -2
- data/lib/gecoder/interface/constraints/selected_set/select.rb +8 -8
- data/lib/gecoder/interface/constraints/set_enum/element.rb +79 -0
- data/lib/gecoder/interface/constraints/set_enum_constraints.rb +5 -5
- data/lib/gecoder/interface/constraints/set_var_constraints.rb +2 -2
- data/lib/gecoder/interface/convenience.rb +99 -0
- data/lib/gecoder/interface/enum_wrapper.rb +1 -1
- data/lib/gecoder/interface/mixin.rb +486 -0
- data/lib/gecoder/interface/search.rb +23 -22
- data/lib/gecoder/version.rb +1 -1
- data/specs/branch.rb +5 -3
- data/specs/constraints/bool/boolean.rb +3 -1
- data/specs/constraints/bool/linear.rb +3 -1
- data/specs/constraints/bool_enum/bool_enum_relation.rb +3 -1
- data/specs/constraints/bool_enum/channel.rb +3 -1
- data/specs/constraints/fixnum_enum/element.rb +3 -1
- data/specs/constraints/int/arithmetic.rb +3 -1
- data/specs/constraints/int/channel.rb +3 -1
- data/specs/constraints/int/linear.rb +3 -1
- data/specs/constraints/int/linear_properties.rb +3 -1
- data/specs/constraints/int_enum/arithmetic.rb +3 -1
- data/specs/constraints/int_enum/channel.rb +3 -1
- data/specs/constraints/int_enum/count.rb +3 -1
- data/specs/constraints/int_enum/distinct.rb +3 -1
- data/specs/constraints/int_enum/element.rb +3 -1
- data/specs/constraints/int_enum/sort.rb +3 -1
- data/specs/constraints/property_helper.rb +10 -10
- data/specs/constraints/reification_sugar.rb +3 -1
- data/specs/constraints/selected_set/select.rb +6 -5
- data/specs/constraints/selected_set/select_properties.rb +12 -10
- data/specs/constraints/set/channel.rb +3 -1
- data/specs/constraints/set/domain.rb +4 -4
- data/specs/constraints/set/relation.rb +4 -4
- data/specs/constraints/set_enum/channel.rb +3 -1
- data/specs/constraints/set_enum/distinct.rb +3 -1
- data/specs/constraints/set_enum/element.rb +77 -0
- data/specs/enum_wrapper.rb +1 -1
- data/specs/mixin.rb +78 -0
- data/specs/model.rb +5 -5
- data/specs/search.rb +20 -14
- data/specs/selected_set.rb +3 -3
- data/specs/set_elements.rb +2 -2
- data/tasks/distribution.rake +25 -4
- metadata +739 -602
- data/example/money.rb +0 -36
- data/ext/gecode-2.1.1/Makefile.dep +0 -7622
- data/ext/gecode-2.1.1/Makefile.in +0 -1568
- data/ext/gecode-2.1.1/changelog.in +0 -2459
- data/ext/gecode-2.1.1/configure +0 -11631
- data/ext/gecode-2.1.1/configure.ac +0 -249
- data/ext/gecode-2.1.1/configure.ac.in +0 -245
- data/ext/gecode-2.1.1/contribs/qecode/Doxyfile +0 -263
- data/ext/gecode-2.1.1/contribs/qecode/FirstFailValueHeuristic.cc +0 -82
- data/ext/gecode-2.1.1/contribs/qecode/FirstFailValueHeuristic.hh +0 -37
- data/ext/gecode-2.1.1/contribs/qecode/Makefile.in.in +0 -162
- data/ext/gecode-2.1.1/contribs/qecode/NaiveValueHeuristics.cc +0 -172
- data/ext/gecode-2.1.1/contribs/qecode/NaiveValueHeuristics.hh +0 -63
- data/ext/gecode-2.1.1/contribs/qecode/SDFVariableHeuristic.cc +0 -37
- data/ext/gecode-2.1.1/contribs/qecode/SDFVariableHeuristic.hh +0 -35
- data/ext/gecode-2.1.1/contribs/qecode/configure +0 -2264
- data/ext/gecode-2.1.1/contribs/qecode/configure.ac +0 -23
- data/ext/gecode-2.1.1/contribs/qecode/examples/COMPILING +0 -13
- data/ext/gecode-2.1.1/contribs/qecode/examples/MatrixGame.cpp +0 -144
- data/ext/gecode-2.1.1/contribs/qecode/examples/NimFibo.cpp +0 -73
- data/ext/gecode-2.1.1/contribs/qecode/examples/stress_test.cpp +0 -179
- data/ext/gecode-2.1.1/contribs/qecode/extensivecomparator.cc +0 -34
- data/ext/gecode-2.1.1/contribs/qecode/extensivecomparator.hh +0 -46
- data/ext/gecode-2.1.1/contribs/qecode/implicative.cc +0 -595
- data/ext/gecode-2.1.1/contribs/qecode/implicative.hh +0 -184
- data/ext/gecode-2.1.1/contribs/qecode/myspace.hh +0 -69
- data/ext/gecode-2.1.1/contribs/qecode/qecore.cc +0 -145
- data/ext/gecode-2.1.1/contribs/qecode/qecore.hh +0 -247
- data/ext/gecode-2.1.1/contribs/qecode/qsolver.cc +0 -168
- data/ext/gecode-2.1.1/contribs/qecode/qsolver.hh +0 -73
- data/ext/gecode-2.1.1/contribs/qecode/valueHeuristic.hh +0 -91
- data/ext/gecode-2.1.1/contribs/qecode/warner.cc +0 -101
- data/ext/gecode-2.1.1/contribs/qecode/warner.hh +0 -83
- data/ext/gecode-2.1.1/doxygen/doxygen.hh.in +0 -1111
- data/ext/gecode-2.1.1/doxygen/reflection.hh +0 -417
- data/ext/gecode-2.1.1/gecode.m4 +0 -956
- data/ext/gecode-2.1.1/gecode/cpltset.hh +0 -797
- data/ext/gecode-2.1.1/gecode/gist/analysiscursor.cc +0 -115
- data/ext/gecode-2.1.1/gecode/gist/analysiscursor.hh +0 -77
- data/ext/gecode-2.1.1/gecode/gist/drawingcursor.cc +0 -245
- data/ext/gecode-2.1.1/gecode/gist/drawingcursor.hh +0 -101
- data/ext/gecode-2.1.1/gecode/gist/gecodelogo.icc +0 -522
- data/ext/gecode-2.1.1/gecode/gist/mainwindow.cc +0 -254
- data/ext/gecode-2.1.1/gecode/gist/mainwindow.hh +0 -86
- data/ext/gecode-2.1.1/gecode/gist/node.cc +0 -100
- data/ext/gecode-2.1.1/gecode/gist/node.hh +0 -89
- data/ext/gecode-2.1.1/gecode/gist/nodecursor.cc +0 -124
- data/ext/gecode-2.1.1/gecode/gist/nodecursor.hh +0 -122
- data/ext/gecode-2.1.1/gecode/gist/nodecursor.icc +0 -79
- data/ext/gecode-2.1.1/gecode/gist/postscript.cc +0 -543
- data/ext/gecode-2.1.1/gecode/gist/postscript.hh +0 -56
- data/ext/gecode-2.1.1/gecode/gist/preferences.cc +0 -110
- data/ext/gecode-2.1.1/gecode/gist/preferences.hh +0 -76
- data/ext/gecode-2.1.1/gecode/gist/reflectionhelpers.cc +0 -55
- data/ext/gecode-2.1.1/gecode/gist/reflectionhelpers.hh +0 -58
- data/ext/gecode-2.1.1/gecode/gist/shapelist.cc +0 -331
- data/ext/gecode-2.1.1/gecode/gist/shapelist.hh +0 -140
- data/ext/gecode-2.1.1/gecode/gist/spacenode.cc +0 -531
- data/ext/gecode-2.1.1/gecode/gist/spacenode.hh +0 -224
- data/ext/gecode-2.1.1/gecode/gist/textoutput.cc +0 -114
- data/ext/gecode-2.1.1/gecode/gist/treecanvas.cc +0 -1140
- data/ext/gecode-2.1.1/gecode/gist/treecanvas.hh +0 -324
- data/ext/gecode-2.1.1/gecode/gist/ui_addvisualisationdialog.hh +0 -163
- data/ext/gecode-2.1.1/gecode/gist/visualisation/intvaritem.cc +0 -175
- data/ext/gecode-2.1.1/gecode/gist/visualisation/intvaritem.hh +0 -71
- data/ext/gecode-2.1.1/gecode/gist/visualisation/setvaritem.cc +0 -219
- data/ext/gecode-2.1.1/gecode/gist/visualisation/setvaritem.hh +0 -73
- data/ext/gecode-2.1.1/gecode/gist/visualisation/vararrayitem.hh +0 -123
- data/ext/gecode-2.1.1/gecode/gist/visualnode.cc +0 -303
- data/ext/gecode-2.1.1/gecode/gist/visualnode.hh +0 -166
- data/ext/gecode-2.1.1/gecode/int.hh +0 -2035
- data/ext/gecode-2.1.1/gecode/int/arithmetic.cc +0 -136
- data/ext/gecode-2.1.1/gecode/int/arithmetic.hh +0 -440
- data/ext/gecode-2.1.1/gecode/int/arithmetic/abs.icc +0 -279
- data/ext/gecode-2.1.1/gecode/int/arithmetic/max.icc +0 -253
- data/ext/gecode-2.1.1/gecode/int/arithmetic/mult.icc +0 -522
- data/ext/gecode-2.1.1/gecode/int/arithmetic/sqr.icc +0 -218
- data/ext/gecode-2.1.1/gecode/int/arithmetic/sqrt.icc +0 -138
- data/ext/gecode-2.1.1/gecode/int/bool.cc +0 -642
- data/ext/gecode-2.1.1/gecode/int/bool/or.icc +0 -1000
- data/ext/gecode-2.1.1/gecode/int/branch.cc +0 -301
- data/ext/gecode-2.1.1/gecode/int/branch.hh +0 -576
- data/ext/gecode-2.1.1/gecode/int/branch/select-val.icc +0 -338
- data/ext/gecode-2.1.1/gecode/int/channel.cc +0 -114
- data/ext/gecode-2.1.1/gecode/int/channel.hh +0 -259
- data/ext/gecode-2.1.1/gecode/int/channel/dom.icc +0 -347
- data/ext/gecode-2.1.1/gecode/int/channel/val.icc +0 -276
- data/ext/gecode-2.1.1/gecode/int/circuit.hh +0 -175
- data/ext/gecode-2.1.1/gecode/int/circuit/base.icc +0 -271
- data/ext/gecode-2.1.1/gecode/int/circuit/val.icc +0 -122
- data/ext/gecode-2.1.1/gecode/int/count.hh +0 -487
- data/ext/gecode-2.1.1/gecode/int/count/int.icc +0 -619
- data/ext/gecode-2.1.1/gecode/int/count/rel.icc +0 -144
- data/ext/gecode-2.1.1/gecode/int/count/view.icc +0 -449
- data/ext/gecode-2.1.1/gecode/int/cumulatives.hh +0 -141
- data/ext/gecode-2.1.1/gecode/int/cumulatives/val.icc +0 -429
- data/ext/gecode-2.1.1/gecode/int/distinct.hh +0 -341
- data/ext/gecode-2.1.1/gecode/int/distinct/dom.icc +0 -750
- data/ext/gecode-2.1.1/gecode/int/distinct/ter-dom.icc +0 -136
- data/ext/gecode-2.1.1/gecode/int/element.hh +0 -239
- data/ext/gecode-2.1.1/gecode/int/element/int.icc +0 -441
- data/ext/gecode-2.1.1/gecode/int/element/view.icc +0 -584
- data/ext/gecode-2.1.1/gecode/int/exception.icc +0 -163
- data/ext/gecode-2.1.1/gecode/int/extensional.hh +0 -415
- data/ext/gecode-2.1.1/gecode/int/extensional/dfa.cc +0 -565
- data/ext/gecode-2.1.1/gecode/int/extensional/tuple-set.cc +0 -311
- data/ext/gecode-2.1.1/gecode/int/gcc.hh +0 -329
- data/ext/gecode-2.1.1/gecode/int/gcc/bnd.icc +0 -660
- data/ext/gecode-2.1.1/gecode/int/gcc/dom.icc +0 -531
- data/ext/gecode-2.1.1/gecode/int/gcc/val.icc +0 -400
- data/ext/gecode-2.1.1/gecode/int/int-set.cc +0 -153
- data/ext/gecode-2.1.1/gecode/int/int-set.icc +0 -191
- data/ext/gecode-2.1.1/gecode/int/linear-bool.cc +0 -220
- data/ext/gecode-2.1.1/gecode/int/linear-int.cc +0 -240
- data/ext/gecode-2.1.1/gecode/int/linear.hh +0 -1849
- data/ext/gecode-2.1.1/gecode/int/linear/bool-post.cc +0 -433
- data/ext/gecode-2.1.1/gecode/int/linear/int-bin.icc +0 -605
- data/ext/gecode-2.1.1/gecode/int/linear/int-dom.icc +0 -539
- data/ext/gecode-2.1.1/gecode/int/linear/int-post.cc +0 -493
- data/ext/gecode-2.1.1/gecode/int/rel.cc +0 -431
- data/ext/gecode-2.1.1/gecode/int/rel.hh +0 -657
- data/ext/gecode-2.1.1/gecode/int/rel/eq.icc +0 -848
- data/ext/gecode-2.1.1/gecode/int/rel/lex.icc +0 -248
- data/ext/gecode-2.1.1/gecode/int/rel/nq.icc +0 -269
- data/ext/gecode-2.1.1/gecode/int/sorted.cc +0 -91
- data/ext/gecode-2.1.1/gecode/int/sorted.hh +0 -117
- data/ext/gecode-2.1.1/gecode/int/sorted/matching.icc +0 -182
- data/ext/gecode-2.1.1/gecode/int/sorted/narrowing.icc +0 -257
- data/ext/gecode-2.1.1/gecode/int/sorted/order.icc +0 -208
- data/ext/gecode-2.1.1/gecode/int/sorted/propagate.icc +0 -669
- data/ext/gecode-2.1.1/gecode/int/sorted/sortsup.icc +0 -596
- data/ext/gecode-2.1.1/gecode/int/var-imp.icc +0 -745
- data/ext/gecode-2.1.1/gecode/int/var-imp/bool.cc +0 -104
- data/ext/gecode-2.1.1/gecode/int/var-imp/int.cc +0 -407
- data/ext/gecode-2.1.1/gecode/int/var/bool.icc +0 -126
- data/ext/gecode-2.1.1/gecode/int/var/int.icc +0 -151
- data/ext/gecode-2.1.1/gecode/int/view.icc +0 -1894
- data/ext/gecode-2.1.1/gecode/iter.hh +0 -90
- data/ext/gecode-2.1.1/gecode/iter/values-minus.icc +0 -130
- data/ext/gecode-2.1.1/gecode/kernel.hh +0 -182
- data/ext/gecode-2.1.1/gecode/kernel/branching.icc +0 -447
- data/ext/gecode-2.1.1/gecode/kernel/core.cc +0 -473
- data/ext/gecode-2.1.1/gecode/kernel/core.icc +0 -2295
- data/ext/gecode-2.1.1/gecode/kernel/memory-manager.icc +0 -458
- data/ext/gecode-2.1.1/gecode/kernel/reflection.cc +0 -921
- data/ext/gecode-2.1.1/gecode/kernel/reflection.icc +0 -1012
- data/ext/gecode-2.1.1/gecode/kernel/var-imp.icc +0 -433
- data/ext/gecode-2.1.1/gecode/kernel/var-map.cc +0 -269
- data/ext/gecode-2.1.1/gecode/kernel/var-map.icc +0 -227
- data/ext/gecode-2.1.1/gecode/kernel/var-traits.icc +0 -72
- data/ext/gecode-2.1.1/gecode/kernel/var-type.icc +0 -915
- data/ext/gecode-2.1.1/gecode/kernel/var.icc +0 -120
- data/ext/gecode-2.1.1/gecode/kernel/view.icc +0 -611
- data/ext/gecode-2.1.1/gecode/minimodel.hh +0 -1165
- data/ext/gecode-2.1.1/gecode/minimodel/arithmetic.cc +0 -179
- data/ext/gecode-2.1.1/gecode/search.hh +0 -752
- data/ext/gecode-2.1.1/gecode/search/reco-stack.icc +0 -237
- data/ext/gecode-2.1.1/gecode/serialization.hh +0 -149
- data/ext/gecode-2.1.1/gecode/serialization/boost.cc +0 -78
- data/ext/gecode-2.1.1/gecode/serialization/javascript.cc +0 -340
- data/ext/gecode-2.1.1/gecode/serialization/register.cc +0 -8142
- data/ext/gecode-2.1.1/gecode/set.hh +0 -970
- data/ext/gecode-2.1.1/gecode/set/projectors.hh +0 -438
- data/ext/gecode-2.1.1/gecode/set/projectors/formula.cc +0 -312
- data/ext/gecode-2.1.1/gecode/set/rel-op/common.icc +0 -557
- data/ext/gecode-2.1.1/gecode/set/rel-op/inter.icc +0 -409
- data/ext/gecode-2.1.1/gecode/set/rel/re-subset.icc +0 -172
- data/ext/gecode-2.1.1/gecode/set/select.cc +0 -135
- data/ext/gecode-2.1.1/gecode/set/select.hh +0 -233
- data/ext/gecode-2.1.1/gecode/set/select/disjoint.cc +0 -308
- data/ext/gecode-2.1.1/gecode/set/select/disjoint.icc +0 -75
- data/ext/gecode-2.1.1/gecode/set/select/idxarray.hh +0 -113
- data/ext/gecode-2.1.1/gecode/set/select/idxarray.icc +0 -155
- data/ext/gecode-2.1.1/gecode/set/select/inter.icc +0 -349
- data/ext/gecode-2.1.1/gecode/set/select/union.icc +0 -371
- data/ext/gecode-2.1.1/gecode/set/select/unionConst.icc +0 -334
- data/ext/gecode-2.1.1/gecode/set/var-imp/set.cc +0 -214
- data/ext/gecode-2.1.1/gecode/set/var/set.icc +0 -303
- data/ext/gecode-2.1.1/gecode/set/view.icc +0 -1503
- data/ext/gecode-2.1.1/gecode/set/view/complement.icc +0 -629
- data/ext/gecode-2.1.1/gecode/support/block-allocator.icc +0 -158
- data/ext/gecode-2.1.1/gecode/support/config.icc.in +0 -80
- data/ext/gecode-2.1.1/gecode/support/sentinel-stack.icc +0 -122
- data/ext/gecode-2.1.1/gecode/support/symbol.cc +0 -226
- data/ext/gecode-2.1.1/gecode/support/symbol.icc +0 -130
- data/ext/gecode-2.1.1/misc/gecode-gist.pc.in +0 -45
- data/ext/gecode-2.1.1/misc/gecode-minimodel.pc.in +0 -45
- data/ext/gecode-2.1.1/misc/gecode-search.pc.in +0 -45
- data/ext/gecode-2.1.1/misc/gecode-serialization.pc.in +0 -45
- data/ext/gecode-2.1.1/misc/gecode.pc.in +0 -45
- data/ext/gecode-2.1.1/misc/genstatistics.perl +0 -178
- data/ext/gecode-2.1.1/misc/genvariables.perl +0 -905
- data/lib/gecoder/interface/constraints/set_enum/select.rb +0 -79
- data/lib/gecoder/interface/model.rb +0 -453
- data/lib/gecoder/interface/model_sugar.rb +0 -84
- data/specs/constraints/set_enum/select.rb +0 -73
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,181 @@
|
|
1
|
+
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Main authors:
|
4
|
+
* Christian Schulte <schulte@gecode.org>
|
5
|
+
*
|
6
|
+
* Copyright:
|
7
|
+
* Christian Schulte, 2008
|
8
|
+
*
|
9
|
+
* Last modified:
|
10
|
+
* $Date: 2008-02-27 05:39:03 +0100 (Wed, 27 Feb 2008) $ by $Author: schulte $
|
11
|
+
* $Revision: 6320 $
|
12
|
+
*
|
13
|
+
* This file is part of Gecode, the generic constraint
|
14
|
+
* development environment:
|
15
|
+
* http://www.gecode.org
|
16
|
+
*
|
17
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
18
|
+
* a copy of this software and associated documentation files (the
|
19
|
+
* "Software"), to deal in the Software without restriction, including
|
20
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
21
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
22
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
23
|
+
* the following conditions:
|
24
|
+
*
|
25
|
+
* The above copyright notice and this permission notice shall be
|
26
|
+
* included in all copies or substantial portions of the Software.
|
27
|
+
*
|
28
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
29
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
30
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
31
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
32
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
33
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
34
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
35
|
+
*
|
36
|
+
*/
|
37
|
+
|
38
|
+
#include "test/assign.hh"
|
39
|
+
|
40
|
+
#include "gecode/kernel.hh"
|
41
|
+
#include "gecode/int.hh"
|
42
|
+
#include "gecode/search.hh"
|
43
|
+
|
44
|
+
namespace Test { namespace Assign {
|
45
|
+
|
46
|
+
/// Space for executing integer tests
|
47
|
+
class IntTestSpace : public Gecode::Space {
|
48
|
+
public:
|
49
|
+
/// Variables to be tested
|
50
|
+
Gecode::IntVarArray x;
|
51
|
+
/// Initialize test space
|
52
|
+
IntTestSpace(int n, Gecode::IntSet& d)
|
53
|
+
: x(this, n, d) {}
|
54
|
+
/// Constructor for cloning \a s
|
55
|
+
IntTestSpace(bool share, IntTestSpace& s)
|
56
|
+
: Gecode::Space(share,s) {
|
57
|
+
x.update(this, share, s.x);
|
58
|
+
}
|
59
|
+
/// Copy space during cloning
|
60
|
+
virtual Gecode::Space* copy(bool share) {
|
61
|
+
return new IntTestSpace(share,*this);
|
62
|
+
}
|
63
|
+
};
|
64
|
+
|
65
|
+
/// Space for executing Boolean tests
|
66
|
+
class BoolTestSpace : public Gecode::Space {
|
67
|
+
public:
|
68
|
+
/// Variables to be tested
|
69
|
+
Gecode::BoolVarArray x;
|
70
|
+
/// Initialize test space
|
71
|
+
BoolTestSpace(int n)
|
72
|
+
: x(this, n, 0, 1) {}
|
73
|
+
/// Constructor for cloning \a s
|
74
|
+
BoolTestSpace(bool share, BoolTestSpace& s)
|
75
|
+
: Gecode::Space(share,s) {
|
76
|
+
x.update(this, share, s.x);
|
77
|
+
}
|
78
|
+
/// Copy space during cloning
|
79
|
+
virtual Gecode::Space* copy(bool share) {
|
80
|
+
return new BoolTestSpace(share,*this);
|
81
|
+
}
|
82
|
+
};
|
83
|
+
|
84
|
+
|
85
|
+
/** \name Collection of possible arguments for integer assignments
|
86
|
+
*
|
87
|
+
* \relates IntTestSpace BoolTestSpace
|
88
|
+
*/
|
89
|
+
//@{
|
90
|
+
/// Integer value assignments
|
91
|
+
const Gecode::IntAssign int_assign[] = {
|
92
|
+
Gecode::INT_ASSIGN_MIN,
|
93
|
+
Gecode::INT_ASSIGN_MED,
|
94
|
+
Gecode::INT_ASSIGN_MAX
|
95
|
+
};
|
96
|
+
/// Number of integer value selections
|
97
|
+
const int n_int_assign =
|
98
|
+
sizeof(int_assign)/sizeof(Gecode::IntAssign);
|
99
|
+
/// Names for integer assignments
|
100
|
+
const char* int_assign_name[] = {
|
101
|
+
"INT_ASSIGN_MIN",
|
102
|
+
"INT_ASSIGN_MED",
|
103
|
+
"INT_ASSIGN_MAX"
|
104
|
+
};
|
105
|
+
//@}
|
106
|
+
|
107
|
+
IntTest::IntTest(const std::string& s, int a, const Gecode::IntSet& d)
|
108
|
+
: Base("Assign::Int::"+s), arity(a), dom(d) {
|
109
|
+
}
|
110
|
+
|
111
|
+
bool
|
112
|
+
IntTest::run(void) {
|
113
|
+
using namespace Gecode;
|
114
|
+
IntTestSpace* root = new IntTestSpace(arity,dom);
|
115
|
+
post(root, root->x);
|
116
|
+
|
117
|
+
for (int val = n_int_assign; val--; ) {
|
118
|
+
IntTestSpace* clone = static_cast<IntTestSpace*>(root->clone(false));
|
119
|
+
Gecode::Search::Options o;
|
120
|
+
o.a_d = Base::rand(10);
|
121
|
+
o.c_d = Base::rand(10);
|
122
|
+
assign(clone, clone->x, int_assign[val]);
|
123
|
+
Gecode::DFS<IntTestSpace> e_s(clone, o);
|
124
|
+
delete clone;
|
125
|
+
|
126
|
+
// Find number of solutions
|
127
|
+
int solutions = 0;
|
128
|
+
while (Space* s = e_s.next()) {
|
129
|
+
delete s; solutions++;
|
130
|
+
}
|
131
|
+
if (solutions != 1) {
|
132
|
+
std::cout << "FAILURE" << std::endl
|
133
|
+
<< "\tc_d=" << o.c_d << ", a_d=" << o.a_d << std::endl
|
134
|
+
<< "\t" << int_assign_name[val] << std::endl;
|
135
|
+
delete root;
|
136
|
+
return false;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
delete root;
|
140
|
+
return true;
|
141
|
+
}
|
142
|
+
|
143
|
+
BoolTest::BoolTest(const std::string& s, int a)
|
144
|
+
: Base("Assign::Bool::"+s), arity(a) {
|
145
|
+
}
|
146
|
+
|
147
|
+
bool
|
148
|
+
BoolTest::run(void) {
|
149
|
+
using namespace Gecode;
|
150
|
+
BoolTestSpace* root = new BoolTestSpace(arity);
|
151
|
+
post(root, root->x);
|
152
|
+
|
153
|
+
for (int val = n_int_assign; val--; ) {
|
154
|
+
BoolTestSpace* clone = static_cast<BoolTestSpace*>(root->clone(false));
|
155
|
+
Gecode::Search::Options o;
|
156
|
+
o.a_d = Base::rand(10);
|
157
|
+
o.c_d = Base::rand(10);
|
158
|
+
assign(clone, clone->x, int_assign[val]);
|
159
|
+
Gecode::DFS<BoolTestSpace> e_s(clone, o);
|
160
|
+
delete clone;
|
161
|
+
|
162
|
+
// Find number of solutions
|
163
|
+
int solutions = 0;
|
164
|
+
while (Space* s = e_s.next()) {
|
165
|
+
delete s; solutions++;
|
166
|
+
}
|
167
|
+
if (solutions != 1) {
|
168
|
+
std::cout << "FAILURE" << std::endl
|
169
|
+
<< "\tc_d=" << o.c_d << ", a_d=" << o.a_d << std::endl
|
170
|
+
<< "\t" << int_assign_name[val] << std::endl;
|
171
|
+
delete root;
|
172
|
+
return false;
|
173
|
+
}
|
174
|
+
}
|
175
|
+
delete root;
|
176
|
+
return true;
|
177
|
+
}
|
178
|
+
|
179
|
+
}}
|
180
|
+
|
181
|
+
// STATISTICS: test-branch
|
@@ -0,0 +1,93 @@
|
|
1
|
+
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Main authors:
|
4
|
+
* Christian Schulte <schulte@gecode.org>
|
5
|
+
*
|
6
|
+
* Copyright:
|
7
|
+
* Christian Schulte, 2008
|
8
|
+
*
|
9
|
+
* Last modified:
|
10
|
+
* $Date: 2008-02-27 05:39:03 +0100 (Wed, 27 Feb 2008) $ by $Author: schulte $
|
11
|
+
* $Revision: 6320 $
|
12
|
+
*
|
13
|
+
* This file is part of Gecode, the generic constraint
|
14
|
+
* development environment:
|
15
|
+
* http://www.gecode.org
|
16
|
+
*
|
17
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
18
|
+
* a copy of this software and associated documentation files (the
|
19
|
+
* "Software"), to deal in the Software without restriction, including
|
20
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
21
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
22
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
23
|
+
* the following conditions:
|
24
|
+
*
|
25
|
+
* The above copyright notice and this permission notice shall be
|
26
|
+
* included in all copies or substantial portions of the Software.
|
27
|
+
*
|
28
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
29
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
30
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
31
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
32
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
33
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
34
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
35
|
+
*
|
36
|
+
*/
|
37
|
+
|
38
|
+
#ifndef __GECODE_TEST_ASSIGN_HH__
|
39
|
+
#define __GECODE_TEST_ASSIGN_HH__
|
40
|
+
|
41
|
+
#include "gecode/kernel.hh"
|
42
|
+
#include "gecode/int.hh"
|
43
|
+
|
44
|
+
#include "test/test.hh"
|
45
|
+
|
46
|
+
namespace Test {
|
47
|
+
|
48
|
+
/// Tests for assignments
|
49
|
+
namespace Assign {
|
50
|
+
|
51
|
+
/**
|
52
|
+
* \brief Base class for tests for assigning integer variables
|
53
|
+
*
|
54
|
+
*/
|
55
|
+
class IntTest : public Base {
|
56
|
+
protected:
|
57
|
+
/// Number of variables
|
58
|
+
int arity;
|
59
|
+
/// Domain of variables
|
60
|
+
Gecode::IntSet dom;
|
61
|
+
public:
|
62
|
+
/// Construct and register test
|
63
|
+
IntTest(const std::string& s, int a, const Gecode::IntSet& d);
|
64
|
+
/// Perform test
|
65
|
+
virtual bool run(void);
|
66
|
+
/// Post assignment on variables \a x
|
67
|
+
virtual void post(Gecode::Space* home, Gecode::IntVarArray& x) = 0;
|
68
|
+
};
|
69
|
+
|
70
|
+
/**
|
71
|
+
* \brief Base class for tests for branching on Boolean variables
|
72
|
+
*
|
73
|
+
*/
|
74
|
+
class BoolTest : public Base {
|
75
|
+
protected:
|
76
|
+
/// Number of variables
|
77
|
+
int arity;
|
78
|
+
public:
|
79
|
+
/// Construct and register test
|
80
|
+
BoolTest(const std::string& s, int a);
|
81
|
+
/// Perform test
|
82
|
+
virtual bool run(void);
|
83
|
+
/// Post assignment on variables \a x
|
84
|
+
virtual void post(Gecode::Space* home, Gecode::BoolVarArray& x) = 0;
|
85
|
+
};
|
86
|
+
|
87
|
+
}
|
88
|
+
|
89
|
+
}
|
90
|
+
|
91
|
+
#endif
|
92
|
+
|
93
|
+
// STATISTICS: test-branch
|
@@ -0,0 +1,61 @@
|
|
1
|
+
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Main authors:
|
4
|
+
* Christian Schulte <schulte@gecode.org>
|
5
|
+
*
|
6
|
+
* Copyright:
|
7
|
+
* Christian Schulte, 2008
|
8
|
+
*
|
9
|
+
* Last modified:
|
10
|
+
* $Date: 2008-02-27 05:39:03 +0100 (Wed, 27 Feb 2008) $ by $Author: schulte $
|
11
|
+
* $Revision: 6320 $
|
12
|
+
*
|
13
|
+
* This file is part of Gecode, the generic constraint
|
14
|
+
* development environment:
|
15
|
+
* http://www.gecode.org
|
16
|
+
*
|
17
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
18
|
+
* a copy of this software and associated documentation files (the
|
19
|
+
* "Software"), to deal in the Software without restriction, including
|
20
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
21
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
22
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
23
|
+
* the following conditions:
|
24
|
+
*
|
25
|
+
* The above copyright notice and this permission notice shall be
|
26
|
+
* included in all copies or substantial portions of the Software.
|
27
|
+
*
|
28
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
29
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
30
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
31
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
32
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
33
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
34
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
35
|
+
*
|
36
|
+
*/
|
37
|
+
|
38
|
+
#include "test/assign.hh"
|
39
|
+
|
40
|
+
namespace Test { namespace Assign {
|
41
|
+
|
42
|
+
/// Test branching with distinct propagator
|
43
|
+
class Bool : public BoolTest {
|
44
|
+
public:
|
45
|
+
/// Create and register test
|
46
|
+
Bool(const std::string& s, int n)
|
47
|
+
: BoolTest(s,n) {}
|
48
|
+
/// Post propagators on variables \a x
|
49
|
+
virtual void post(Gecode::Space* home, Gecode::BoolVarArray& x) {
|
50
|
+
Gecode::rel(home, Gecode::BOT_OR, x, 1);
|
51
|
+
}
|
52
|
+
};
|
53
|
+
|
54
|
+
Bool b_3("3",3);
|
55
|
+
Bool b_5("5",5);
|
56
|
+
Bool b_7("7",7);
|
57
|
+
|
58
|
+
}}
|
59
|
+
|
60
|
+
// STATISTICS: test-branch
|
61
|
+
|
@@ -0,0 +1,70 @@
|
|
1
|
+
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Main authors:
|
4
|
+
* Christian Schulte <schulte@gecode.org>
|
5
|
+
*
|
6
|
+
* Copyright:
|
7
|
+
* Christian Schulte, 2008
|
8
|
+
*
|
9
|
+
* Last modified:
|
10
|
+
* $Date: 2008-02-27 05:39:03 +0100 (Wed, 27 Feb 2008) $ by $Author: schulte $
|
11
|
+
* $Revision: 6320 $
|
12
|
+
*
|
13
|
+
* This file is part of Gecode, the generic constraint
|
14
|
+
* development environment:
|
15
|
+
* http://www.gecode.org
|
16
|
+
*
|
17
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
18
|
+
* a copy of this software and associated documentation files (the
|
19
|
+
* "Software"), to deal in the Software without restriction, including
|
20
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
21
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
22
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
23
|
+
* the following conditions:
|
24
|
+
*
|
25
|
+
* The above copyright notice and this permission notice shall be
|
26
|
+
* included in all copies or substantial portions of the Software.
|
27
|
+
*
|
28
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
29
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
30
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
31
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
32
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
33
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
34
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
35
|
+
*
|
36
|
+
*/
|
37
|
+
|
38
|
+
#include "test/assign.hh"
|
39
|
+
|
40
|
+
namespace Test { namespace Assign {
|
41
|
+
|
42
|
+
/// Test assignment with distinct propagator
|
43
|
+
class Int : public IntTest {
|
44
|
+
public:
|
45
|
+
/// Create and register test
|
46
|
+
Int(const std::string& s, const Gecode::IntSet& d, int n)
|
47
|
+
: IntTest(s,n,d) {}
|
48
|
+
/// Post propagators on variables \a x
|
49
|
+
virtual void post(Gecode::Space* home, Gecode::IntVarArray& x) {
|
50
|
+
Gecode::distinct(home, x);
|
51
|
+
}
|
52
|
+
};
|
53
|
+
|
54
|
+
Gecode::IntSet d_dense(-2,2);
|
55
|
+
const int v_sparse[5] = {-100,-10,0,10,100};
|
56
|
+
Gecode::IntSet d_sparse(v_sparse,5);
|
57
|
+
|
58
|
+
Gecode::IntSet d_large(-2,10);
|
59
|
+
|
60
|
+
Int d_3("Dense::3",d_dense,3);
|
61
|
+
Int d_5("Dense::5",d_dense,5);
|
62
|
+
Int s_3("Sparse::3",d_sparse,3);
|
63
|
+
Int s_5("Sparse::5",d_sparse,5);
|
64
|
+
Int l_2("Large::2",d_large,2);
|
65
|
+
Int l_3("Large::3",d_large,3);
|
66
|
+
|
67
|
+
}}
|
68
|
+
|
69
|
+
// STATISTICS: test-branch
|
70
|
+
|
@@ -0,0 +1,563 @@
|
|
1
|
+
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Main authors:
|
4
|
+
* Mikael Lagerkvist <lagerkvist@gecode.org>
|
5
|
+
*
|
6
|
+
* Copyright:
|
7
|
+
* Mikael Lagerkvist, 2005
|
8
|
+
*
|
9
|
+
* Last modified:
|
10
|
+
* $Date: 2008-02-27 04:53:59 +0100 (Wed, 27 Feb 2008) $ by $Author: schulte $
|
11
|
+
* $Revision: 6318 $
|
12
|
+
*
|
13
|
+
* This file is part of Gecode, the generic constraint
|
14
|
+
* development environment:
|
15
|
+
* http://www.gecode.org
|
16
|
+
*
|
17
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
18
|
+
* a copy of this software and associated documentation files (the
|
19
|
+
* "Software"), to deal in the Software without restriction, including
|
20
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
21
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
22
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
23
|
+
* the following conditions:
|
24
|
+
*
|
25
|
+
* The above copyright notice and this permission notice shall be
|
26
|
+
* included in all copies or substantial portions of the Software.
|
27
|
+
*
|
28
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
29
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
30
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
31
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
32
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
33
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
34
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
35
|
+
*
|
36
|
+
*/
|
37
|
+
|
38
|
+
#include "test/branch.hh"
|
39
|
+
|
40
|
+
#include <algorithm>
|
41
|
+
#include <map>
|
42
|
+
#include <vector>
|
43
|
+
#include <iostream>
|
44
|
+
|
45
|
+
#include "gecode/kernel.hh"
|
46
|
+
#include "gecode/int.hh"
|
47
|
+
#ifdef GECODE_HAS_SET_VARS
|
48
|
+
#include "gecode/set.hh"
|
49
|
+
#endif
|
50
|
+
|
51
|
+
#include "gecode/search.hh"
|
52
|
+
|
53
|
+
namespace Test { namespace Branch {
|
54
|
+
|
55
|
+
/// Space for executing integer tests
|
56
|
+
class IntTestSpace : public Gecode::Space {
|
57
|
+
public:
|
58
|
+
/// Variables to be tested
|
59
|
+
Gecode::IntVarArray x;
|
60
|
+
/// Initialize test space
|
61
|
+
IntTestSpace(int n, Gecode::IntSet& d)
|
62
|
+
: x(this, n, d) {}
|
63
|
+
/// Constructor for cloning \a s
|
64
|
+
IntTestSpace(bool share, IntTestSpace& s)
|
65
|
+
: Gecode::Space(share,s) {
|
66
|
+
x.update(this, share, s.x);
|
67
|
+
}
|
68
|
+
/// Copy space during cloning
|
69
|
+
virtual Gecode::Space* copy(bool share) {
|
70
|
+
return new IntTestSpace(share,*this);
|
71
|
+
}
|
72
|
+
};
|
73
|
+
|
74
|
+
/// Space for executing Boolean tests
|
75
|
+
class BoolTestSpace : public Gecode::Space {
|
76
|
+
public:
|
77
|
+
/// Variables to be tested
|
78
|
+
Gecode::BoolVarArray x;
|
79
|
+
/// Initialize test space
|
80
|
+
BoolTestSpace(int n)
|
81
|
+
: x(this, n, 0, 1) {}
|
82
|
+
/// Constructor for cloning \a s
|
83
|
+
BoolTestSpace(bool share, BoolTestSpace& s)
|
84
|
+
: Gecode::Space(share,s) {
|
85
|
+
x.update(this, share, s.x);
|
86
|
+
}
|
87
|
+
/// Copy space during cloning
|
88
|
+
virtual Gecode::Space* copy(bool share) {
|
89
|
+
return new BoolTestSpace(share,*this);
|
90
|
+
}
|
91
|
+
};
|
92
|
+
|
93
|
+
#ifdef GECODE_HAS_SET_VARS
|
94
|
+
/// Space for executing Boolean tests
|
95
|
+
class SetTestSpace : public Gecode::Space {
|
96
|
+
public:
|
97
|
+
/// Variables to be tested
|
98
|
+
Gecode::SetVarArray x;
|
99
|
+
/// Initialize test space
|
100
|
+
SetTestSpace(int n, Gecode::IntSet& d)
|
101
|
+
: x(this, n, Gecode::IntSet::empty, d) {}
|
102
|
+
/// Constructor for cloning \a s
|
103
|
+
SetTestSpace(bool share, SetTestSpace& s)
|
104
|
+
: Gecode::Space(share,s) {
|
105
|
+
x.update(this, share, s.x);
|
106
|
+
}
|
107
|
+
/// Copy space during cloning
|
108
|
+
virtual Gecode::Space* copy(bool share) {
|
109
|
+
return new SetTestSpace(share,*this);
|
110
|
+
}
|
111
|
+
};
|
112
|
+
#endif
|
113
|
+
|
114
|
+
#ifdef GECODE_HAS_CPLTSET_VARS
|
115
|
+
/// Space for executing Boolean tests
|
116
|
+
class CpltSetTestSpace : public Gecode::Space {
|
117
|
+
public:
|
118
|
+
/// Variables to be tested
|
119
|
+
Gecode::CpltSetVarArray x;
|
120
|
+
/// Initialize test space
|
121
|
+
CpltSetTestSpace(int n, Gecode::IntSet& d)
|
122
|
+
: x(this, n, Gecode::IntSet::empty, d) {}
|
123
|
+
/// Constructor for cloning \a s
|
124
|
+
CpltSetTestSpace(bool share, CpltSetTestSpace& s)
|
125
|
+
: Gecode::Space(share,s) {
|
126
|
+
x.update(this, share, s.x);
|
127
|
+
}
|
128
|
+
/// Copy space during cloning
|
129
|
+
virtual Gecode::Space* copy(bool share) {
|
130
|
+
return new CpltSetTestSpace(share,*this);
|
131
|
+
}
|
132
|
+
};
|
133
|
+
#endif
|
134
|
+
|
135
|
+
/** \name Collection of possible arguments for integer branchings
|
136
|
+
*
|
137
|
+
* \relates IntTestSpace BoolTestSpace
|
138
|
+
*/
|
139
|
+
//@{
|
140
|
+
/// Integer variable selections
|
141
|
+
const Gecode::IntVarBranch int_var_branch[] = {
|
142
|
+
Gecode::INT_VAR_NONE,
|
143
|
+
Gecode::INT_VAR_MIN_MIN,
|
144
|
+
Gecode::INT_VAR_MIN_MAX,
|
145
|
+
Gecode::INT_VAR_MAX_MIN,
|
146
|
+
Gecode::INT_VAR_MAX_MAX,
|
147
|
+
Gecode::INT_VAR_SIZE_MIN,
|
148
|
+
Gecode::INT_VAR_SIZE_MAX,
|
149
|
+
Gecode::INT_VAR_DEGREE_MIN,
|
150
|
+
Gecode::INT_VAR_DEGREE_MAX,
|
151
|
+
Gecode::INT_VAR_SIZE_DEGREE_MIN,
|
152
|
+
Gecode::INT_VAR_SIZE_DEGREE_MAX,
|
153
|
+
Gecode::INT_VAR_REGRET_MIN_MIN,
|
154
|
+
Gecode::INT_VAR_REGRET_MIN_MAX,
|
155
|
+
Gecode::INT_VAR_REGRET_MAX_MIN,
|
156
|
+
Gecode::INT_VAR_REGRET_MAX_MAX
|
157
|
+
};
|
158
|
+
/// Number of integer variable selections
|
159
|
+
const int n_int_var_branch =
|
160
|
+
sizeof(int_var_branch)/sizeof(Gecode::IntVarBranch);
|
161
|
+
/// Names for integer variable selections
|
162
|
+
const char* int_var_branch_name[] = {
|
163
|
+
"INT_VAR_NONE",
|
164
|
+
"INT_VAR_MIN_MIN",
|
165
|
+
"INT_VAR_MIN_MAX",
|
166
|
+
"INT_VAR_MAX_MIN",
|
167
|
+
"INT_VAR_MAX_MAX",
|
168
|
+
"INT_VAR_SIZE_MIN",
|
169
|
+
"INT_VAR_SIZE_MAX",
|
170
|
+
"INT_VAR_DEGREE_MIN",
|
171
|
+
"INT_VAR_DEGREE_MAX",
|
172
|
+
"INT_VAR_SIZE_DEGREE_MIN",
|
173
|
+
"INT_VAR_SIZE_DEGREE_MAX",
|
174
|
+
"INT_VAR_REGRET_MIN_MIN",
|
175
|
+
"INT_VAR_REGRET_MIN_MAX",
|
176
|
+
"INT_VAR_REGRET_MAX_MIN",
|
177
|
+
"INT_VAR_REGRET_MAX_MAX"
|
178
|
+
};
|
179
|
+
/// Integer value selections
|
180
|
+
const Gecode::IntValBranch int_val_branch[] = {
|
181
|
+
Gecode::INT_VAL_MIN,
|
182
|
+
Gecode::INT_VAL_MED,
|
183
|
+
Gecode::INT_VAL_MAX,
|
184
|
+
Gecode::INT_VAL_SPLIT_MIN,
|
185
|
+
Gecode::INT_VAL_SPLIT_MAX
|
186
|
+
};
|
187
|
+
/// Number of integer value selections
|
188
|
+
const int n_int_val_branch =
|
189
|
+
sizeof(int_val_branch)/sizeof(Gecode::IntValBranch);
|
190
|
+
/// Names for integer value selections
|
191
|
+
const char* int_val_branch_name[] = {
|
192
|
+
"INT_VAL_MIN",
|
193
|
+
"INT_VAL_MED",
|
194
|
+
"INT_VAL_MAX",
|
195
|
+
"INT_VAL_SPLIT_MIN",
|
196
|
+
"INT_VAL_SPLIT_MAX"
|
197
|
+
};
|
198
|
+
//@}
|
199
|
+
|
200
|
+
#ifdef GECODE_HAS_SET_VARS
|
201
|
+
/** \name Collection of possible arguments for set branchings
|
202
|
+
*
|
203
|
+
* \relates SetTestSpace
|
204
|
+
*/
|
205
|
+
//@{
|
206
|
+
/// Set variable selections
|
207
|
+
const Gecode::SetVarBranch set_var_branch[] = {
|
208
|
+
Gecode::SET_VAR_NONE,
|
209
|
+
Gecode::SET_VAR_MIN_CARD,
|
210
|
+
Gecode::SET_VAR_MAX_CARD,
|
211
|
+
Gecode::SET_VAR_MIN_UNKNOWN_ELEM,
|
212
|
+
Gecode::SET_VAR_MAX_UNKNOWN_ELEM
|
213
|
+
};
|
214
|
+
/// Number of set variable selections
|
215
|
+
const int n_set_var_branch =
|
216
|
+
sizeof(set_var_branch)/sizeof(Gecode::SetVarBranch);
|
217
|
+
/// Names for set variable selections
|
218
|
+
const char* set_var_branch_name[] = {
|
219
|
+
"SET_VAR_NONE",
|
220
|
+
"SET_VAR_MIN_CARD",
|
221
|
+
"SET_VAR_MAX_CARD",
|
222
|
+
"SET_VAR_MIN_UNKNOWN_ELEM",
|
223
|
+
"SET_VAR_MAX_UNKNOWN_ELEM"
|
224
|
+
};
|
225
|
+
/// Set value selections
|
226
|
+
const Gecode::SetValBranch set_val_branch[] = {
|
227
|
+
Gecode::SET_VAL_MIN,
|
228
|
+
Gecode::SET_VAL_MAX
|
229
|
+
};
|
230
|
+
/// Number of set value selections
|
231
|
+
const int n_set_val_branch =
|
232
|
+
sizeof(set_val_branch)/sizeof(Gecode::SetValBranch);
|
233
|
+
/// Names for set value selections
|
234
|
+
const char* set_val_branch_name[] = {
|
235
|
+
"SET_VAL_MIN",
|
236
|
+
"SET_VAL_MAX"
|
237
|
+
};
|
238
|
+
//@}
|
239
|
+
#endif
|
240
|
+
|
241
|
+
#ifdef GECODE_HAS_CPLTSET_VARS
|
242
|
+
/** \name Collection of possible arguments for CpltSet branchings
|
243
|
+
*
|
244
|
+
* \relates CpltSetTestSpace
|
245
|
+
*/
|
246
|
+
//@{
|
247
|
+
/// CpltSet variable selections
|
248
|
+
const Gecode::CpltSetVarBranch cpltset_var_branch[] = {
|
249
|
+
Gecode::CPLTSET_VAR_NONE,
|
250
|
+
Gecode::CPLTSET_VAR_MIN_CARD,
|
251
|
+
Gecode::CPLTSET_VAR_MAX_CARD,
|
252
|
+
Gecode::CPLTSET_VAR_MIN_UNKNOWN_ELEM,
|
253
|
+
Gecode::CPLTSET_VAR_MAX_UNKNOWN_ELEM
|
254
|
+
};
|
255
|
+
/// Number of CpltSet variable selections
|
256
|
+
const int n_cpltset_var_branch =
|
257
|
+
sizeof(cpltset_var_branch)/sizeof(Gecode::CpltSetVarBranch);
|
258
|
+
/// Names for CpltSet variable selections
|
259
|
+
const char* cpltset_var_branch_name[] = {
|
260
|
+
"CPLTSET_VAR_NONE",
|
261
|
+
"CPLTSET_VAR_MIN_CARD",
|
262
|
+
"CPLTSET_VAR_MAX_CARD",
|
263
|
+
"CPLTSET_VAR_MIN_UNKNOWN_ELEM",
|
264
|
+
"CPLTSET_VAR_MAX_UNKNOWN_ELEM"
|
265
|
+
};
|
266
|
+
/// Set value selections
|
267
|
+
const Gecode::CpltSetValBranch cpltset_val_branch[] = {
|
268
|
+
Gecode::CPLTSET_VAL_MIN_UNKNOWN,
|
269
|
+
Gecode::CPLTSET_VAL_MAX_UNKNOWN,
|
270
|
+
Gecode::CPLTSET_VAL_MIN_UNKNOWN_EX_FIRST,
|
271
|
+
Gecode::CPLTSET_VAL_MAX_UNKNOWN_EX_FIRST
|
272
|
+
};
|
273
|
+
/// Number of set value selections
|
274
|
+
const int n_cpltset_val_branch =
|
275
|
+
sizeof(cpltset_val_branch)/sizeof(Gecode::CpltSetValBranch);
|
276
|
+
/// Names for set value selections
|
277
|
+
const char* cpltset_val_branch_name[] = {
|
278
|
+
"CPLTSET_VAL_MIN_UNKNOWN",
|
279
|
+
"CPLTSET_VAL_MAX_UNKNOWN",
|
280
|
+
"CPLTSET_VAL_MIN_UNKNOWN_EX_FIRST",
|
281
|
+
"CPLTSET_VAL_MAX_UNKNOWN_EX_FIRST"
|
282
|
+
};
|
283
|
+
//@}
|
284
|
+
#endif
|
285
|
+
|
286
|
+
/// Information about one test-run
|
287
|
+
class RunInfo {
|
288
|
+
public:
|
289
|
+
std::string var, val;
|
290
|
+
unsigned int a_d, c_d;
|
291
|
+
RunInfo(const char* varname, const char* valname,
|
292
|
+
int a_d_val, int c_d_val)
|
293
|
+
: var(varname), val(valname), a_d(a_d_val), c_d(c_d_val) {}
|
294
|
+
void print(std::ostream& o) const {
|
295
|
+
o << "(" << var << ", " << val << ", " << a_d << ", " << c_d << ")";
|
296
|
+
}
|
297
|
+
};
|
298
|
+
|
299
|
+
}}
|
300
|
+
|
301
|
+
std::ostream&
|
302
|
+
operator<<(std::ostream& os, const Test::Branch::RunInfo& ri) {
|
303
|
+
ri.print(os);
|
304
|
+
return os;
|
305
|
+
}
|
306
|
+
|
307
|
+
|
308
|
+
namespace Test { namespace Branch {
|
309
|
+
|
310
|
+
|
311
|
+
IntTest::IntTest(const std::string& s, int a, const Gecode::IntSet& d)
|
312
|
+
: Base("Branch::Int::"+s), arity(a), dom(d) {
|
313
|
+
}
|
314
|
+
|
315
|
+
bool
|
316
|
+
IntTest::run(void) {
|
317
|
+
using std::map;
|
318
|
+
using std::vector;
|
319
|
+
using std::string;
|
320
|
+
using std::ostream;
|
321
|
+
using namespace Gecode;
|
322
|
+
|
323
|
+
// Results of tests run
|
324
|
+
map<int, vector<RunInfo> > results;
|
325
|
+
// Set up root space
|
326
|
+
IntTestSpace* root = new IntTestSpace(arity,dom);
|
327
|
+
post(root, root->x);
|
328
|
+
results.clear();
|
329
|
+
|
330
|
+
for (int var = n_int_var_branch; var--; ) {
|
331
|
+
for (int val = n_int_val_branch; val--; ) {
|
332
|
+
IntTestSpace* clone = static_cast<IntTestSpace*>(root->clone(false));
|
333
|
+
Gecode::Search::Options o;
|
334
|
+
o.a_d = Base::rand(10);
|
335
|
+
o.c_d = Base::rand(10);
|
336
|
+
branch(clone, clone->x, int_var_branch[var], int_val_branch[val]);
|
337
|
+
Gecode::DFS<IntTestSpace> e_s(clone, o);
|
338
|
+
delete clone;
|
339
|
+
|
340
|
+
// Find number of solutions
|
341
|
+
int solutions = 0;
|
342
|
+
do {
|
343
|
+
Space *ex = e_s.next();
|
344
|
+
if (ex == NULL) break;
|
345
|
+
delete ex;
|
346
|
+
++solutions;
|
347
|
+
} while(true);
|
348
|
+
results[solutions].push_back(RunInfo(int_var_branch_name[var],
|
349
|
+
int_val_branch_name[val],
|
350
|
+
o.a_d, o.c_d));
|
351
|
+
}
|
352
|
+
}
|
353
|
+
if (results.size() > 1)
|
354
|
+
goto failed;
|
355
|
+
delete root;
|
356
|
+
return true;
|
357
|
+
failed:
|
358
|
+
std::cout << "FAILURE" << std::endl;
|
359
|
+
for (map<int, vector<RunInfo> >::iterator it = results.begin();
|
360
|
+
it != results.end(); ++it) {
|
361
|
+
std::cout << "Number of solutions: " << it->first << std::endl;
|
362
|
+
for (unsigned int i = 0; i < it->second.size(); ++i)
|
363
|
+
std::cout << it->second[i] << " ";
|
364
|
+
std::cout << std::endl;
|
365
|
+
}
|
366
|
+
|
367
|
+
delete root;
|
368
|
+
return results.size() == 1;
|
369
|
+
}
|
370
|
+
|
371
|
+
BoolTest::BoolTest(const std::string& s, int a)
|
372
|
+
: Base("Branch::Bool::"+s), arity(a) {
|
373
|
+
}
|
374
|
+
|
375
|
+
bool
|
376
|
+
BoolTest::run(void) {
|
377
|
+
using std::map;
|
378
|
+
using std::vector;
|
379
|
+
using std::string;
|
380
|
+
using std::ostream;
|
381
|
+
using namespace Gecode;
|
382
|
+
|
383
|
+
// Results of tests run
|
384
|
+
map<int, vector<RunInfo> > results;
|
385
|
+
// Set up root space
|
386
|
+
BoolTestSpace* root = new BoolTestSpace(arity);
|
387
|
+
post(root, root->x);
|
388
|
+
results.clear();
|
389
|
+
|
390
|
+
for (int var = n_int_var_branch; var--; ) {
|
391
|
+
for (int val = n_int_val_branch; val--; ) {
|
392
|
+
BoolTestSpace* clone =
|
393
|
+
static_cast<BoolTestSpace*>(root->clone(false));
|
394
|
+
Gecode::Search::Options o;
|
395
|
+
o.a_d = Base::rand(10);
|
396
|
+
o.c_d = Base::rand(10);
|
397
|
+
branch(clone, clone->x, int_var_branch[var], int_val_branch[val]);
|
398
|
+
Gecode::DFS<BoolTestSpace> e_s(clone, o);
|
399
|
+
delete clone;
|
400
|
+
|
401
|
+
// Find number of solutions
|
402
|
+
int solutions = 0;
|
403
|
+
do {
|
404
|
+
Space *ex = e_s.next();
|
405
|
+
if (ex == NULL) break;
|
406
|
+
delete ex;
|
407
|
+
++solutions;
|
408
|
+
} while(true);
|
409
|
+
results[solutions].push_back(RunInfo(int_var_branch_name[var],
|
410
|
+
int_val_branch_name[val],
|
411
|
+
o.a_d, o.c_d));
|
412
|
+
}
|
413
|
+
}
|
414
|
+
if (results.size() > 1)
|
415
|
+
goto failed;
|
416
|
+
delete root;
|
417
|
+
return true;
|
418
|
+
failed:
|
419
|
+
std::cout << "FAILURE" << std::endl;
|
420
|
+
for (map<int, vector<RunInfo> >::iterator it = results.begin();
|
421
|
+
it != results.end(); ++it) {
|
422
|
+
std::cout << "Number of solutions: " << it->first << std::endl;
|
423
|
+
for (unsigned int i = 0; i < it->second.size(); ++i)
|
424
|
+
std::cout << it->second[i] << " ";
|
425
|
+
std::cout << std::endl;
|
426
|
+
}
|
427
|
+
|
428
|
+
delete root;
|
429
|
+
return results.size() == 1;
|
430
|
+
}
|
431
|
+
|
432
|
+
#ifdef GECODE_HAS_SET_VARS
|
433
|
+
SetTest::SetTest(const std::string& s, int a, const Gecode::IntSet& d)
|
434
|
+
: Base("Branch::Set::"+s), arity(a), dom(d) {
|
435
|
+
}
|
436
|
+
|
437
|
+
bool
|
438
|
+
SetTest::run(void) {
|
439
|
+
using std::map;
|
440
|
+
using std::vector;
|
441
|
+
using std::string;
|
442
|
+
using std::ostream;
|
443
|
+
using namespace Gecode;
|
444
|
+
|
445
|
+
// Results of tests run
|
446
|
+
map<int, vector<RunInfo> > results;
|
447
|
+
// Set up root space
|
448
|
+
SetTestSpace* root = new SetTestSpace(arity,dom);
|
449
|
+
post(root, root->x);
|
450
|
+
root->status();
|
451
|
+
results.clear();
|
452
|
+
|
453
|
+
for (int var = n_set_var_branch; var--; ) {
|
454
|
+
for (int val = n_set_val_branch; val--; ) {
|
455
|
+
SetTestSpace* clone = static_cast<SetTestSpace*>(root->clone(false));
|
456
|
+
Gecode::Search::Options o;
|
457
|
+
o.a_d = Base::rand(10);
|
458
|
+
o.c_d = Base::rand(10);
|
459
|
+
branch(clone, clone->x, set_var_branch[var], set_val_branch[val]);
|
460
|
+
Gecode::DFS<SetTestSpace> e_s(clone, o);
|
461
|
+
delete clone;
|
462
|
+
|
463
|
+
// Find number of solutions
|
464
|
+
int solutions = 0;
|
465
|
+
do {
|
466
|
+
Space *ex = e_s.next();
|
467
|
+
if (ex == NULL) break;
|
468
|
+
delete ex;
|
469
|
+
++solutions;
|
470
|
+
} while(true);
|
471
|
+
results[solutions].push_back(RunInfo(set_var_branch_name[var],
|
472
|
+
set_val_branch_name[val],
|
473
|
+
o.a_d, o.c_d));
|
474
|
+
}
|
475
|
+
}
|
476
|
+
if (results.size() > 1)
|
477
|
+
goto failed;
|
478
|
+
delete root;
|
479
|
+
return true;
|
480
|
+
failed:
|
481
|
+
std::cout << "FAILURE" << std::endl;
|
482
|
+
for (map<int, vector<RunInfo> >::iterator it = results.begin();
|
483
|
+
it != results.end(); ++it) {
|
484
|
+
std::cout << "Number of solutions: " << it->first << std::endl;
|
485
|
+
for (unsigned int i = 0; i < it->second.size(); ++i)
|
486
|
+
std::cout << it->second[i] << " ";
|
487
|
+
std::cout << std::endl;
|
488
|
+
}
|
489
|
+
|
490
|
+
delete root;
|
491
|
+
return results.size() == 1;
|
492
|
+
}
|
493
|
+
#endif
|
494
|
+
|
495
|
+
#ifdef GECODE_HAS_CPLTSET_VARS
|
496
|
+
CpltSetTest::CpltSetTest(const std::string& s, int a,
|
497
|
+
const Gecode::IntSet& d)
|
498
|
+
: Base("Branch::CpltSet::"+s), arity(a), dom(d) {
|
499
|
+
}
|
500
|
+
|
501
|
+
bool
|
502
|
+
CpltSetTest::run(void) {
|
503
|
+
using std::map;
|
504
|
+
using std::vector;
|
505
|
+
using std::string;
|
506
|
+
using std::ostream;
|
507
|
+
using namespace Gecode;
|
508
|
+
|
509
|
+
// Results of tests run
|
510
|
+
map<int, vector<RunInfo> > results;
|
511
|
+
// Set up root space
|
512
|
+
CpltSetTestSpace* root = new CpltSetTestSpace(arity,dom);
|
513
|
+
post(root, root->x);
|
514
|
+
root->status();
|
515
|
+
results.clear();
|
516
|
+
|
517
|
+
for (int var = n_cpltset_var_branch; var--; ) {
|
518
|
+
for (int val = n_cpltset_val_branch; val--; ) {
|
519
|
+
CpltSetTestSpace* clone =
|
520
|
+
static_cast<CpltSetTestSpace*>(root->clone(false));
|
521
|
+
Gecode::Search::Options o;
|
522
|
+
o.a_d = Base::rand(10);
|
523
|
+
o.c_d = Base::rand(10);
|
524
|
+
branch(clone, clone->x, cpltset_var_branch[var],
|
525
|
+
cpltset_val_branch[val]);
|
526
|
+
Gecode::DFS<CpltSetTestSpace> e_s(clone, o);
|
527
|
+
delete clone;
|
528
|
+
|
529
|
+
// Find number of solutions
|
530
|
+
int solutions = 0;
|
531
|
+
do {
|
532
|
+
Space *ex = e_s.next();
|
533
|
+
if (ex == NULL) break;
|
534
|
+
delete ex;
|
535
|
+
++solutions;
|
536
|
+
} while(true);
|
537
|
+
results[solutions].push_back(RunInfo(cpltset_var_branch_name[var],
|
538
|
+
cpltset_val_branch_name[val],
|
539
|
+
o.a_d, o.c_d));
|
540
|
+
}
|
541
|
+
}
|
542
|
+
if (results.size() > 1)
|
543
|
+
goto failed;
|
544
|
+
delete root;
|
545
|
+
return true;
|
546
|
+
failed:
|
547
|
+
std::cout << "FAILURE" << std::endl;
|
548
|
+
for (map<int, vector<RunInfo> >::iterator it = results.begin();
|
549
|
+
it != results.end(); ++it) {
|
550
|
+
std::cout << "Number of solutions: " << it->first << std::endl;
|
551
|
+
for (unsigned int i = 0; i < it->second.size(); ++i)
|
552
|
+
std::cout << it->second[i] << " ";
|
553
|
+
std::cout << std::endl;
|
554
|
+
}
|
555
|
+
|
556
|
+
delete root;
|
557
|
+
return results.size() == 1;
|
558
|
+
}
|
559
|
+
#endif
|
560
|
+
|
561
|
+
}}
|
562
|
+
|
563
|
+
// STATISTICS: test-branch
|