dep-selector-libgecode 1.0.0.alpha.0
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.
- checksums.yaml +7 -0
- data/.gitignore +26 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +20 -0
- data/dep-selector-libgecode.gemspec +25 -0
- data/ext/libgecode3/Makefile +8 -0
- data/ext/libgecode3/extconf.rb +57 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/LICENSE +25 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/Makefile.contribs +88 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/Makefile.dep +11307 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/Makefile.in +1795 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/changelog.in +6132 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/configure +13054 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/configure.ac +356 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/configure.ac.in +352 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/README +26 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/AbstractWorker.hh +42 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Doxyfile +263 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Makefile.in.in +162 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/OptVar.cc +82 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/OptVar.hh +124 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCOPPlus.cc +306 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCOPPlus.hh +166 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCSPPlusUnblockable.cc +239 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCSPPlusUnblockable.hh +140 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/README +6 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Strategy.cc +253 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Strategy.hh +112 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/StrategyNode.cc +59 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/StrategyNode.hh +49 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/UnblockableBranching.hh +34 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/UnblockableViewValBranching.cc +61 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/UnblockableViewValBranching.hh +45 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Work.cc +48 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Work.hh +64 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/WorkComparators.hh +67 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/WorkManager.cc +376 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/WorkManager.hh +96 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Worker.cc +285 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Worker.hh +70 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/clean +5 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/configure +2637 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/configure.ac +44 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/myDom.cc +59 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/myspace.cc +119 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/myspace.hh +79 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qecode.hh +56 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_parallel.cc +41 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_parallel.hh +43 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcop.cc +268 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcop.hh +56 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcsp.cc +163 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcsp.hh +63 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_unblockable.cc +423 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_unblockable.hh +84 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/shortdesc.ac +1 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/vartype.hh +31 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/doxygen/doxygen.conf.in +1245 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/doxygen/doxygen.hh.in +594 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/all-interval.cpp +136 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/alpha.cpp +151 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/bacp.cpp +596 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/bibd.cpp +182 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/bin-packing.cpp +25363 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/black-hole.cpp +413 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/car-sequencing.cpp +653 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/crew.cpp +269 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/crossword.cpp +3954 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/crowded-chess.cpp +424 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/dominating-queens.cpp +170 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/domino.cpp +346 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/donald.cpp +135 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/efpa.cpp +323 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/eq20.cpp +128 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/golf.cpp +190 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/golomb-ruler.cpp +157 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/graph-color.cpp +425 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/grocery.cpp +116 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/hamming.cpp +144 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/ind-set.cpp +144 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/kakuro.cpp +627 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/knights.cpp +430 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/langford-number.cpp +218 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/magic-sequence.cpp +133 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/magic-square.cpp +141 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/minesweeper.cpp +311 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/money.cpp +132 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/nonogram.cpp +1215 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/open-shop.cpp +412 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/ortho-latin.cpp +183 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/partition.cpp +145 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/pentominoes.cpp +952 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/perfect-square.cpp +317 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/photo.cpp +166 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/queen-armies.cpp +335 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/queens.cpp +214 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/radiotherapy.cpp +943 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/sat.cpp +260 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/schurs-lemma.cpp +142 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/scowl.hpp +14149 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/sports-league.cpp +353 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/steel-mill.cpp +654 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/steiner.cpp +170 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/sudoku.cpp +2294 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/tsp.cpp +339 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/warehouses.cpp +185 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/examples/word-square.cpp +168 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode.m4 +1272 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver.hh +602 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/options.cpp +435 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/options.hpp +418 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/script.cpp +104 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/script.hpp +388 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc.hh +417 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/CHANGES +63 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/ast.hh +492 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/conexpr.hh +82 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/myplugin.cpp +49 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/myplugin.hh +47 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/myplugin.pro +51 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/test_myplugin.fzn +1 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/flatzinc.cpp +1056 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/lexer.lxx +137 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/lexer.yy.cpp +2458 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/all_different_int.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/all_equal_int.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/among.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_least_int.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_least_set.mzn +38 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_most_int.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_most_set.mzn +38 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/bin_packing.mzn +44 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/bin_packing_capa.mzn +45 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/bin_packing_load.mzn +45 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/circuit.mzn +40 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/count.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/cumulative.mzn +53 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/decreasing_bool.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/decreasing_int.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/diffn.mzn +44 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/disjoint.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/distribute.mzn +46 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/exactly_int.mzn +40 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/exactly_set.mzn +38 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/gecode.mzn +98 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality.mzn +43 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality_closed.mzn +39 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality_low_up.mzn +40 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality_low_up_closed.mzn +40 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/increasing_bool.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/increasing_int.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/int_set_channel.mzn +49 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/inverse.mzn +42 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/lex_less_int.mzn +42 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/lex_lesseq_int.mzn +42 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/link_set_to_booleans.mzn +47 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/maximum_int.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/member_bool.mzn +41 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/member_int.mzn +41 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/minimum_int.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/nvalue.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/partition_set.mzn +42 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/precedence.mzn +41 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/range.mzn +51 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/redefinitions.mzn +62 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/regular.mzn +38 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/roots.mzn +63 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/sort.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/sum_pred.mzn +42 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/table_bool.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/table_int.mzn +37 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/option.hh +70 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.hh +265 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.tab.cpp +3571 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.tab.hh +164 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.yxx +1604 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/plugin.hh +83 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/registry.cpp +1812 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/registry.hh +71 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/symboltable.hh +96 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/varspec.hh +163 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist.hh +298 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/drawingcursor.cpp +288 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/drawingcursor.hh +110 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/drawingcursor.hpp +84 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gecodelogo.cpp +673 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gecodelogo.hh +65 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gist.cpp +120 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gist.hpp +207 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/layoutcursor.hh +69 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/layoutcursor.hpp +70 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/mainwindow.cpp +341 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/mainwindow.hh +129 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/node.cpp +82 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/node.hh +160 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/node.hpp +210 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodecursor.hh +215 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodecursor.hpp +271 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodestats.cpp +138 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodestats.hh +81 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodevisitor.hh +96 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodevisitor.hpp +126 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodewidget.cpp +90 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodewidget.hh +59 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/preferences.cpp +190 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/preferences.hh +96 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/qtgist.cpp +809 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/qtgist.hh +294 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/spacenode.cpp +369 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/spacenode.hh +221 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/spacenode.hpp +191 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/standalone-example/mygist.cpp +80 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/standalone-example/standalone_example.pro +18 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/stopbrancher.cpp +90 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/stopbrancher.hh +82 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/textoutput.cpp +175 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/textoutput.hh +75 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/treecanvas.cpp +1430 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/treecanvas.hh +369 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/visualnode.cpp +473 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/visualnode.hh +237 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/visualnode.hpp +220 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/zoomToFitIcon.hpp +114 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int.hh +3477 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic.cpp +185 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic.hh +666 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/abs.hpp +236 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/divmod.hpp +350 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/max.hpp +398 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/mult.hpp +750 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/sqr.hpp +377 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/sqrt.hpp +217 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/array-traits.hpp +147 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/array.cpp +113 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/array.hpp +111 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing.cpp +71 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing.hh +184 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing/propagate.cpp +388 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing/propagate.hpp +219 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool.cpp +755 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool.hh +581 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/base.hpp +137 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/clause.hpp +353 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/eq.hpp +196 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/eqv.cpp +104 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/eqv.hpp +202 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/lq.hpp +241 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/or.hpp +850 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch.cpp +152 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch.hh +607 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-val-bool.hpp +81 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-val-int.hpp +107 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-bool.bs +121 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-bool.cpp +438 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-int.bs +121 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-int.cpp +438 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/select-val.hpp +229 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/select-values.hpp +213 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/select-view.hpp +364 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel.cpp +172 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel.hh +249 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/base.hpp +78 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/dom.hpp +332 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-multi.cpp +241 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-multi.hpp +84 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-single.cpp +77 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-single.hpp +71 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/val.hpp +256 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit.cpp +229 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit.hh +160 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit/base.hpp +270 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit/dom.hpp +128 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit/val.hpp +105 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count.cpp +417 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count.hh +410 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-base.hpp +80 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-eq.hpp +143 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-gq.hpp +137 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-lq.hpp +136 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/rel.hpp +281 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-base.hpp +131 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-eq.hpp +117 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-gq.hpp +109 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-lq.hpp +96 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative.cpp +432 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative.hh +745 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/basic.hpp +211 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/edge-finding.hpp +185 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/man-prop.hpp +127 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/opt-prop.hpp +171 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/overload.hpp +63 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/task-view.hpp +84 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/task.hpp +256 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/tree.hpp +272 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulatives.cpp +187 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulatives.hh +133 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulatives/val.hpp +380 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct.cpp +97 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct.hh +314 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/bnd.hpp +444 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/dom-ctrl.hpp +81 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/dom.hpp +123 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/graph.hpp +266 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/ter-dom.hpp +113 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/val.hpp +185 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom.cpp +135 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom.hh +118 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom/range.hpp +105 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom/spec.hpp +124 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element.cpp +190 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element.hh +384 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/int.hpp +443 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/pair.cpp +151 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/pair.hpp +74 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/view.hpp +559 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exception.hpp +196 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec.cpp +83 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec.hh +87 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec/when.cpp +77 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec/when.hpp +51 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional.cpp +124 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional.hh +508 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/base.hpp +163 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/basic.hpp +148 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/dfa.cpp +535 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/dfa.hpp +282 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/incremental.hpp +454 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/layered-graph.hpp +982 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/tuple-set.cpp +222 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/tuple-set.hpp +184 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc.cpp +172 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc.hh +268 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/bnd-sup.hpp +608 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/bnd.hpp +829 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/dom-sup.hpp +1777 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/dom.hpp +315 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/post.hpp +169 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/val.hpp +299 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/view.hpp +410 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/int-set-1.hpp +249 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/int-set-2.hpp +51 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/int-set.cpp +167 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/limits.hpp +94 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear-bool.cpp +196 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear-int.cpp +194 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear.hh +1560 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-int.hpp +743 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-post.cpp +602 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-scale.hpp +695 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-view.hpp +319 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-bin.hpp +439 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-dom.hpp +484 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-nary.hpp +864 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-noview.hpp +251 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-post.cpp +561 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-ter.hpp +273 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/post.hpp +152 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member.cpp +85 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member.hh +125 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member/prop.hpp +175 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member/re-prop.hpp +178 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap.cpp +226 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap.hh +318 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/base.hpp +88 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/box.hpp +198 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/dim.hpp +197 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/man.hpp +119 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/opt.hpp +153 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues.cpp +244 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues.hh +429 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-base.hpp +98 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-eq.hpp +174 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-gq.hpp +149 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-lq.hpp +151 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/graph.hpp +283 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-base.hpp +347 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-eq.hpp +167 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-gq.hpp +130 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-lq.hpp +154 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/range-event.hpp +51 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/sym-bit-matrix.hpp +69 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/precede.cpp +73 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/precede.hh +113 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/precede/single.hpp +232 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/propagator.hpp +311 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel.cpp +381 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel.hh +665 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/eq.hpp +676 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/lex.hpp +414 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/lq-le.hpp +537 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/nq.hpp +196 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence.cpp +197 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence.hh +154 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/int.hpp +168 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/set-op.hpp +154 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/view.hpp +499 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/violations.hpp +101 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted.cpp +82 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted.hh +107 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/matching.hpp +173 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/narrowing.hpp +250 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/order.hpp +213 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/propagate.hpp +646 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/sortsup.hpp +564 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/support-values.hh +154 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/support-values.hpp +187 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task.hh +454 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/array.hpp +179 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/fwd-to-bwd.hpp +102 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/iter.hpp +92 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/man-to-opt.hpp +100 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/prop.hpp +70 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/purge.hpp +74 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/sort.hpp +234 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/tree.hpp +189 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary.cpp +258 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary.hh +839 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/detectable.hpp +116 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/edge-finding.hpp +78 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/man-prop.hpp +78 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/not-first-not-last.hpp +133 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/opt-prop.hpp +116 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/overload.hpp +93 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/subsumption.hpp +55 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/task-view.hpp +105 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/task.hpp +532 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/tree.hpp +229 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unshare.cpp +146 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/val-set.hh +118 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/val-set.hpp +186 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp.hpp +710 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/bool.cpp +65 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/bool.hpp +431 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/bool.vis +75 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/delta.hpp +64 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/int.cpp +361 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/int.hpp +1029 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/int.vis +117 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/bool.cpp +53 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/bool.hpp +121 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/int.cpp +61 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/int.hpp +145 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/print.hpp +56 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph.hh +334 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/bi-link.hpp +89 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/comb-ptr-flag.hpp +78 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/edge.hpp +124 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/graph.hpp +202 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/iter-prune-val.hpp +70 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/node.hpp +171 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view.hpp +1690 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/bool-test.hpp +64 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/bool.hpp +314 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/cached.hpp +402 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/constint.hpp +324 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/int.hpp +264 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/iter.hpp +65 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/minus.hpp +300 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/neg-bool.hpp +177 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/offset.hpp +303 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/print.hpp +162 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/rel-test.hpp +231 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/scale.hpp +368 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/zero.hpp +305 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter.hh +96 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-add.hpp +144 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-append.hpp +222 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-array.hpp +139 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-cache.hpp +106 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-compl.hpp +220 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-diff.hpp +142 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-empty.hpp +111 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-inter.hpp +309 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-list.hpp +263 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-map.hpp +260 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-minmax.hpp +118 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-minus.hpp +107 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-negative.hpp +137 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-offset.hpp +127 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-operations.hpp +157 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-positive.hpp +139 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-rangelist.hpp +115 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-scale.hpp +238 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-singleton-append.hpp +111 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-singleton.hpp +86 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-size.hpp +146 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-union.hpp +361 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-values.hpp +140 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-array.hpp +120 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-bitset.hpp +114 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-inter.hpp +130 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-list.hpp +186 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-map.hpp +136 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-minus.hpp +105 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-negative.hpp +116 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-offset.hpp +113 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-positive.hpp +123 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-ranges.hpp +106 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-singleton.hpp +109 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-union.hpp +137 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-unique.hpp +118 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel.hh +194 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/advisor.hpp +102 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/allocators.hpp +476 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/archive.cpp +70 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/archive.hpp +298 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/array.hpp +2133 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/branch.cpp +121 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/branch.hpp +254 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher-tiebreak.hpp +615 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher-val.hpp +126 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher-view.hpp +455 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher.hpp +431 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/core.cpp +563 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/core.hpp +3668 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/exception.hpp +124 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/global-prop-info.hpp +258 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/macros.hpp +118 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/memory-config.hpp +154 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/memory-manager.cpp +53 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/memory-manager.hpp +511 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/modevent.hpp +69 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/propagator.hpp +699 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/range-list.hpp +184 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/region.cpp +85 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/region.hpp +459 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/shared-array.hpp +345 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/var-imp.hpp +332 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/var-type.hpp +767 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/var.hpp +144 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/view.hpp +715 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/wait.hh +244 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel.hh +1870 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/arithmetic.cpp +408 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/bool-expr.cpp +522 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/bool-expr.hpp +87 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/exception.hpp +84 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-expr.cpp +594 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-expr.hpp +297 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-rel.cpp +414 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-rel.hpp +85 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/matrix.hpp +247 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/optimize.hpp +62 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/reg.cpp +817 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/reg.hpp +94 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-expr.cpp +704 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-expr.hpp +96 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-rel.cpp +81 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-rel.hpp +84 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search.hh +458 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/bab.cpp +62 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/bab.hpp +91 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/dfs.cpp +62 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/dfs.hpp +84 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/options.cpp +72 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/options.hpp +49 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/bab.cpp +178 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/bab.hh +203 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/dfs.cpp +176 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/dfs.hh +195 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/engine.cpp +118 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/engine.hh +418 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/path.hh +477 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/restart.cpp +167 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/restart.hh +73 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/restart.cpp +62 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/restart.hpp +88 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/bab.hh +177 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/dfs.hh +176 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/path.hh +411 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/restart.hh +89 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/statistics.hpp +70 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/stop.cpp +83 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/stop.hpp +137 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/support.hh +91 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/worker.hh +202 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set.hh +1144 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/array-traits.hpp +86 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/array.cpp +219 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/array.hpp +64 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch.cpp +128 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch.hh +438 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/post-val.hpp +107 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/post-view.bs +109 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/post-view.cpp +370 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/select-val.hpp +204 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/select-view.hpp +306 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/cardinality.cpp +65 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex.cpp +60 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex.hh +107 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/conv.cpp +97 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/conv.hpp +67 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/hull.cpp +116 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/hull.hpp +68 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct.cpp +56 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct.hh +79 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct/atmostOne.cpp +162 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct/atmostOne.hpp +66 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/dom.cpp +300 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element.cpp +255 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element.hh +218 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/disjoint.hpp +324 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/inter.hpp +308 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/union.hpp +342 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/unionConst.hpp +293 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/exception.hpp +146 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/exec.cpp +58 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int.cpp +191 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int.hh +459 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/card.hpp +93 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/channel-bool.hpp +282 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/channel-int.hpp +158 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/match.hpp +199 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/minmax.hpp +645 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/weights.hpp +353 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/limits.hpp +62 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/precede.cpp +74 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/precede.hh +115 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/precede/single.hpp +255 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-cvc.cpp +66 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-cvv.cpp +65 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-vcc.cpp +168 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-vcv.cpp +166 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-vvc.cpp +63 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-singleton.cpp +115 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-ternary.cpp +60 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op.cpp +105 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op.hh +297 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/common.hpp +619 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/inter.hpp +389 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/partition.hpp +164 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl-cvc.cpp +58 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl-cvv.cpp +54 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl-vvc.cpp +57 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl.cpp +54 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl-cvc.cpp +55 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl-cvv.cpp +54 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl-vvc.cpp +54 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl.cpp +54 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post.hpp +266 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/subofunion.hpp +166 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/superofinter.hpp +167 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/union.hpp +319 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel.cpp +232 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel.hh +322 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/common.hpp +125 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/eq.hpp +116 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/lq.hpp +417 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/nosubset.hpp +104 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/nq.hpp +160 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/re-eq.hpp +152 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/re-lq.hpp +182 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/re-subset.hpp +146 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/subset.hpp +96 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence.cpp +64 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence.hh +115 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/common.hpp +100 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq-u.cpp +145 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq-u.hpp +79 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq.cpp +76 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq.hpp +69 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp.hpp +634 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/delta.hpp +78 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/integerset.cpp +348 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/integerset.hpp +426 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/iter.hpp +63 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/set.cpp +142 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/set.hpp +531 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/set.vis +197 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var/print.hpp +49 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var/set.cpp +111 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var/set.hpp +254 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view.hpp +1142 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/cached.hpp +399 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/complement.hpp +556 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/const.hpp +723 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/print.hpp +140 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/set.hpp +263 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/singleton.hpp +402 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support.hh +135 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/auto-link.hpp +73 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/bitset-base.hpp +379 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/bitset.hpp +81 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/block-allocator.hpp +169 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/cast.hpp +52 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/config.hpp.in +109 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/dynamic-array.hpp +140 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/dynamic-queue.hpp +156 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/dynamic-stack.hpp +186 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/exception.cpp +65 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/exception.hpp +102 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/heap.cpp +49 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/heap.hpp +593 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/int-type.hpp +172 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/macros.hpp +103 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/marked-pointer.hpp +79 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/random.hpp +128 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/sort.hpp +268 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/static-stack.hpp +148 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread.hpp +272 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/none.hpp +87 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/pthreads.cpp +66 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/pthreads.hpp +142 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/thread.cpp +72 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/thread.hpp +114 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/windows.cpp +68 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/windows.hpp +108 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/timer.hpp +103 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/install-sh +323 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/allexamples.perl +60 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/back.png +0 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/footer.html +3 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/gecode-logo-100.png +0 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/header.html +66 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/stylesheet.css +468 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/fixautoheader.perl +55 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/fixmanifest.perl +84 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/fixproperties.sh +98 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/gecode-logo.ico +0 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/genbranch.perl +310 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/genchangelog.perl +249 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/gencurrentchangelog.perl +191 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/genlcovmakefile.perl +148 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/genlicense.perl +121 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/genrc.perl +236 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/genstatistics.perl +178 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/gentxtchangelog.perl +198 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/genvarimp.perl +877 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/genxcodeproj.perl +144 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/getrevision.perl +47 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/makedepend.perl +85 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/svn-ignore-root.txt +43 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/misc/svn-ignore.txt +18 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/afc.cpp +143 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/array.cpp +277 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/assign.cpp +278 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/assign.hh +119 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/assign/bool.cpp +61 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/assign/int.cpp +70 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/assign/set.cpp +72 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/branch.cpp +504 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/branch.hh +119 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/branch/bool.cpp +61 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/branch/int.cpp +70 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/branch/set.cpp +72 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int.cpp +655 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int.hh +353 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int.hpp +314 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/arithmetic.cpp +772 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/basic.cpp +82 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/bin-packing.cpp +237 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/bool.cpp +500 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/channel.cpp +234 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/circuit.cpp +359 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/count.cpp +410 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/cumulative.cpp +560 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/cumulatives.cpp +276 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/distinct.cpp +248 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/dom.cpp +174 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/element.cpp +602 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/exec.cpp +150 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/extensional.cpp +571 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/gcc.cpp +320 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/linear.cpp +394 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/member.cpp +138 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-arithmetic.cpp +368 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-bool.cpp +4344 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-count.cpp +295 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-lin.cpp +2179 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-rel.cpp +136 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/no-overlap.cpp +259 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/nvalues.cpp +241 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/precede.cpp +115 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/rel.cpp +568 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/sequence.cpp +168 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/sorted.cpp +165 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/unary.cpp +327 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/int/unshare.cpp +109 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/search.cpp +487 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set.cpp +638 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set.hh +362 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set.hpp +121 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/construct.cpp +225 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/convex.cpp +139 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/distinct.cpp +116 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/dom.cpp +346 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/element.cpp +397 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/exec.cpp +86 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/int.cpp +532 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/mm-set.cpp +4532 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/precede.cpp +136 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/rel-op-const.cpp +368 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/rel-op.cpp +504 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/rel.cpp +157 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/set/sequence.cpp +133 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/test.cpp +281 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/test.hh +161 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/test/test.hpp +76 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/tools/flatzinc/fz.cpp +93 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/tools/flatzinc/mzn-gecode.bat.in +41 -0
- data/ext/libgecode3/vendor/gecode-3.7.3/tools/flatzinc/mzn-gecode.in +41 -0
- data/lib/dep-selector-libgecode.rb +15 -0
- data/lib/dep-selector-libgecode/version.rb +3 -0
- metadata +878 -0
|
@@ -0,0 +1,410 @@
|
|
|
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, 2005
|
|
8
|
+
*
|
|
9
|
+
* Last modified:
|
|
10
|
+
* $Date: 2011-08-22 21:08:29 +1000 (Mon, 22 Aug 2011) $ by $Author: schulte $
|
|
11
|
+
* $Revision: 12326 $
|
|
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/int.hh"
|
|
39
|
+
|
|
40
|
+
namespace Test { namespace Int {
|
|
41
|
+
|
|
42
|
+
/// %Tests for count constraints
|
|
43
|
+
namespace Count {
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* \defgroup TaskTestIntCount Count constraints
|
|
47
|
+
* \ingroup TaskTestInt
|
|
48
|
+
*/
|
|
49
|
+
//@{
|
|
50
|
+
/// %Test number of equal integers equal to integer
|
|
51
|
+
class IntInt : public Test {
|
|
52
|
+
protected:
|
|
53
|
+
/// Integer relation type to propagate
|
|
54
|
+
Gecode::IntRelType irt;
|
|
55
|
+
public:
|
|
56
|
+
/// Create and register test
|
|
57
|
+
IntInt(Gecode::IntRelType irt0)
|
|
58
|
+
: Test("Count::Int::Int::"+str(irt0),4,-2,2), irt(irt0) {}
|
|
59
|
+
/// %Test whether \a x is solution
|
|
60
|
+
virtual bool solution(const Assignment& x) const {
|
|
61
|
+
int m = 0;
|
|
62
|
+
for (int i=x.size(); i--; )
|
|
63
|
+
if (x[i] == 0)
|
|
64
|
+
m++;
|
|
65
|
+
return cmp(m,irt,2);
|
|
66
|
+
}
|
|
67
|
+
/// Post constraint on \a x
|
|
68
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
69
|
+
Gecode::count(home, x, 0, irt, 2);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/// %Test number of integers contained in an integer set equal to integer
|
|
74
|
+
class SetInt : public Test {
|
|
75
|
+
protected:
|
|
76
|
+
/// Integer relation type to propagate
|
|
77
|
+
Gecode::IntRelType irt;
|
|
78
|
+
public:
|
|
79
|
+
/// Create and register test
|
|
80
|
+
SetInt(Gecode::IntRelType irt0)
|
|
81
|
+
: Test("Count::Set::Int::"+str(irt0),4,-2,2), irt(irt0) {}
|
|
82
|
+
/// %Test whether \a x is solution
|
|
83
|
+
virtual bool solution(const Assignment& x) const {
|
|
84
|
+
int m = 0;
|
|
85
|
+
for (int i=x.size(); i--; )
|
|
86
|
+
if ((x[i] >= -1) && (x[i] <= 1))
|
|
87
|
+
m++;
|
|
88
|
+
return cmp(m,irt,2);
|
|
89
|
+
}
|
|
90
|
+
/// Post constraint on \a x
|
|
91
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
92
|
+
Gecode::IntSet s(-1,1);
|
|
93
|
+
Gecode::count(home, x, s, irt, 2);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/// %Test number of equal integers equal to integer with duplicate variables
|
|
98
|
+
class IntIntDup : public Test {
|
|
99
|
+
protected:
|
|
100
|
+
/// Integer relation type to propagate
|
|
101
|
+
Gecode::IntRelType irt;
|
|
102
|
+
public:
|
|
103
|
+
/// Create and register test
|
|
104
|
+
IntIntDup(Gecode::IntRelType irt0)
|
|
105
|
+
: Test("Count::Int::Int::Dup::"+str(irt0),4,-2,2), irt(irt0) {}
|
|
106
|
+
/// %Test whether \a x is solution
|
|
107
|
+
virtual bool solution(const Assignment& x) const {
|
|
108
|
+
int m = 0;
|
|
109
|
+
for (int i=x.size(); i--; )
|
|
110
|
+
if (x[i] == 0)
|
|
111
|
+
m += 2;
|
|
112
|
+
return cmp(m,irt,4);
|
|
113
|
+
}
|
|
114
|
+
/// Post constraint on \a x
|
|
115
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
116
|
+
Gecode::IntVarArgs y(8);
|
|
117
|
+
for (int i=x.size(); i--; )
|
|
118
|
+
y[i]=y[4+i]=x[i];
|
|
119
|
+
Gecode::count(home, y, 0, irt, 4);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
/// %Test number of equal integers equal to integer variable
|
|
124
|
+
class IntVar : public Test {
|
|
125
|
+
protected:
|
|
126
|
+
/// Integer relation type to propagate
|
|
127
|
+
Gecode::IntRelType irt;
|
|
128
|
+
public:
|
|
129
|
+
/// Create and register test
|
|
130
|
+
IntVar(Gecode::IntRelType irt0)
|
|
131
|
+
: Test("Count::Int::Var::"+str(irt0),5,-2,2), irt(irt0) {}
|
|
132
|
+
/// %Test whether \a x is solution
|
|
133
|
+
virtual bool solution(const Assignment& x) const {
|
|
134
|
+
int m = 0;
|
|
135
|
+
for (int i=0; i<4; i++)
|
|
136
|
+
if (x[i] == 0)
|
|
137
|
+
m++;
|
|
138
|
+
return cmp(m,irt,x[4]);
|
|
139
|
+
}
|
|
140
|
+
/// Post constraint on \a x
|
|
141
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
142
|
+
Gecode::IntVarArgs y(4);
|
|
143
|
+
for (int i=0; i<4; i++)
|
|
144
|
+
y[i]=x[i];
|
|
145
|
+
Gecode::count(home, y, 0, irt, x[4]);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
/// %Test number of integers contained in an integer set equal to integer variable
|
|
150
|
+
class SetVar : public Test {
|
|
151
|
+
protected:
|
|
152
|
+
/// Integer relation type to propagate
|
|
153
|
+
Gecode::IntRelType irt;
|
|
154
|
+
public:
|
|
155
|
+
/// Create and register test
|
|
156
|
+
SetVar(Gecode::IntRelType irt0)
|
|
157
|
+
: Test("Count::Set::Var::"+str(irt0),5,-2,2), irt(irt0) {}
|
|
158
|
+
/// %Test whether \a x is solution
|
|
159
|
+
virtual bool solution(const Assignment& x) const {
|
|
160
|
+
int m = 0;
|
|
161
|
+
for (int i=0; i<4; i++)
|
|
162
|
+
if ((x[i] >= -1) && (x[i] <= 1))
|
|
163
|
+
m++;
|
|
164
|
+
return cmp(m,irt,x[4]);
|
|
165
|
+
}
|
|
166
|
+
/// Post constraint on \a x
|
|
167
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
168
|
+
Gecode::IntVarArgs y(4);
|
|
169
|
+
for (int i=0; i<4; i++)
|
|
170
|
+
y[i]=x[i];
|
|
171
|
+
Gecode::IntSet s(-1,1);
|
|
172
|
+
Gecode::count(home, y, s, irt, x[4]);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
Gecode::IntArgs ints(4, 1,0,3,2);
|
|
177
|
+
|
|
178
|
+
/// %Test number of several equal integers equal to integer
|
|
179
|
+
class IntArrayInt : public Test {
|
|
180
|
+
protected:
|
|
181
|
+
/// Integer relation type to propagate
|
|
182
|
+
Gecode::IntRelType irt;
|
|
183
|
+
public:
|
|
184
|
+
/// Create and register test
|
|
185
|
+
IntArrayInt(Gecode::IntRelType irt0)
|
|
186
|
+
: Test("Count::IntArray::Int::"+str(irt0),5,-2,2), irt(irt0) {}
|
|
187
|
+
/// %Test whether \a x is solution
|
|
188
|
+
virtual bool solution(const Assignment& x) const {
|
|
189
|
+
int m = 0;
|
|
190
|
+
for (int i=0; i<4; i++)
|
|
191
|
+
if (x[i] == ints[i])
|
|
192
|
+
m++;
|
|
193
|
+
return cmp(m,irt,2);
|
|
194
|
+
}
|
|
195
|
+
/// Post constraint on \a x
|
|
196
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
197
|
+
Gecode::IntVarArgs y(4);
|
|
198
|
+
for (int i=0; i<4; i++)
|
|
199
|
+
y[i]=x[i];
|
|
200
|
+
Gecode::count(home, y, ints, irt, 2);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
/// %Test number of several equal integers equal to integer variable
|
|
205
|
+
class IntArrayVar : public Test {
|
|
206
|
+
protected:
|
|
207
|
+
/// Integer relation type to propagate
|
|
208
|
+
Gecode::IntRelType irt;
|
|
209
|
+
public:
|
|
210
|
+
/// Create and register test
|
|
211
|
+
IntArrayVar(Gecode::IntRelType irt0)
|
|
212
|
+
: Test("Count::IntArray::Var::"+str(irt0),5,-2,2), irt(irt0) {}
|
|
213
|
+
/// %Test whether \a x is solution
|
|
214
|
+
virtual bool solution(const Assignment& x) const {
|
|
215
|
+
int m = 0;
|
|
216
|
+
for (int i=0; i<4; i++)
|
|
217
|
+
if (x[i] == ints[i])
|
|
218
|
+
m++;
|
|
219
|
+
return cmp(m,irt,x[4]);
|
|
220
|
+
}
|
|
221
|
+
/// Post constraint on \a x
|
|
222
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
223
|
+
Gecode::IntVarArgs y(4);
|
|
224
|
+
for (int i=0; i<4; i++)
|
|
225
|
+
y[i]=x[i];
|
|
226
|
+
Gecode::count(home, y, ints, irt, x[4]);
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
/// %Test number of equal integers equal to integer variable with sharing
|
|
231
|
+
class IntVarShared : public Test {
|
|
232
|
+
protected:
|
|
233
|
+
/// Integer relation type to propagate
|
|
234
|
+
Gecode::IntRelType irt;
|
|
235
|
+
public:
|
|
236
|
+
/// Create and register test
|
|
237
|
+
IntVarShared(Gecode::IntRelType irt0)
|
|
238
|
+
: Test("Count::Int::Var::Shared::"+str(irt0),4,-2,2), irt(irt0) {}
|
|
239
|
+
/// %Test whether \a x is solution
|
|
240
|
+
virtual bool solution(const Assignment& x) const {
|
|
241
|
+
int m = 0;
|
|
242
|
+
for (int i=0; i<4; i++)
|
|
243
|
+
if (x[i] == 0)
|
|
244
|
+
m++;
|
|
245
|
+
return cmp(m,irt,x[2]);
|
|
246
|
+
}
|
|
247
|
+
/// Post constraint on \a x
|
|
248
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
249
|
+
Gecode::count(home, x, 0, irt, x[2]);
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
/// %Test number of equal variables equal to integer variable
|
|
254
|
+
class VarVar : public Test {
|
|
255
|
+
protected:
|
|
256
|
+
/// Integer relation type to propagate
|
|
257
|
+
Gecode::IntRelType irt;
|
|
258
|
+
public:
|
|
259
|
+
/// Create and register test
|
|
260
|
+
VarVar(Gecode::IntRelType irt0)
|
|
261
|
+
: Test("Count::Var::Var::"+str(irt0),5,-2,2), irt(irt0) {}
|
|
262
|
+
/// %Test whether \a x is solution
|
|
263
|
+
virtual bool solution(const Assignment& x) const {
|
|
264
|
+
int m = 0;
|
|
265
|
+
for (int i=0; i<3; i++)
|
|
266
|
+
if (x[i] == x[3])
|
|
267
|
+
m++;
|
|
268
|
+
return cmp(m,irt,x[4]);
|
|
269
|
+
}
|
|
270
|
+
/// Post constraint on \a x
|
|
271
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
272
|
+
Gecode::IntVarArgs y(3);
|
|
273
|
+
for (int i=0; i<3; i++)
|
|
274
|
+
y[i]=x[i];
|
|
275
|
+
Gecode::count(home, y, x[3], irt, x[4]);
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
/// %Test number of equal variables equal to integer
|
|
280
|
+
class VarInt : public Test {
|
|
281
|
+
protected:
|
|
282
|
+
/// Integer relation type to propagate
|
|
283
|
+
Gecode::IntRelType irt;
|
|
284
|
+
public:
|
|
285
|
+
/// Create and register test
|
|
286
|
+
VarInt(Gecode::IntRelType irt0)
|
|
287
|
+
: Test("Count::Var::Int::"+str(irt0),4,-2,2), irt(irt0) {}
|
|
288
|
+
/// %Test whether \a x is solution
|
|
289
|
+
virtual bool solution(const Assignment& x) const {
|
|
290
|
+
int m = 0;
|
|
291
|
+
for (int i=0; i<3; i++)
|
|
292
|
+
if (x[i] == x[3])
|
|
293
|
+
m++;
|
|
294
|
+
return cmp(m,irt,2);
|
|
295
|
+
}
|
|
296
|
+
/// Post constraint on \a x
|
|
297
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
298
|
+
Gecode::IntVarArgs y(3);
|
|
299
|
+
for (int i=0; i<3; i++)
|
|
300
|
+
y[i]=x[i];
|
|
301
|
+
Gecode::count(home, y, x[3], irt, 2);
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
/// %Test number of equal variables equal to integer variable with sharing
|
|
306
|
+
class VarVarSharedA : public Test {
|
|
307
|
+
protected:
|
|
308
|
+
/// Integer relation type to propagate
|
|
309
|
+
Gecode::IntRelType irt;
|
|
310
|
+
public:
|
|
311
|
+
/// Create and register test
|
|
312
|
+
VarVarSharedA(Gecode::IntRelType irt0)
|
|
313
|
+
: Test("Count::Var::Var::Shared::A::"+str(irt0),5,-2,2), irt(irt0) {}
|
|
314
|
+
/// %Test whether \a x is solution
|
|
315
|
+
virtual bool solution(const Assignment& x) const {
|
|
316
|
+
int m = 0;
|
|
317
|
+
for (int i=0; i<4; i++)
|
|
318
|
+
if (x[i] == x[1])
|
|
319
|
+
m++;
|
|
320
|
+
return cmp(m,irt,x[4]);
|
|
321
|
+
}
|
|
322
|
+
/// Post constraint on \a x
|
|
323
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
324
|
+
Gecode::IntVarArgs y(4);
|
|
325
|
+
for (int i=0; i<4; i++)
|
|
326
|
+
y[i]=x[i];
|
|
327
|
+
Gecode::count(home, y, x[1], irt, x[4]);
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
/// %Test number of equal variables equal to integer variable with sharing
|
|
332
|
+
class VarVarSharedB : public Test {
|
|
333
|
+
protected:
|
|
334
|
+
/// Integer relation type to propagate
|
|
335
|
+
Gecode::IntRelType irt;
|
|
336
|
+
public:
|
|
337
|
+
/// Create and register test
|
|
338
|
+
VarVarSharedB(Gecode::IntRelType irt0)
|
|
339
|
+
: Test("Count::Var::Var::Shared::B::"+str(irt0),5,-2,2), irt(irt0) {}
|
|
340
|
+
/// %Test whether \a x is solution
|
|
341
|
+
virtual bool solution(const Assignment& x) const {
|
|
342
|
+
int m = 0;
|
|
343
|
+
for (int i=0; i<4; i++)
|
|
344
|
+
if (x[i] == x[4])
|
|
345
|
+
m++;
|
|
346
|
+
return cmp(m,irt,x[3]);
|
|
347
|
+
}
|
|
348
|
+
/// Post constraint on \a x
|
|
349
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
350
|
+
Gecode::IntVarArgs y(4);
|
|
351
|
+
for (int i=0; i<4; i++)
|
|
352
|
+
y[i]=x[i];
|
|
353
|
+
Gecode::count(home, y, x[4], irt, x[3]);
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
/// %Test number of equal variables equal to integer variable with sharing
|
|
358
|
+
class VarVarSharedC : public Test {
|
|
359
|
+
protected:
|
|
360
|
+
/// Integer relation type to propagate
|
|
361
|
+
Gecode::IntRelType irt;
|
|
362
|
+
public:
|
|
363
|
+
/// Create and register test
|
|
364
|
+
VarVarSharedC(Gecode::IntRelType irt0)
|
|
365
|
+
: Test("Count::Var::Var::Shared::C::"+str(irt0),4,-2,2), irt(irt0) {}
|
|
366
|
+
/// %Test whether \a x is solution
|
|
367
|
+
virtual bool solution(const Assignment& x) const {
|
|
368
|
+
int m = 0;
|
|
369
|
+
for (int i=0; i<4; i++)
|
|
370
|
+
if (x[i] == x[1])
|
|
371
|
+
m++;
|
|
372
|
+
return cmp(m,irt,x[3]);
|
|
373
|
+
}
|
|
374
|
+
/// Post constraint on \a x
|
|
375
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
376
|
+
Gecode::count(home, x, x[1], irt, x[3]);
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
|
|
380
|
+
/// Help class to create and register tests
|
|
381
|
+
class Create {
|
|
382
|
+
public:
|
|
383
|
+
/// Perform creation and registration
|
|
384
|
+
Create(void) {
|
|
385
|
+
for (IntRelTypes irts; irts(); ++irts) {
|
|
386
|
+
(void) new IntInt(irts.irt());
|
|
387
|
+
(void) new SetInt(irts.irt());
|
|
388
|
+
(void) new IntIntDup(irts.irt());
|
|
389
|
+
(void) new IntVar(irts.irt());
|
|
390
|
+
(void) new SetVar(irts.irt());
|
|
391
|
+
(void) new IntArrayInt(irts.irt());
|
|
392
|
+
(void) new IntArrayVar(irts.irt());
|
|
393
|
+
(void) new IntVarShared(irts.irt());
|
|
394
|
+
(void) new VarVar(irts.irt());
|
|
395
|
+
(void) new VarInt(irts.irt());
|
|
396
|
+
(void) new VarVarSharedA(irts.irt());
|
|
397
|
+
(void) new VarVarSharedB(irts.irt());
|
|
398
|
+
(void) new VarVarSharedC(irts.irt());
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
Create c;
|
|
404
|
+
//@}
|
|
405
|
+
|
|
406
|
+
}
|
|
407
|
+
}}
|
|
408
|
+
|
|
409
|
+
// STATISTICS: test-int
|
|
410
|
+
|
|
@@ -0,0 +1,560 @@
|
|
|
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, 2009
|
|
8
|
+
*
|
|
9
|
+
* Last modified:
|
|
10
|
+
* $Date: 2011-07-13 19:03:39 +1000 (Wed, 13 Jul 2011) $ by $Author: tack $
|
|
11
|
+
* $Revision: 12180 $
|
|
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/int.hh"
|
|
39
|
+
|
|
40
|
+
#include <gecode/minimodel.hh>
|
|
41
|
+
|
|
42
|
+
namespace Test { namespace Int {
|
|
43
|
+
|
|
44
|
+
/// Tests for cumulative scheduling constraints
|
|
45
|
+
namespace Cumulative {
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* \defgroup TaskTestIntCumulative Cumulative scheduling constraints
|
|
49
|
+
* \ingroup TaskTestInt
|
|
50
|
+
*/
|
|
51
|
+
//@{
|
|
52
|
+
/// Test for cumulative constraint with mandatory tasks
|
|
53
|
+
class ManFixPCumulative : public Test {
|
|
54
|
+
protected:
|
|
55
|
+
/// Capacity of resource
|
|
56
|
+
int c;
|
|
57
|
+
/// The processing times
|
|
58
|
+
Gecode::IntArgs p;
|
|
59
|
+
/// The resource usage
|
|
60
|
+
Gecode::IntArgs u;
|
|
61
|
+
/// Get a reasonable maximal start time
|
|
62
|
+
static int st(int c,
|
|
63
|
+
const Gecode::IntArgs& p, const Gecode::IntArgs& u) {
|
|
64
|
+
double e = 0;
|
|
65
|
+
for (int i=p.size(); i--; )
|
|
66
|
+
e += static_cast<double>(p[i])*u[i];
|
|
67
|
+
return e / std::max(1,std::abs(c));
|
|
68
|
+
}
|
|
69
|
+
/// Offset
|
|
70
|
+
int o;
|
|
71
|
+
public:
|
|
72
|
+
/// Create and register test
|
|
73
|
+
ManFixPCumulative(int c0,
|
|
74
|
+
const Gecode::IntArgs& p0,
|
|
75
|
+
const Gecode::IntArgs& u0,
|
|
76
|
+
int o0)
|
|
77
|
+
: Test("Cumulative::Man::Fix::"+str(o0)+"::"+
|
|
78
|
+
str(c0)+"::"+str(p0)+"::"+str(u0),
|
|
79
|
+
(c0 >= 0) ? p0.size():p0.size()+1,0,st(c0,p0,u0)),
|
|
80
|
+
c(c0), p(p0), u(u0), o(o0) {
|
|
81
|
+
testsearch = false;
|
|
82
|
+
testfix = false;
|
|
83
|
+
contest = CTL_NONE;
|
|
84
|
+
}
|
|
85
|
+
/// Create and register initial assignment
|
|
86
|
+
virtual Assignment* assignment(void) const {
|
|
87
|
+
return new RandomAssignment(arity,dom,500);
|
|
88
|
+
}
|
|
89
|
+
/// Test whether \a x is solution
|
|
90
|
+
virtual bool solution(const Assignment& x) const {
|
|
91
|
+
int cmax = (c >= 0) ? c : x[x.size()-1];
|
|
92
|
+
int n = (c >= 0) ? x.size() : x.size()-1;
|
|
93
|
+
|
|
94
|
+
if (c < 0 && x[n] > -c)
|
|
95
|
+
return false;
|
|
96
|
+
|
|
97
|
+
// Compute maximal time
|
|
98
|
+
int t = 0;
|
|
99
|
+
for (int i=0; i<n; i++)
|
|
100
|
+
t = std::max(t,x[i]+std::max(1,p[i]));
|
|
101
|
+
// Compute resource usage (including at start times)
|
|
102
|
+
int* used = new int[t];
|
|
103
|
+
for (int i=0; i<t; i++)
|
|
104
|
+
used[i] = 0;
|
|
105
|
+
for (int i=0; i<n; i++)
|
|
106
|
+
for (int t=0; t<p[i]; t++)
|
|
107
|
+
used[x[i]+t] += u[i];
|
|
108
|
+
// Check resource usage
|
|
109
|
+
for (int i=0; i<t; i++)
|
|
110
|
+
if (used[i] > cmax) {
|
|
111
|
+
delete [] used;
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
// Compute resource usage (only internal)
|
|
115
|
+
for (int i=0; i<t; i++)
|
|
116
|
+
used[i] = 0;
|
|
117
|
+
for (int i=0; i<n; i++) {
|
|
118
|
+
for (int t=1; t<p[i]; t++) {
|
|
119
|
+
used[x[i]+t] += u[i];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Check resource usage at start times
|
|
123
|
+
for (int i=0; i<n; i++)
|
|
124
|
+
if (used[x[i]]+u[i] > cmax) {
|
|
125
|
+
delete [] used;
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
delete [] used;
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
/// Post constraint on \a x
|
|
132
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
133
|
+
int n = (c >= 0) ? x.size() : x.size()-1;
|
|
134
|
+
Gecode::IntVarArgs xx;
|
|
135
|
+
if (o==0) {
|
|
136
|
+
xx=x.slice(0,1,n);
|
|
137
|
+
} else {
|
|
138
|
+
xx=Gecode::IntVarArgs(n);
|
|
139
|
+
for (int i=n; i--;)
|
|
140
|
+
xx[i]=Gecode::expr(home,x[i]+o,Gecode::ICL_DOM);
|
|
141
|
+
}
|
|
142
|
+
if (c >= 0) {
|
|
143
|
+
Gecode::cumulative(home, c, xx, p, u);
|
|
144
|
+
} else {
|
|
145
|
+
Gecode::rel(home, x[n] <= -c);
|
|
146
|
+
Gecode::cumulative(home, x[n], xx, p, u);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
/// Test for cumulative constraint with optional tasks
|
|
153
|
+
class OptFixPCumulative : public Test {
|
|
154
|
+
protected:
|
|
155
|
+
/// Capacity of resource
|
|
156
|
+
int c;
|
|
157
|
+
/// The processing times
|
|
158
|
+
Gecode::IntArgs p;
|
|
159
|
+
/// The resource usage
|
|
160
|
+
Gecode::IntArgs u;
|
|
161
|
+
/// Limit for optional tasks
|
|
162
|
+
int l;
|
|
163
|
+
/// Offset
|
|
164
|
+
int o;
|
|
165
|
+
/// Get a reasonable maximal start time
|
|
166
|
+
static int st(int c,
|
|
167
|
+
const Gecode::IntArgs& p, const Gecode::IntArgs& u) {
|
|
168
|
+
double e = 0;
|
|
169
|
+
for (int i=p.size(); i--; )
|
|
170
|
+
e += static_cast<double>(p[i])*u[i];
|
|
171
|
+
return e / std::max(1,std::abs(c));
|
|
172
|
+
}
|
|
173
|
+
public:
|
|
174
|
+
/// Create and register test
|
|
175
|
+
OptFixPCumulative(int c0,
|
|
176
|
+
const Gecode::IntArgs& p0,
|
|
177
|
+
const Gecode::IntArgs& u0,
|
|
178
|
+
int o0)
|
|
179
|
+
: Test("Cumulative::Opt::Fix::"+str(o0)+"::"+
|
|
180
|
+
str(c0)+"::"+str(p0)+"::"+str(u0),
|
|
181
|
+
(c0 >= 0) ? 2*p0.size() : 2*p0.size()+1,0,st(c0,p0,u0)),
|
|
182
|
+
c(c0), p(p0), u(u0), l(st(c,p,u)/2), o(o0) {
|
|
183
|
+
testsearch = false;
|
|
184
|
+
testfix = false;
|
|
185
|
+
contest = CTL_NONE;
|
|
186
|
+
}
|
|
187
|
+
/// Create and register initial assignment
|
|
188
|
+
virtual Assignment* assignment(void) const {
|
|
189
|
+
return new RandomAssignment(arity,dom,500);
|
|
190
|
+
}
|
|
191
|
+
/// Test whether \a x is solution
|
|
192
|
+
virtual bool solution(const Assignment& x) const {
|
|
193
|
+
int nn = (c >= 0) ? x.size() : x.size()-1;
|
|
194
|
+
int cmax = (c >= 0) ? c : x[nn];
|
|
195
|
+
|
|
196
|
+
if (c < 0 && x[nn] > -c)
|
|
197
|
+
return false;
|
|
198
|
+
|
|
199
|
+
int n = nn / 2;
|
|
200
|
+
// Compute maximal time
|
|
201
|
+
int t = 0;
|
|
202
|
+
for (int i=0; i<n; i++)
|
|
203
|
+
t = std::max(t,x[i]+std::max(1,p[i]));
|
|
204
|
+
// Compute resource usage (including at start times)
|
|
205
|
+
int* used = new int[t];
|
|
206
|
+
for (int i=0; i<t; i++)
|
|
207
|
+
used[i] = 0;
|
|
208
|
+
for (int i=0; i<n; i++)
|
|
209
|
+
if (x[n+i] > l)
|
|
210
|
+
for (int t=0; t<p[i]; t++)
|
|
211
|
+
used[x[i]+t] += u[i];
|
|
212
|
+
// Check resource usage
|
|
213
|
+
for (int i=0; i<t; i++) {
|
|
214
|
+
if (used[i] > cmax) {
|
|
215
|
+
delete [] used;
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// Compute resource usage (only internal)
|
|
220
|
+
for (int i=0; i<t; i++)
|
|
221
|
+
used[i] = 0;
|
|
222
|
+
for (int i=0; i<n; i++)
|
|
223
|
+
if (x[n+i] > l) {
|
|
224
|
+
for (int t=1; t<p[i]; t++)
|
|
225
|
+
used[x[i]+t] += u[i];
|
|
226
|
+
}
|
|
227
|
+
// Check resource usage at start times
|
|
228
|
+
for (int i=0; i<n; i++)
|
|
229
|
+
if (x[n+i] > l)
|
|
230
|
+
if (used[x[i]]+u[i] > cmax) {
|
|
231
|
+
delete [] used;
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
delete [] used;
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
/// Post constraint on \a x
|
|
238
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
239
|
+
int nn=(c >= 0) ? x.size() : x.size()-1;
|
|
240
|
+
int n=nn / 2;
|
|
241
|
+
Gecode::IntVarArgs s(n);
|
|
242
|
+
Gecode::BoolVarArgs m(n);
|
|
243
|
+
|
|
244
|
+
for (int i=0; i<n; i++) {
|
|
245
|
+
s[i]=(c >= 0) ? x[i] : Gecode::expr(home,x[i]+o,Gecode::ICL_DOM);
|
|
246
|
+
m[i]=Gecode::expr(home, x[n+i] > l);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
if (c >= 0) {
|
|
250
|
+
Gecode::cumulative(home, c, s, p, u, m);
|
|
251
|
+
} else {
|
|
252
|
+
Gecode::rel(home, x[nn] <= -c);
|
|
253
|
+
Gecode::cumulative(home, x[nn], s, p, u, m);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
/// Test for cumulative constraint with flexible mandatory tasks
|
|
259
|
+
class ManFlexCumulative : public Test {
|
|
260
|
+
protected:
|
|
261
|
+
/// Capacity of resource
|
|
262
|
+
int c;
|
|
263
|
+
/// Minimum processing time
|
|
264
|
+
int _minP;
|
|
265
|
+
/// Maximum processing time
|
|
266
|
+
int _maxP;
|
|
267
|
+
/// The resource usage
|
|
268
|
+
Gecode::IntArgs u;
|
|
269
|
+
/// Get a reasonable maximal start time
|
|
270
|
+
static int st(int c, int maxP, const Gecode::IntArgs& u) {
|
|
271
|
+
double e = 0;
|
|
272
|
+
for (int i=u.size(); i--; )
|
|
273
|
+
e += static_cast<double>(maxP)*u[i];
|
|
274
|
+
return e / std::max(1,std::abs(c));
|
|
275
|
+
}
|
|
276
|
+
/// Offset
|
|
277
|
+
int o;
|
|
278
|
+
public:
|
|
279
|
+
/// Create and register test
|
|
280
|
+
ManFlexCumulative(int c0, int minP, int maxP,
|
|
281
|
+
const Gecode::IntArgs& u0,
|
|
282
|
+
int o0)
|
|
283
|
+
: Test("Cumulative::Man::Flex::"+str(o0)+"::"+
|
|
284
|
+
str(c0)+"::"+str(minP)+"::"+str(maxP)+"::"+str(u0),
|
|
285
|
+
(c0 >= 0) ? 2*u0.size() : 2*u0.size()+1,
|
|
286
|
+
0,std::max(maxP,st(c0,maxP,u0))),
|
|
287
|
+
c(c0), _minP(minP), _maxP(maxP), u(u0), o(o0) {
|
|
288
|
+
testsearch = false;
|
|
289
|
+
testfix = false;
|
|
290
|
+
contest = CTL_NONE;
|
|
291
|
+
}
|
|
292
|
+
/// Create and register initial assignment
|
|
293
|
+
virtual Assignment* assignment(void) const {
|
|
294
|
+
return new RandomMixAssignment((c >= 0) ? arity/2 : arity/2+1,
|
|
295
|
+
dom,arity/2,
|
|
296
|
+
Gecode::IntSet(_minP,_maxP),500);
|
|
297
|
+
}
|
|
298
|
+
/// Test whether \a x is solution
|
|
299
|
+
virtual bool solution(const Assignment& x) const {
|
|
300
|
+
int nn = (c >= 0) ? x.size() : x.size()-1;
|
|
301
|
+
int n = nn/2;
|
|
302
|
+
int cmax = (c >= 0) ? c : x[n];
|
|
303
|
+
int pstart = (c >= 0) ? n : n+1;
|
|
304
|
+
|
|
305
|
+
if (c < 0 && cmax > -c)
|
|
306
|
+
return false;
|
|
307
|
+
|
|
308
|
+
// Compute maximal time
|
|
309
|
+
int t = 0;
|
|
310
|
+
for (int i=0; i<n; i++) {
|
|
311
|
+
t = std::max(t,x[i]+std::max(1,x[pstart+i]));
|
|
312
|
+
}
|
|
313
|
+
// Compute resource usage (including at start times)
|
|
314
|
+
int* used = new int[t];
|
|
315
|
+
for (int i=0; i<t; i++)
|
|
316
|
+
used[i] = 0;
|
|
317
|
+
for (int i=0; i<n; i++)
|
|
318
|
+
for (int t=0; t<x[pstart+i]; t++)
|
|
319
|
+
used[x[i]+t] += u[i];
|
|
320
|
+
// Check resource usage
|
|
321
|
+
for (int i=0; i<t; i++)
|
|
322
|
+
if (used[i] > cmax) {
|
|
323
|
+
delete [] used;
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
// Compute resource usage (only internal)
|
|
327
|
+
for (int i=0; i<t; i++)
|
|
328
|
+
used[i] = 0;
|
|
329
|
+
for (int i=0; i<n; i++) {
|
|
330
|
+
for (int t=1; t<x[pstart+i]; t++)
|
|
331
|
+
used[x[i]+t] += u[i];
|
|
332
|
+
}
|
|
333
|
+
// Check resource usage at start times
|
|
334
|
+
for (int i=0; i<n; i++)
|
|
335
|
+
if (used[x[i]]+u[i] > cmax) {
|
|
336
|
+
delete [] used;
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
delete [] used;
|
|
340
|
+
return true;
|
|
341
|
+
}
|
|
342
|
+
/// Post constraint on \a x
|
|
343
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
344
|
+
int nn = (c >= 0) ? x.size() : x.size()-1;
|
|
345
|
+
int n = nn/2;
|
|
346
|
+
int pstart = (c >= 0) ? n : n+1;
|
|
347
|
+
Gecode::IntVarArgs s(n);
|
|
348
|
+
Gecode::IntVarArgs px(x.slice(pstart,1,n));
|
|
349
|
+
Gecode::IntVarArgs e(home,n,
|
|
350
|
+
Gecode::Int::Limits::min,
|
|
351
|
+
Gecode::Int::Limits::max);
|
|
352
|
+
for (int i=s.size(); i--;) {
|
|
353
|
+
s[i] = expr(home, o+x[i], Gecode::ICL_DOM);
|
|
354
|
+
rel(home, s[i]+px[i] == e[i]);
|
|
355
|
+
rel(home, _minP <= px[i]);
|
|
356
|
+
rel(home, _maxP >= px[i]);
|
|
357
|
+
}
|
|
358
|
+
if (c >= 0) {
|
|
359
|
+
Gecode::cumulative(home, c, s, px, e, u);
|
|
360
|
+
} else {
|
|
361
|
+
rel(home, x[n] <= -c);
|
|
362
|
+
Gecode::cumulative(home, x[n], s, px, e, u);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
/// Test for cumulative constraint with optional flexible tasks
|
|
368
|
+
class OptFlexCumulative : public Test {
|
|
369
|
+
protected:
|
|
370
|
+
/// Capacity of resource
|
|
371
|
+
int c;
|
|
372
|
+
/// Minimum processing time
|
|
373
|
+
int _minP;
|
|
374
|
+
/// Maximum processing time
|
|
375
|
+
int _maxP;
|
|
376
|
+
/// The resource usage
|
|
377
|
+
Gecode::IntArgs u;
|
|
378
|
+
/// Limit for optional tasks
|
|
379
|
+
int l;
|
|
380
|
+
/// Offset
|
|
381
|
+
int o;
|
|
382
|
+
/// Get a reasonable maximal start time
|
|
383
|
+
static int st(int c, int maxP, const Gecode::IntArgs& u) {
|
|
384
|
+
double e = 0;
|
|
385
|
+
for (int i=u.size(); i--; )
|
|
386
|
+
e += static_cast<double>(maxP)*u[i];
|
|
387
|
+
return e / std::max(1,std::abs(c));
|
|
388
|
+
}
|
|
389
|
+
public:
|
|
390
|
+
/// Create and register test
|
|
391
|
+
OptFlexCumulative(int c0, int minP, int maxP,
|
|
392
|
+
const Gecode::IntArgs& u0,
|
|
393
|
+
int o0)
|
|
394
|
+
: Test("Cumulative::Opt::Flex::"+str(o0)+"::"+
|
|
395
|
+
str(c0)+"::"+str(minP)+"::"+str(maxP)+"::"+str(u0),
|
|
396
|
+
(c0 >= 0) ? 3*u0.size() : 3*u0.size()+1,
|
|
397
|
+
0,std::max(maxP,st(c0,maxP,u0))),
|
|
398
|
+
c(c0), _minP(minP), _maxP(maxP), u(u0),
|
|
399
|
+
l(std::max(maxP,st(c0,maxP,u0))/2), o(o0) {
|
|
400
|
+
testsearch = false;
|
|
401
|
+
testfix = false;
|
|
402
|
+
contest = CTL_NONE;
|
|
403
|
+
}
|
|
404
|
+
/// Create and register initial assignment
|
|
405
|
+
virtual Assignment* assignment(void) const {
|
|
406
|
+
return new RandomMixAssignment((c >= 0) ? 2*(arity/3) : 2*(arity/3)+1,
|
|
407
|
+
dom,arity/3,
|
|
408
|
+
Gecode::IntSet(_minP,_maxP),500);
|
|
409
|
+
}
|
|
410
|
+
/// Test whether \a x is solution
|
|
411
|
+
virtual bool solution(const Assignment& x) const {
|
|
412
|
+
int nn = (c >= 0) ? x.size() : x.size()-1;
|
|
413
|
+
int n = nn / 3;
|
|
414
|
+
int cmax = (c >= 0) ? c : x[2*n];
|
|
415
|
+
int pstart = (c >= 0) ? 2*n : 2*n+1;
|
|
416
|
+
|
|
417
|
+
if (c < 0 && cmax > -c)
|
|
418
|
+
return false;
|
|
419
|
+
|
|
420
|
+
// Compute maximal time
|
|
421
|
+
int t = 0;
|
|
422
|
+
for (int i=0; i<n; i++)
|
|
423
|
+
t = std::max(t,x[i]+std::max(1,x[pstart+i]));
|
|
424
|
+
// Compute resource usage (including at start times)
|
|
425
|
+
int* used = new int[t];
|
|
426
|
+
for (int i=0; i<t; i++)
|
|
427
|
+
used[i] = 0;
|
|
428
|
+
for (int i=0; i<n; i++)
|
|
429
|
+
if (x[n+i] > l)
|
|
430
|
+
for (int t=0; t<x[pstart+i]; t++)
|
|
431
|
+
used[x[i]+t] += u[i];
|
|
432
|
+
// Check resource usage
|
|
433
|
+
for (int i=0; i<t; i++)
|
|
434
|
+
if (used[i] > cmax) {
|
|
435
|
+
delete [] used;
|
|
436
|
+
return false;
|
|
437
|
+
}
|
|
438
|
+
// Compute resource usage (only internal)
|
|
439
|
+
for (int i=0; i<t; i++)
|
|
440
|
+
used[i] = 0;
|
|
441
|
+
for (int i=0; i<n; i++)
|
|
442
|
+
if (x[n+i] > l)
|
|
443
|
+
for (int t=1; t<x[pstart+i]; t++)
|
|
444
|
+
used[x[i]+t] += u[i];
|
|
445
|
+
// Check resource usage at start times
|
|
446
|
+
for (int i=0; i<n; i++)
|
|
447
|
+
if (x[n+i] > l && used[x[i]]+u[i] > cmax) {
|
|
448
|
+
delete [] used;
|
|
449
|
+
return false;
|
|
450
|
+
}
|
|
451
|
+
delete [] used;
|
|
452
|
+
return true;
|
|
453
|
+
}
|
|
454
|
+
/// Post constraint on \a x
|
|
455
|
+
virtual void post(Gecode::Space& home, Gecode::IntVarArray& x) {
|
|
456
|
+
int nn = (c >= 0) ? x.size() : x.size()-1;
|
|
457
|
+
int n=nn / 3;
|
|
458
|
+
int pstart= (c >= 0) ? 2*n : 2*n+1;
|
|
459
|
+
|
|
460
|
+
Gecode::IntVarArgs s(n);
|
|
461
|
+
Gecode::IntVarArgs px(n);
|
|
462
|
+
Gecode::IntVarArgs e(home,n,
|
|
463
|
+
Gecode::Int::Limits::min,
|
|
464
|
+
Gecode::Int::Limits::max);
|
|
465
|
+
for (int i=n; i--;) {
|
|
466
|
+
s[i] = expr(home, o+x[i]);
|
|
467
|
+
px[i] = x[pstart+i];
|
|
468
|
+
rel(home, s[i]+px[i] == e[i]);
|
|
469
|
+
rel(home, _minP <= px[i]);
|
|
470
|
+
rel(home, _maxP >= px[i]);
|
|
471
|
+
}
|
|
472
|
+
Gecode::BoolVarArgs m(n);
|
|
473
|
+
for (int i=0; i<n; i++)
|
|
474
|
+
m[i]=Gecode::expr(home, (x[n+i] > l));
|
|
475
|
+
if (c >= 0) {
|
|
476
|
+
Gecode::cumulative(home, c, s, px, e, u, m);
|
|
477
|
+
} else {
|
|
478
|
+
Gecode::rel(home, x[2*n] <= -c);
|
|
479
|
+
Gecode::cumulative(home, x[2*n], s, px, e, u, m);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
};
|
|
483
|
+
|
|
484
|
+
/// Help class to create and register tests
|
|
485
|
+
class Create {
|
|
486
|
+
public:
|
|
487
|
+
/// Perform creation and registration
|
|
488
|
+
Create(void) {
|
|
489
|
+
using namespace Gecode;
|
|
490
|
+
IntArgs p1(4, 1,1,1,1);
|
|
491
|
+
IntArgs p2(4, 2,2,2,2);
|
|
492
|
+
IntArgs p3(4, 4,3,3,5);
|
|
493
|
+
IntArgs p4(4, 4,0,3,5);
|
|
494
|
+
|
|
495
|
+
IntArgs u1(4, 1,1,1,1);
|
|
496
|
+
IntArgs u2(4, 2,2,2,2);
|
|
497
|
+
IntArgs u3(4, 2,3,4,5);
|
|
498
|
+
|
|
499
|
+
for (int c=-7; c<8; c++) {
|
|
500
|
+
int off = 0;
|
|
501
|
+
for (int coff=0; coff<2; coff++) {
|
|
502
|
+
(void) new ManFixPCumulative(c,p1,u1,off);
|
|
503
|
+
(void) new ManFixPCumulative(c,p1,u2,off);
|
|
504
|
+
(void) new ManFixPCumulative(c,p1,u3,off);
|
|
505
|
+
(void) new ManFixPCumulative(c,p2,u1,off);
|
|
506
|
+
(void) new ManFixPCumulative(c,p2,u2,off);
|
|
507
|
+
(void) new ManFixPCumulative(c,p2,u3,off);
|
|
508
|
+
(void) new ManFixPCumulative(c,p3,u1,off);
|
|
509
|
+
(void) new ManFixPCumulative(c,p3,u2,off);
|
|
510
|
+
(void) new ManFixPCumulative(c,p3,u3,off);
|
|
511
|
+
(void) new ManFixPCumulative(c,p4,u1,off);
|
|
512
|
+
(void) new ManFixPCumulative(c,p4,u2,off);
|
|
513
|
+
(void) new ManFixPCumulative(c,p4,u3,off);
|
|
514
|
+
|
|
515
|
+
(void) new ManFlexCumulative(c,0,1,u1,off);
|
|
516
|
+
(void) new ManFlexCumulative(c,0,1,u2,off);
|
|
517
|
+
(void) new ManFlexCumulative(c,0,1,u3,off);
|
|
518
|
+
(void) new ManFlexCumulative(c,0,2,u1,off);
|
|
519
|
+
(void) new ManFlexCumulative(c,0,2,u2,off);
|
|
520
|
+
(void) new ManFlexCumulative(c,0,2,u3,off);
|
|
521
|
+
(void) new ManFlexCumulative(c,3,5,u1,off);
|
|
522
|
+
(void) new ManFlexCumulative(c,3,5,u2,off);
|
|
523
|
+
(void) new ManFlexCumulative(c,3,5,u3,off);
|
|
524
|
+
|
|
525
|
+
(void) new OptFixPCumulative(c,p1,u1,off);
|
|
526
|
+
(void) new OptFixPCumulative(c,p1,u2,off);
|
|
527
|
+
(void) new OptFixPCumulative(c,p1,u3,off);
|
|
528
|
+
(void) new OptFixPCumulative(c,p2,u1,off);
|
|
529
|
+
(void) new OptFixPCumulative(c,p2,u2,off);
|
|
530
|
+
(void) new OptFixPCumulative(c,p2,u3,off);
|
|
531
|
+
(void) new OptFixPCumulative(c,p3,u1,off);
|
|
532
|
+
(void) new OptFixPCumulative(c,p3,u2,off);
|
|
533
|
+
(void) new OptFixPCumulative(c,p3,u3,off);
|
|
534
|
+
(void) new OptFixPCumulative(c,p4,u1,off);
|
|
535
|
+
(void) new OptFixPCumulative(c,p4,u2,off);
|
|
536
|
+
(void) new OptFixPCumulative(c,p4,u3,off);
|
|
537
|
+
|
|
538
|
+
(void) new OptFlexCumulative(c,0,1,u1,off);
|
|
539
|
+
(void) new OptFlexCumulative(c,0,1,u2,off);
|
|
540
|
+
(void) new OptFlexCumulative(c,0,1,u3,off);
|
|
541
|
+
(void) new OptFlexCumulative(c,0,2,u1,off);
|
|
542
|
+
(void) new OptFlexCumulative(c,0,2,u2,off);
|
|
543
|
+
(void) new OptFlexCumulative(c,0,2,u3,off);
|
|
544
|
+
(void) new OptFlexCumulative(c,3,5,u1,off);
|
|
545
|
+
(void) new OptFlexCumulative(c,3,5,u2,off);
|
|
546
|
+
(void) new OptFlexCumulative(c,3,5,u3,off);
|
|
547
|
+
|
|
548
|
+
off = Gecode::Int::Limits::min;
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
};
|
|
553
|
+
|
|
554
|
+
Create c;
|
|
555
|
+
//@}
|
|
556
|
+
|
|
557
|
+
}
|
|
558
|
+
}}
|
|
559
|
+
|
|
560
|
+
// STATISTICS: test-int
|