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,258 @@
|
|
|
1
|
+
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Main authors:
|
|
4
|
+
* Christian Schulte <schulte@gecode.org>
|
|
5
|
+
* Guido Tack <tack@gecode.org>
|
|
6
|
+
*
|
|
7
|
+
* Copyright:
|
|
8
|
+
* Christian Schulte, 2009
|
|
9
|
+
* Guido Tack, 2010
|
|
10
|
+
*
|
|
11
|
+
* Last modified:
|
|
12
|
+
* $Date: 2011-07-14 02:51:41 +1000 (Thu, 14 Jul 2011) $ by $Author: tack $
|
|
13
|
+
* $Revision: 12193 $
|
|
14
|
+
*
|
|
15
|
+
* This file is part of Gecode, the generic constraint
|
|
16
|
+
* development environment:
|
|
17
|
+
* http://www.gecode.org
|
|
18
|
+
*
|
|
19
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
|
20
|
+
* a copy of this software and associated documentation files (the
|
|
21
|
+
* "Software"), to deal in the Software without restriction, including
|
|
22
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
|
23
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
|
24
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
|
25
|
+
* the following conditions:
|
|
26
|
+
*
|
|
27
|
+
* The above copyright notice and this permission notice shall be
|
|
28
|
+
* included in all copies or substantial portions of the Software.
|
|
29
|
+
*
|
|
30
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
31
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
32
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
33
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
34
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
35
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
36
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
37
|
+
*
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
#include <gecode/int/unary.hh>
|
|
41
|
+
#include <gecode/int/distinct.hh>
|
|
42
|
+
|
|
43
|
+
#include <algorithm>
|
|
44
|
+
|
|
45
|
+
namespace Gecode {
|
|
46
|
+
|
|
47
|
+
void
|
|
48
|
+
unary(Home home, const IntVarArgs& s, const IntArgs& p, IntConLevel icl) {
|
|
49
|
+
using namespace Gecode::Int;
|
|
50
|
+
using namespace Gecode::Int::Unary;
|
|
51
|
+
if (s.same(home))
|
|
52
|
+
throw Int::ArgumentSame("Int::unary");
|
|
53
|
+
if (s.size() != p.size())
|
|
54
|
+
throw Int::ArgumentSizeMismatch("Int::unary");
|
|
55
|
+
for (int i=p.size(); i--; ) {
|
|
56
|
+
Int::Limits::nonnegative(p[i],"Int::unary");
|
|
57
|
+
Int::Limits::check(static_cast<double>(s[i].max()) + p[i],
|
|
58
|
+
"Int::unary");
|
|
59
|
+
}
|
|
60
|
+
if (home.failed()) return;
|
|
61
|
+
bool allOne = true;
|
|
62
|
+
for (int i=p.size(); i--;) {
|
|
63
|
+
if (p[i] != 1) {
|
|
64
|
+
allOne = false;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (allOne) {
|
|
69
|
+
ViewArray<IntView> xv(home,s);
|
|
70
|
+
switch (icl) {
|
|
71
|
+
case ICL_BND:
|
|
72
|
+
GECODE_ES_FAIL(Distinct::Bnd<IntView>::post(home,xv));
|
|
73
|
+
break;
|
|
74
|
+
case ICL_DOM:
|
|
75
|
+
GECODE_ES_FAIL(Distinct::Dom<IntView>::post(home,xv));
|
|
76
|
+
break;
|
|
77
|
+
default:
|
|
78
|
+
GECODE_ES_FAIL(Distinct::Val<IntView>::post(home,xv));
|
|
79
|
+
}
|
|
80
|
+
} else {
|
|
81
|
+
TaskArray<ManFixPTask> t(home,s.size());
|
|
82
|
+
for (int i=s.size(); i--; )
|
|
83
|
+
t[i].init(s[i],p[i]);
|
|
84
|
+
GECODE_ES_FAIL(ManProp<ManFixPTask>::post(home,t));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
void
|
|
89
|
+
unary(Home home, const TaskTypeArgs& t,
|
|
90
|
+
const IntVarArgs& flex, const IntArgs& fix, IntConLevel icl) {
|
|
91
|
+
using namespace Gecode::Int;
|
|
92
|
+
using namespace Gecode::Int::Unary;
|
|
93
|
+
if ((flex.size() != fix.size()) || (flex.size() != t.size()))
|
|
94
|
+
throw Int::ArgumentSizeMismatch("Int::unary");
|
|
95
|
+
for (int i=fix.size(); i--; ) {
|
|
96
|
+
if (t[i] == TT_FIXP)
|
|
97
|
+
Int::Limits::nonnegative(fix[i],"Int::unary");
|
|
98
|
+
else
|
|
99
|
+
Int::Limits::check(fix[i],"Int::unary");
|
|
100
|
+
Int::Limits::check(static_cast<double>(flex[i].max()) + fix[i],
|
|
101
|
+
"Int::unary");
|
|
102
|
+
}
|
|
103
|
+
if (home.failed()) return;
|
|
104
|
+
bool fixp = true;
|
|
105
|
+
for (int i=t.size(); i--;)
|
|
106
|
+
if (t[i] != TT_FIXP) {
|
|
107
|
+
fixp = false; break;
|
|
108
|
+
}
|
|
109
|
+
if (fixp) {
|
|
110
|
+
unary(home, flex, fix, icl);
|
|
111
|
+
} else {
|
|
112
|
+
TaskArray<ManFixPSETask> tasks(home,flex.size());
|
|
113
|
+
for (int i=flex.size(); i--;)
|
|
114
|
+
tasks[i].init(t[i],flex[i],fix[i]);
|
|
115
|
+
GECODE_ES_FAIL(ManProp<ManFixPSETask>::post(home,tasks));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
void
|
|
120
|
+
unary(Home home, const IntVarArgs& s, const IntArgs& p,
|
|
121
|
+
const BoolVarArgs& m, IntConLevel icl) {
|
|
122
|
+
using namespace Gecode::Int;
|
|
123
|
+
using namespace Gecode::Int::Unary;
|
|
124
|
+
if (s.same(home))
|
|
125
|
+
throw Int::ArgumentSame("Int::unary");
|
|
126
|
+
if ((s.size() != p.size()) || (s.size() != m.size()))
|
|
127
|
+
throw Int::ArgumentSizeMismatch("Int::unary");
|
|
128
|
+
for (int i=p.size(); i--; ) {
|
|
129
|
+
Int::Limits::nonnegative(p[i],"Int::unary");
|
|
130
|
+
Int::Limits::check(static_cast<double>(s[i].max()) + p[i],
|
|
131
|
+
"Int::unary");
|
|
132
|
+
}
|
|
133
|
+
bool allMandatory = true;
|
|
134
|
+
for (int i=m.size(); i--;) {
|
|
135
|
+
if (!m[i].one()) {
|
|
136
|
+
allMandatory = false;
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (allMandatory) {
|
|
141
|
+
unary(home,s,p,icl);
|
|
142
|
+
} else {
|
|
143
|
+
if (home.failed()) return;
|
|
144
|
+
TaskArray<OptFixPTask> t(home,s.size());
|
|
145
|
+
for (int i=s.size(); i--; )
|
|
146
|
+
t[i].init(s[i],p[i],m[i]);
|
|
147
|
+
GECODE_ES_FAIL(OptProp<OptFixPTask>::post(home,t));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
void
|
|
152
|
+
unary(Home home, const TaskTypeArgs& t,
|
|
153
|
+
const IntVarArgs& flex, const IntArgs& fix, const BoolVarArgs& m,
|
|
154
|
+
IntConLevel icl) {
|
|
155
|
+
using namespace Gecode::Int;
|
|
156
|
+
using namespace Gecode::Int::Unary;
|
|
157
|
+
if ((flex.size() != fix.size()) || (flex.size() != t.size()) ||
|
|
158
|
+
(flex.size() != m.size()))
|
|
159
|
+
throw Int::ArgumentSizeMismatch("Int::unary");
|
|
160
|
+
bool fixp = true;
|
|
161
|
+
for (int i=fix.size(); i--; ) {
|
|
162
|
+
if (t[i] == TT_FIXP) {
|
|
163
|
+
Int::Limits::nonnegative(fix[i],"Int::unary");
|
|
164
|
+
} else {
|
|
165
|
+
fixp = false;
|
|
166
|
+
Int::Limits::check(fix[i],"Int::unary");
|
|
167
|
+
}
|
|
168
|
+
Int::Limits::check(static_cast<double>(flex[i].max()) + fix[i],
|
|
169
|
+
"Int::unary");
|
|
170
|
+
}
|
|
171
|
+
if (home.failed()) return;
|
|
172
|
+
bool allMandatory = true;
|
|
173
|
+
for (int i=m.size(); i--;) {
|
|
174
|
+
if (!m[i].one()) {
|
|
175
|
+
allMandatory = false;
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (allMandatory) {
|
|
180
|
+
unary(home,t,flex,fix,icl);
|
|
181
|
+
} else {
|
|
182
|
+
if (fixp) {
|
|
183
|
+
TaskArray<OptFixPTask> tasks(home,flex.size());
|
|
184
|
+
for (int i=flex.size(); i--; )
|
|
185
|
+
tasks[i].init(flex[i],fix[i],m[i]);
|
|
186
|
+
GECODE_ES_FAIL(OptProp<OptFixPTask>::post(home,tasks));
|
|
187
|
+
} else {
|
|
188
|
+
TaskArray<OptFixPSETask> tasks(home,flex.size());
|
|
189
|
+
for (int i=flex.size(); i--;)
|
|
190
|
+
tasks[i].init(t[i],flex[i],fix[i],m[i]);
|
|
191
|
+
GECODE_ES_FAIL(OptProp<OptFixPSETask>::post(home,tasks));
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
void
|
|
197
|
+
unary(Home home, const IntVarArgs& s, const IntVarArgs& p,
|
|
198
|
+
const IntVarArgs& e, IntConLevel icl) {
|
|
199
|
+
using namespace Gecode::Int;
|
|
200
|
+
using namespace Gecode::Int::Unary;
|
|
201
|
+
if ((s.size() != p.size()) || (s.size() != e.size()))
|
|
202
|
+
throw Int::ArgumentSizeMismatch("Int::unary");
|
|
203
|
+
if (home.failed()) return;
|
|
204
|
+
for (int i=p.size(); i--; ) {
|
|
205
|
+
rel(home, p[i], IRT_GQ, 0);
|
|
206
|
+
}
|
|
207
|
+
bool fixP = true;
|
|
208
|
+
for (int i=p.size(); i--;) {
|
|
209
|
+
if (!p[i].assigned()) {
|
|
210
|
+
fixP = false;
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
if (fixP) {
|
|
215
|
+
IntArgs pp(p.size());
|
|
216
|
+
for (int i=p.size(); i--;)
|
|
217
|
+
pp[i] = p[i].val();
|
|
218
|
+
unary(home,s,pp,icl);
|
|
219
|
+
} else {
|
|
220
|
+
TaskArray<ManFlexTask> t(home,s.size());
|
|
221
|
+
for (int i=s.size(); i--; )
|
|
222
|
+
t[i].init(s[i],p[i],e[i]);
|
|
223
|
+
GECODE_ES_FAIL(ManProp<ManFlexTask>::post(home,t));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
void
|
|
228
|
+
unary(Home home, const IntVarArgs& s, const IntVarArgs& p,
|
|
229
|
+
const IntVarArgs& e, const BoolVarArgs& m, IntConLevel icl) {
|
|
230
|
+
using namespace Gecode::Int;
|
|
231
|
+
using namespace Gecode::Int::Unary;
|
|
232
|
+
if ((s.size() != p.size()) || (s.size() != m.size()) ||
|
|
233
|
+
(s.size() != e.size()))
|
|
234
|
+
throw Int::ArgumentSizeMismatch("Int::unary");
|
|
235
|
+
if (home.failed()) return;
|
|
236
|
+
for (int i=p.size(); i--; ) {
|
|
237
|
+
rel(home, p[i], IRT_GQ, 0);
|
|
238
|
+
}
|
|
239
|
+
bool allMandatory = true;
|
|
240
|
+
for (int i=m.size(); i--;) {
|
|
241
|
+
if (!m[i].one()) {
|
|
242
|
+
allMandatory = false;
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (allMandatory) {
|
|
247
|
+
unary(home,s,p,e,icl);
|
|
248
|
+
} else {
|
|
249
|
+
TaskArray<OptFlexTask> t(home,s.size());
|
|
250
|
+
for (int i=s.size(); i--; )
|
|
251
|
+
t[i].init(s[i],p[i],e[i],m[i]);
|
|
252
|
+
GECODE_ES_FAIL(OptProp<OptFlexTask>::post(home,t));
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// STATISTICS: int-post
|
|
@@ -0,0 +1,839 @@
|
|
|
1
|
+
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Main authors:
|
|
4
|
+
* Christian Schulte <schulte@gecode.org>
|
|
5
|
+
* Guido Tack <tack@gecode.org>
|
|
6
|
+
*
|
|
7
|
+
* Copyright:
|
|
8
|
+
* Christian Schulte, 2009
|
|
9
|
+
* Guido Tack, 2010
|
|
10
|
+
*
|
|
11
|
+
* Last modified:
|
|
12
|
+
* $Date: 2011-07-14 04:01:39 +1000 (Thu, 14 Jul 2011) $ by $Author: schulte $
|
|
13
|
+
* $Revision: 12197 $
|
|
14
|
+
*
|
|
15
|
+
* This file is part of Gecode, the generic constraint
|
|
16
|
+
* development environment:
|
|
17
|
+
* http://www.gecode.org
|
|
18
|
+
*
|
|
19
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
|
20
|
+
* a copy of this software and associated documentation files (the
|
|
21
|
+
* "Software"), to deal in the Software without restriction, including
|
|
22
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
|
23
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
|
24
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
|
25
|
+
* the following conditions:
|
|
26
|
+
*
|
|
27
|
+
* The above copyright notice and this permission notice shall be
|
|
28
|
+
* included in all copies or substantial portions of the Software.
|
|
29
|
+
*
|
|
30
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
31
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
32
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
33
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
34
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
35
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
36
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
37
|
+
*
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
#ifndef __GECODE_INT_UNARY_HH__
|
|
41
|
+
#define __GECODE_INT_UNARY_HH__
|
|
42
|
+
|
|
43
|
+
#include <gecode/int/task.hh>
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* \namespace Gecode::Int::Unary
|
|
47
|
+
*
|
|
48
|
+
* The algorithms and data structures follow (mostly):
|
|
49
|
+
* Petr Vil�m, Global Constraints in Int, PhD thesis,
|
|
50
|
+
* Charles University, Prague, Czech Republic, 2007.
|
|
51
|
+
*
|
|
52
|
+
* \brief %Int for unary resources
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
namespace Gecode { namespace Int { namespace Unary {
|
|
56
|
+
|
|
57
|
+
/// %Unary (mandatory) task with fixed processing time
|
|
58
|
+
class ManFixPTask {
|
|
59
|
+
protected:
|
|
60
|
+
/// Start time
|
|
61
|
+
Int::IntView _s;
|
|
62
|
+
/// Processing time
|
|
63
|
+
int _p;
|
|
64
|
+
public:
|
|
65
|
+
/// \name Constructors and initialization
|
|
66
|
+
//@{
|
|
67
|
+
/// Default constructor
|
|
68
|
+
ManFixPTask(void);
|
|
69
|
+
/// Initialize with start time \a s and processing time \a p
|
|
70
|
+
ManFixPTask(IntVar s, int p);
|
|
71
|
+
/// Initialize with start time \a s and processing time \a p
|
|
72
|
+
void init(IntVar s, int p);
|
|
73
|
+
/// Initialize from task \a t
|
|
74
|
+
void init(const ManFixPTask& t);
|
|
75
|
+
//@}
|
|
76
|
+
|
|
77
|
+
/// \name Value access
|
|
78
|
+
//@{
|
|
79
|
+
/// Return earliest start time
|
|
80
|
+
int est(void) const;
|
|
81
|
+
/// Return earliest completion time
|
|
82
|
+
int ect(void) const;
|
|
83
|
+
/// Return latest start time
|
|
84
|
+
int lst(void) const;
|
|
85
|
+
/// Return latest completion time
|
|
86
|
+
int lct(void) const;
|
|
87
|
+
/// Return minimum processing time
|
|
88
|
+
int pmin(void) const;
|
|
89
|
+
/// Return maximum processing time
|
|
90
|
+
int pmax(void) const;
|
|
91
|
+
/// Return start time
|
|
92
|
+
IntVar st(void) const;
|
|
93
|
+
/// Whether task is mandatory
|
|
94
|
+
bool mandatory(void) const;
|
|
95
|
+
/// Whether task is excluded
|
|
96
|
+
bool excluded(void) const;
|
|
97
|
+
/// Whether task can still be optional
|
|
98
|
+
bool optional(void) const;
|
|
99
|
+
//@}
|
|
100
|
+
|
|
101
|
+
/// \name Domain tests
|
|
102
|
+
//@{
|
|
103
|
+
/// Test whether task is assigned
|
|
104
|
+
bool assigned(void) const;
|
|
105
|
+
//@}
|
|
106
|
+
|
|
107
|
+
/// \name Value update
|
|
108
|
+
//@{
|
|
109
|
+
/// Update earliest start time to \a n
|
|
110
|
+
ModEvent est(Space& home, int n);
|
|
111
|
+
/// Update earliest completion time to \a n
|
|
112
|
+
ModEvent ect(Space& home, int n);
|
|
113
|
+
/// Update latest start time to \a n
|
|
114
|
+
ModEvent lst(Space& home, int n);
|
|
115
|
+
/// Update latest completion time to \a n
|
|
116
|
+
ModEvent lct(Space& home, int n);
|
|
117
|
+
/// Update such that task cannot run from \a e to \a l
|
|
118
|
+
ModEvent norun(Space& home, int e, int l);
|
|
119
|
+
/// Mark task as mandatory
|
|
120
|
+
ModEvent mandatory(Space& home);
|
|
121
|
+
/// Mark task as excluded
|
|
122
|
+
ModEvent excluded(Space& home);
|
|
123
|
+
//@}
|
|
124
|
+
|
|
125
|
+
/// \name Cloning
|
|
126
|
+
//@{
|
|
127
|
+
/// Update this task to be a clone of task \a t
|
|
128
|
+
void update(Space& home, bool share, ManFixPTask& t);
|
|
129
|
+
//@}
|
|
130
|
+
|
|
131
|
+
/// \name Dependencies
|
|
132
|
+
//@{
|
|
133
|
+
/// Subscribe propagator \a p to task
|
|
134
|
+
void subscribe(Space& home, Propagator& p, PropCond pc=Int::PC_INT_BND);
|
|
135
|
+
/// Cancel subscription of propagator \a p for task
|
|
136
|
+
void cancel(Space& home, Propagator& p, PropCond pc=Int::PC_INT_BND);
|
|
137
|
+
//@}
|
|
138
|
+
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* \brief Print task in format est:p:lct
|
|
143
|
+
* \relates ManFixPTask
|
|
144
|
+
*/
|
|
145
|
+
template<class Char, class Traits>
|
|
146
|
+
std::basic_ostream<Char,Traits>&
|
|
147
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const ManFixPTask& t);
|
|
148
|
+
|
|
149
|
+
/// %Unary (mandatory) task with fixed processing, start or end time
|
|
150
|
+
class ManFixPSETask : public ManFixPTask {
|
|
151
|
+
protected:
|
|
152
|
+
/// Task type
|
|
153
|
+
TaskType _t;
|
|
154
|
+
public:
|
|
155
|
+
/// \name Constructors and initialization
|
|
156
|
+
//@{
|
|
157
|
+
/// Default constructor
|
|
158
|
+
ManFixPSETask(void);
|
|
159
|
+
/**
|
|
160
|
+
* \brief Initialize task
|
|
161
|
+
*
|
|
162
|
+
* Depending on \a t, \a s is either the end time (if \a t is TT_FIXS)
|
|
163
|
+
* or the start time of the task, and \a p is the fixed parameter.
|
|
164
|
+
*/
|
|
165
|
+
ManFixPSETask(TaskType t, IntVar s, int p);
|
|
166
|
+
/**
|
|
167
|
+
* \brief Initialize task
|
|
168
|
+
*
|
|
169
|
+
* Depending on \a t, \a s is either the end time (if \a t is FIXS)
|
|
170
|
+
* or the start time of the task, and \a p is the fixed parameter.
|
|
171
|
+
*/
|
|
172
|
+
void init(TaskType t, IntVar s, int p);
|
|
173
|
+
/// Initialize from task \a t
|
|
174
|
+
void init(const ManFixPSETask& t);
|
|
175
|
+
//@}
|
|
176
|
+
|
|
177
|
+
/// \name Value access
|
|
178
|
+
//@{
|
|
179
|
+
/// Return earliest start time
|
|
180
|
+
int est(void) const;
|
|
181
|
+
/// Return earliest completion time
|
|
182
|
+
int ect(void) const;
|
|
183
|
+
/// Return latest start time
|
|
184
|
+
int lst(void) const;
|
|
185
|
+
/// Return latest completion time
|
|
186
|
+
int lct(void) const;
|
|
187
|
+
/// Return minimum processing time
|
|
188
|
+
int pmin(void) const;
|
|
189
|
+
/// Return maximum processing time
|
|
190
|
+
int pmax(void) const;
|
|
191
|
+
//@}
|
|
192
|
+
|
|
193
|
+
/// \name Value update
|
|
194
|
+
//@{
|
|
195
|
+
/// Update earliest start time to \a n
|
|
196
|
+
ModEvent est(Space& home, int n);
|
|
197
|
+
/// Update earliest completion time to \a n
|
|
198
|
+
ModEvent ect(Space& home, int n);
|
|
199
|
+
/// Update latest start time to \a n
|
|
200
|
+
ModEvent lst(Space& home, int n);
|
|
201
|
+
/// Update latest completion time to \a n
|
|
202
|
+
ModEvent lct(Space& home, int n);
|
|
203
|
+
/// Update such that task cannot run from \a e to \a l
|
|
204
|
+
ModEvent norun(Space& home, int e, int l);
|
|
205
|
+
//@}
|
|
206
|
+
|
|
207
|
+
/// \name Cloning
|
|
208
|
+
//@{
|
|
209
|
+
/// Update this task to be a clone of task \a t
|
|
210
|
+
void update(Space& home, bool share, ManFixPSETask& t);
|
|
211
|
+
//@}
|
|
212
|
+
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* \brief Print task in format est:[p,c]:lct
|
|
217
|
+
* \relates ManFixPSETask
|
|
218
|
+
*/
|
|
219
|
+
template<class Char, class Traits>
|
|
220
|
+
std::basic_ostream<Char,Traits>&
|
|
221
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const ManFixPSETask& t);
|
|
222
|
+
|
|
223
|
+
/// %Unary optional task with fixed processing time
|
|
224
|
+
class OptFixPTask : public ManToOptTask<ManFixPTask> {
|
|
225
|
+
protected:
|
|
226
|
+
using ManToOptTask<ManFixPTask>::_m;
|
|
227
|
+
public:
|
|
228
|
+
/// \name Constructors and initialization
|
|
229
|
+
//@{
|
|
230
|
+
/// Default constructor
|
|
231
|
+
OptFixPTask(void);
|
|
232
|
+
/// Initialize with start time \a s, processing time \a p, and mandatory flag \a m
|
|
233
|
+
OptFixPTask(IntVar s, int p, BoolVar m);
|
|
234
|
+
/// Initialize with start time \a s, processing time \a p, and mandatory flag \a m
|
|
235
|
+
void init(IntVar s, int p, BoolVar m);
|
|
236
|
+
//@}
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* \brief Print optional task in format est:p:lct:m
|
|
241
|
+
* \relates OptFixPTask
|
|
242
|
+
*/
|
|
243
|
+
template<class Char, class Traits>
|
|
244
|
+
std::basic_ostream<Char,Traits>&
|
|
245
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const OptFixPTask& t);
|
|
246
|
+
|
|
247
|
+
/// Unary optional task with fixed processing, start or end time
|
|
248
|
+
class OptFixPSETask : public ManToOptTask<ManFixPSETask> {
|
|
249
|
+
protected:
|
|
250
|
+
using ManToOptTask<ManFixPSETask>::_m;
|
|
251
|
+
public:
|
|
252
|
+
/// \name Constructors and initialization
|
|
253
|
+
//@{
|
|
254
|
+
/// Default constructor
|
|
255
|
+
OptFixPSETask(void);
|
|
256
|
+
/// Initialize with start time \a s, processing time \a p, and mandatory flag \a m
|
|
257
|
+
OptFixPSETask(TaskType t, IntVar s, int p, BoolVar m);
|
|
258
|
+
/// Initialize with start time \a s, processing time \a p, and mandatory flag \a m
|
|
259
|
+
void init(TaskType t, IntVar s, int p, BoolVar m);
|
|
260
|
+
//@}
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* \brief Print optional task in format est:p:lct:m
|
|
265
|
+
* \relates OptFixPSETask
|
|
266
|
+
*/
|
|
267
|
+
template<class Char, class Traits>
|
|
268
|
+
std::basic_ostream<Char,Traits>&
|
|
269
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const OptFixPSETask& t);
|
|
270
|
+
|
|
271
|
+
/// %Unary (mandatory) task with flexible processing time
|
|
272
|
+
class ManFlexTask {
|
|
273
|
+
protected:
|
|
274
|
+
/// Start time
|
|
275
|
+
Int::IntView _s;
|
|
276
|
+
/// Processing time
|
|
277
|
+
Int::IntView _p;
|
|
278
|
+
/// End time
|
|
279
|
+
Int::IntView _e;
|
|
280
|
+
public:
|
|
281
|
+
/// \name Constructors and initialization
|
|
282
|
+
//@{
|
|
283
|
+
/// Default constructor
|
|
284
|
+
ManFlexTask(void);
|
|
285
|
+
/// Initialize with start time \a s, processing time \a p, end time \a e
|
|
286
|
+
ManFlexTask(IntVar s, IntVar p, IntVar e);
|
|
287
|
+
/// Initialize with start time \a s, processing time \a p, end time \a e
|
|
288
|
+
void init(IntVar s, IntVar p, IntVar e);
|
|
289
|
+
/// Initialize from task \a t
|
|
290
|
+
void init(const ManFlexTask& t);
|
|
291
|
+
//@}
|
|
292
|
+
|
|
293
|
+
/// \name Value access
|
|
294
|
+
//@{
|
|
295
|
+
/// Return earliest start time
|
|
296
|
+
int est(void) const;
|
|
297
|
+
/// Return earliest completion time
|
|
298
|
+
int ect(void) const;
|
|
299
|
+
/// Return latest start time
|
|
300
|
+
int lst(void) const;
|
|
301
|
+
/// Return latest completion time
|
|
302
|
+
int lct(void) const;
|
|
303
|
+
/// Return minimum processing time
|
|
304
|
+
int pmin(void) const;
|
|
305
|
+
/// Return maximum processing time
|
|
306
|
+
int pmax(void) const;
|
|
307
|
+
/// Return start time
|
|
308
|
+
IntVar st(void) const;
|
|
309
|
+
/// Return processing time
|
|
310
|
+
IntVar p(void) const;
|
|
311
|
+
/// Return end time
|
|
312
|
+
IntVar e(void) const;
|
|
313
|
+
/// Whether task is mandatory
|
|
314
|
+
bool mandatory(void) const;
|
|
315
|
+
/// Whether task is excluded
|
|
316
|
+
bool excluded(void) const;
|
|
317
|
+
/// Whether task can still be optional
|
|
318
|
+
bool optional(void) const;
|
|
319
|
+
//@}
|
|
320
|
+
|
|
321
|
+
/// \name Domain tests
|
|
322
|
+
//@{
|
|
323
|
+
/// Test whether task is assigned
|
|
324
|
+
bool assigned(void) const;
|
|
325
|
+
//@}
|
|
326
|
+
|
|
327
|
+
/// \name Value update
|
|
328
|
+
//@{
|
|
329
|
+
/// Update earliest start time to \a n
|
|
330
|
+
ModEvent est(Space& home, int n);
|
|
331
|
+
/// Update earliest completion time to \a n
|
|
332
|
+
ModEvent ect(Space& home, int n);
|
|
333
|
+
/// Update latest start time to \a n
|
|
334
|
+
ModEvent lst(Space& home, int n);
|
|
335
|
+
/// Update latest completion time to \a n
|
|
336
|
+
ModEvent lct(Space& home, int n);
|
|
337
|
+
/// Update such that task cannot run from \a e to \a l
|
|
338
|
+
ModEvent norun(Space& home, int e, int l);
|
|
339
|
+
/// Mark task as mandatory
|
|
340
|
+
ModEvent mandatory(Space& home);
|
|
341
|
+
/// Mark task as excluded
|
|
342
|
+
ModEvent excluded(Space& home);
|
|
343
|
+
//@}
|
|
344
|
+
|
|
345
|
+
/// \name Cloning
|
|
346
|
+
//@{
|
|
347
|
+
/// Update this task to be a clone of task \a t
|
|
348
|
+
void update(Space& home, bool share, ManFlexTask& t);
|
|
349
|
+
//@}
|
|
350
|
+
|
|
351
|
+
/// \name Dependencies
|
|
352
|
+
//@{
|
|
353
|
+
/// Subscribe propagator \a p to task
|
|
354
|
+
void subscribe(Space& home, Propagator& p, PropCond pc=Int::PC_INT_BND);
|
|
355
|
+
/// Cancel subscription of propagator \a p for task
|
|
356
|
+
void cancel(Space& home, Propagator& p, PropCond pc=Int::PC_INT_BND);
|
|
357
|
+
//@}
|
|
358
|
+
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* \brief Print task in format est:lst:pmin:pmax:ect:lct
|
|
363
|
+
* \relates ManFlexTask
|
|
364
|
+
*/
|
|
365
|
+
template<class Char, class Traits>
|
|
366
|
+
std::basic_ostream<Char,Traits>&
|
|
367
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const ManFlexTask& t);
|
|
368
|
+
|
|
369
|
+
/// %Unary optional task with flexible processing time
|
|
370
|
+
class OptFlexTask : public ManToOptTask<ManFlexTask> {
|
|
371
|
+
protected:
|
|
372
|
+
using ManToOptTask<ManFlexTask>::_m;
|
|
373
|
+
public:
|
|
374
|
+
/// \name Constructors and initialization
|
|
375
|
+
//@{
|
|
376
|
+
/// Default constructor
|
|
377
|
+
OptFlexTask(void);
|
|
378
|
+
/// Initialize with start time \a s, processing time \a p, end time \a e, and mandatory flag \a m
|
|
379
|
+
OptFlexTask(IntVar s, IntVar p, IntVar e, BoolVar m);
|
|
380
|
+
/// Initialize with start time \a s, processing time \a p, end time \a e, and mandatory flag \a m
|
|
381
|
+
void init(IntVar s, IntVar p, IntVar e, BoolVar m);
|
|
382
|
+
//@}
|
|
383
|
+
};
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* \brief Print optional task in format est:lst:pmin:pmax:ect:lct:m
|
|
387
|
+
* \relates OptFlexTask
|
|
388
|
+
*/
|
|
389
|
+
template<class Char, class Traits>
|
|
390
|
+
std::basic_ostream<Char,Traits>&
|
|
391
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const OptFlexTask& t);
|
|
392
|
+
|
|
393
|
+
}}}
|
|
394
|
+
|
|
395
|
+
#include <gecode/int/unary/task.hpp>
|
|
396
|
+
|
|
397
|
+
namespace Gecode { namespace Int { namespace Unary {
|
|
398
|
+
|
|
399
|
+
/// Forward mandatory fixed task view
|
|
400
|
+
typedef ManFixPTask ManFixPTaskFwd;
|
|
401
|
+
|
|
402
|
+
/// Backward (dual) mandatory fixed task view
|
|
403
|
+
typedef FwdToBwd<ManFixPTaskFwd> ManFixPTaskBwd;
|
|
404
|
+
|
|
405
|
+
/// Forward mandatory fixed task view
|
|
406
|
+
typedef ManFixPSETask ManFixPSETaskFwd;
|
|
407
|
+
|
|
408
|
+
/// Backward (dual) mandatory fixed task view
|
|
409
|
+
typedef FwdToBwd<ManFixPSETaskFwd> ManFixPSETaskBwd;
|
|
410
|
+
|
|
411
|
+
/// Forward optional fixed task view
|
|
412
|
+
typedef OptFixPTask OptFixPTaskFwd;
|
|
413
|
+
|
|
414
|
+
/// Backward (dual) optional fixed task view
|
|
415
|
+
typedef FwdToBwd<OptFixPTaskFwd> OptFixPTaskBwd;
|
|
416
|
+
|
|
417
|
+
/// Forward optional fixed task view
|
|
418
|
+
typedef OptFixPSETask OptFixPSETaskFwd;
|
|
419
|
+
|
|
420
|
+
/// Backward (dual) optional fixed task view
|
|
421
|
+
typedef FwdToBwd<OptFixPSETaskFwd> OptFixPSETaskBwd;
|
|
422
|
+
|
|
423
|
+
/// Forward mandatory flexible task view
|
|
424
|
+
typedef ManFlexTask ManFlexTaskFwd;
|
|
425
|
+
|
|
426
|
+
/// Backward (dual) mandatory flexible task view
|
|
427
|
+
typedef FwdToBwd<ManFlexTaskFwd> ManFlexTaskBwd;
|
|
428
|
+
|
|
429
|
+
/// Forward optional flexible task view
|
|
430
|
+
typedef OptFlexTask OptFlexTaskFwd;
|
|
431
|
+
|
|
432
|
+
/// Backward (dual) optional flexible task view
|
|
433
|
+
typedef FwdToBwd<OptFlexTaskFwd> OptFlexTaskBwd;
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* \brief Print backward task view in format est:p:lct
|
|
438
|
+
* \relates ManFixPTaskBwd
|
|
439
|
+
*/
|
|
440
|
+
template<class Char, class Traits>
|
|
441
|
+
std::basic_ostream<Char,Traits>&
|
|
442
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const ManFixPTaskBwd& t);
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* \brief Print backward task view in format est:p:lct
|
|
446
|
+
* \relates ManFixPSETaskBwd
|
|
447
|
+
*/
|
|
448
|
+
template<class Char, class Traits>
|
|
449
|
+
std::basic_ostream<Char,Traits>&
|
|
450
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const ManFixPSETaskBwd& t);
|
|
451
|
+
|
|
452
|
+
/**
|
|
453
|
+
* \brief Print optional backward task view in format est:p:lct:m
|
|
454
|
+
* \relates OptFixPTaskBwd
|
|
455
|
+
*/
|
|
456
|
+
template<class Char, class Traits>
|
|
457
|
+
std::basic_ostream<Char,Traits>&
|
|
458
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const OptFixPTaskBwd& t);
|
|
459
|
+
|
|
460
|
+
/**
|
|
461
|
+
* \brief Print optional backward task view in format est:p:lct:m
|
|
462
|
+
* \relates OptFixPSETaskBwd
|
|
463
|
+
*/
|
|
464
|
+
template<class Char, class Traits>
|
|
465
|
+
std::basic_ostream<Char,Traits>&
|
|
466
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const OptFixPSETaskBwd& t);
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* \brief Print backward task view in format est:lst:pmin:pmax:ect:lct
|
|
470
|
+
* \relates ManFlexTaskBwd
|
|
471
|
+
*/
|
|
472
|
+
template<class Char, class Traits>
|
|
473
|
+
std::basic_ostream<Char,Traits>&
|
|
474
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const ManFlexTaskBwd& t);
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* \brief Print optional backward task view in format
|
|
478
|
+
* est:lst:pmin:pmax:ect:lct:m
|
|
479
|
+
*
|
|
480
|
+
* \relates OptFlexTaskBwd
|
|
481
|
+
*/
|
|
482
|
+
template<class Char, class Traits>
|
|
483
|
+
std::basic_ostream<Char,Traits>&
|
|
484
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const OptFlexTaskBwd& t);
|
|
485
|
+
|
|
486
|
+
}}}
|
|
487
|
+
|
|
488
|
+
#include <gecode/int/unary/task-view.hpp>
|
|
489
|
+
|
|
490
|
+
namespace Gecode { namespace Int {
|
|
491
|
+
|
|
492
|
+
/// Task view traits for forward task views
|
|
493
|
+
template<>
|
|
494
|
+
class TaskViewTraits<Unary::ManFixPTaskFwd> {
|
|
495
|
+
public:
|
|
496
|
+
/// The task type
|
|
497
|
+
typedef Unary::ManFixPTask Task;
|
|
498
|
+
};
|
|
499
|
+
|
|
500
|
+
/// Task view traits for backward task views
|
|
501
|
+
template<>
|
|
502
|
+
class TaskViewTraits<Unary::ManFixPTaskBwd> {
|
|
503
|
+
public:
|
|
504
|
+
/// The task type
|
|
505
|
+
typedef Unary::ManFixPTask Task;
|
|
506
|
+
};
|
|
507
|
+
|
|
508
|
+
/// Task view traits for forward task views
|
|
509
|
+
template<>
|
|
510
|
+
class TaskViewTraits<Unary::ManFixPSETaskFwd> {
|
|
511
|
+
public:
|
|
512
|
+
/// The task type
|
|
513
|
+
typedef Unary::ManFixPSETask Task;
|
|
514
|
+
};
|
|
515
|
+
|
|
516
|
+
/// Task view traits for backward task views
|
|
517
|
+
template<>
|
|
518
|
+
class TaskViewTraits<Unary::ManFixPSETaskBwd> {
|
|
519
|
+
public:
|
|
520
|
+
/// The task type
|
|
521
|
+
typedef Unary::ManFixPSETask Task;
|
|
522
|
+
};
|
|
523
|
+
|
|
524
|
+
/// Task view traits for forward optional task views
|
|
525
|
+
template<>
|
|
526
|
+
class TaskViewTraits<Unary::OptFixPTaskFwd> {
|
|
527
|
+
public:
|
|
528
|
+
/// The task type
|
|
529
|
+
typedef Unary::OptFixPTask Task;
|
|
530
|
+
};
|
|
531
|
+
|
|
532
|
+
/// Task view traits for backward task views
|
|
533
|
+
template<>
|
|
534
|
+
class TaskViewTraits<Unary::OptFixPTaskBwd> {
|
|
535
|
+
public:
|
|
536
|
+
/// The task type
|
|
537
|
+
typedef Unary::OptFixPTask Task;
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
/// Task view traits for forward optional task views
|
|
541
|
+
template<>
|
|
542
|
+
class TaskViewTraits<Unary::OptFixPSETaskFwd> {
|
|
543
|
+
public:
|
|
544
|
+
/// The task type
|
|
545
|
+
typedef Unary::OptFixPSETask Task;
|
|
546
|
+
};
|
|
547
|
+
|
|
548
|
+
/// Task view traits for backward task views
|
|
549
|
+
template<>
|
|
550
|
+
class TaskViewTraits<Unary::OptFixPSETaskBwd> {
|
|
551
|
+
public:
|
|
552
|
+
/// The task type
|
|
553
|
+
typedef Unary::OptFixPSETask Task;
|
|
554
|
+
};
|
|
555
|
+
|
|
556
|
+
/// Task view traits for forward task views
|
|
557
|
+
template<>
|
|
558
|
+
class TaskViewTraits<Unary::ManFlexTaskFwd> {
|
|
559
|
+
public:
|
|
560
|
+
/// The task type
|
|
561
|
+
typedef Unary::ManFlexTask Task;
|
|
562
|
+
};
|
|
563
|
+
|
|
564
|
+
/// Task view traits for backward task views
|
|
565
|
+
template<>
|
|
566
|
+
class TaskViewTraits<Unary::ManFlexTaskBwd> {
|
|
567
|
+
public:
|
|
568
|
+
/// The task type
|
|
569
|
+
typedef Unary::ManFlexTask Task;
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
/// Task view traits for forward optional task views
|
|
573
|
+
template<>
|
|
574
|
+
class TaskViewTraits<Unary::OptFlexTaskFwd> {
|
|
575
|
+
public:
|
|
576
|
+
/// The task type
|
|
577
|
+
typedef Unary::OptFlexTask Task;
|
|
578
|
+
};
|
|
579
|
+
|
|
580
|
+
/// Task view traits for backward task views
|
|
581
|
+
template<>
|
|
582
|
+
class TaskViewTraits<Unary::OptFlexTaskBwd> {
|
|
583
|
+
public:
|
|
584
|
+
/// The task type
|
|
585
|
+
typedef Unary::OptFlexTask Task;
|
|
586
|
+
};
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
/// Task traits for mandatory fixed tasks
|
|
590
|
+
template<>
|
|
591
|
+
class TaskTraits<Unary::ManFixPTask> {
|
|
592
|
+
public:
|
|
593
|
+
/// The forward task view type
|
|
594
|
+
typedef Unary::ManFixPTaskFwd TaskViewFwd;
|
|
595
|
+
/// The backward task view type
|
|
596
|
+
typedef Unary::ManFixPTaskBwd TaskViewBwd;
|
|
597
|
+
};
|
|
598
|
+
|
|
599
|
+
/// Task traits for mandatory fixed tasks
|
|
600
|
+
template<>
|
|
601
|
+
class TaskTraits<Unary::ManFixPSETask> {
|
|
602
|
+
public:
|
|
603
|
+
/// The forward task view type
|
|
604
|
+
typedef Unary::ManFixPSETaskFwd TaskViewFwd;
|
|
605
|
+
/// The backward task view type
|
|
606
|
+
typedef Unary::ManFixPSETaskBwd TaskViewBwd;
|
|
607
|
+
};
|
|
608
|
+
|
|
609
|
+
/// Task traits for optional fixed tasks
|
|
610
|
+
template<>
|
|
611
|
+
class TaskTraits<Unary::OptFixPTask> {
|
|
612
|
+
public:
|
|
613
|
+
/// The forward task view type
|
|
614
|
+
typedef Unary::OptFixPTaskFwd TaskViewFwd;
|
|
615
|
+
/// The backward task view type
|
|
616
|
+
typedef Unary::OptFixPTaskBwd TaskViewBwd;
|
|
617
|
+
/// The corresponding mandatory task
|
|
618
|
+
typedef Unary::ManFixPTask ManTask;
|
|
619
|
+
};
|
|
620
|
+
|
|
621
|
+
/// Task traits for optional fixed tasks
|
|
622
|
+
template<>
|
|
623
|
+
class TaskTraits<Unary::OptFixPSETask> {
|
|
624
|
+
public:
|
|
625
|
+
/// The forward task view type
|
|
626
|
+
typedef Unary::OptFixPSETaskFwd TaskViewFwd;
|
|
627
|
+
/// The backward task view type
|
|
628
|
+
typedef Unary::OptFixPSETaskBwd TaskViewBwd;
|
|
629
|
+
/// The corresponding mandatory task
|
|
630
|
+
typedef Unary::ManFixPTask ManTask;
|
|
631
|
+
};
|
|
632
|
+
|
|
633
|
+
/// Task traits for mandatory flexible tasks
|
|
634
|
+
template<>
|
|
635
|
+
class TaskTraits<Unary::ManFlexTask> {
|
|
636
|
+
public:
|
|
637
|
+
/// The forward task view type
|
|
638
|
+
typedef Unary::ManFlexTaskFwd TaskViewFwd;
|
|
639
|
+
/// The backward task view type
|
|
640
|
+
typedef Unary::ManFlexTaskBwd TaskViewBwd;
|
|
641
|
+
};
|
|
642
|
+
|
|
643
|
+
/// Task traits for optional flexible tasks
|
|
644
|
+
template<>
|
|
645
|
+
class TaskTraits<Unary::OptFlexTask> {
|
|
646
|
+
public:
|
|
647
|
+
/// The forward task view type
|
|
648
|
+
typedef Unary::OptFlexTaskFwd TaskViewFwd;
|
|
649
|
+
/// The backward task view type
|
|
650
|
+
typedef Unary::OptFlexTaskBwd TaskViewBwd;
|
|
651
|
+
/// The corresponding mandatory task
|
|
652
|
+
typedef Unary::ManFlexTask ManTask;
|
|
653
|
+
};
|
|
654
|
+
|
|
655
|
+
}}
|
|
656
|
+
|
|
657
|
+
namespace Gecode { namespace Int { namespace Unary {
|
|
658
|
+
|
|
659
|
+
/// Node for an omega tree
|
|
660
|
+
class OmegaNode {
|
|
661
|
+
public:
|
|
662
|
+
/// Processing time for subtree
|
|
663
|
+
int p;
|
|
664
|
+
/// Earliest completion time for subtree
|
|
665
|
+
int ect;
|
|
666
|
+
/// Initialize node from left child \a l and right child \a r
|
|
667
|
+
void init(const OmegaNode& l, const OmegaNode& r);
|
|
668
|
+
/// Update node from left child \a l and right child \a r
|
|
669
|
+
void update(const OmegaNode& l, const OmegaNode& r);
|
|
670
|
+
};
|
|
671
|
+
|
|
672
|
+
/// Omega trees for computing ect of task sets
|
|
673
|
+
template<class TaskView>
|
|
674
|
+
class OmegaTree : public TaskTree<TaskView,OmegaNode> {
|
|
675
|
+
protected:
|
|
676
|
+
using TaskTree<TaskView,OmegaNode>::tasks;
|
|
677
|
+
using TaskTree<TaskView,OmegaNode>::leaf;
|
|
678
|
+
using TaskTree<TaskView,OmegaNode>::root;
|
|
679
|
+
using TaskTree<TaskView,OmegaNode>::init;
|
|
680
|
+
using TaskTree<TaskView,OmegaNode>::update;
|
|
681
|
+
public:
|
|
682
|
+
/// Initialize tree for tasks \a t
|
|
683
|
+
OmegaTree(Region& r, const TaskViewArray<TaskView>& t);
|
|
684
|
+
/// Insert task with index \a i
|
|
685
|
+
void insert(int i);
|
|
686
|
+
/// Remove task with index \a i
|
|
687
|
+
void remove(int i);
|
|
688
|
+
/// Return earliest completion time of all tasks
|
|
689
|
+
int ect(void) const;
|
|
690
|
+
/// Return earliest completion time of all tasks but \a i
|
|
691
|
+
int ect(int i) const;
|
|
692
|
+
};
|
|
693
|
+
|
|
694
|
+
/// Node for an omega lambda tree
|
|
695
|
+
class OmegaLambdaNode : public OmegaNode {
|
|
696
|
+
public:
|
|
697
|
+
/// Undefined task
|
|
698
|
+
static const int undef = -1;
|
|
699
|
+
/// Processing times for subtree
|
|
700
|
+
int lp;
|
|
701
|
+
/// Earliest completion times for subtree
|
|
702
|
+
int lect;
|
|
703
|
+
/// Node which is responsible for lect
|
|
704
|
+
int resEct;
|
|
705
|
+
/// Node which is responsible for lp
|
|
706
|
+
int resLp;
|
|
707
|
+
/// Initialize node from left child \a l and right child \a r
|
|
708
|
+
void init(const OmegaLambdaNode& l, const OmegaLambdaNode& r);
|
|
709
|
+
/// Update node from left child \a l and right child \a r
|
|
710
|
+
void update(const OmegaLambdaNode& l, const OmegaLambdaNode& r);
|
|
711
|
+
};
|
|
712
|
+
|
|
713
|
+
/// Omega-lambda trees for computing ect of task sets
|
|
714
|
+
template<class TaskView>
|
|
715
|
+
class OmegaLambdaTree : public TaskTree<TaskView,OmegaLambdaNode> {
|
|
716
|
+
protected:
|
|
717
|
+
using TaskTree<TaskView,OmegaLambdaNode>::tasks;
|
|
718
|
+
using TaskTree<TaskView,OmegaLambdaNode>::leaf;
|
|
719
|
+
using TaskTree<TaskView,OmegaLambdaNode>::root;
|
|
720
|
+
using TaskTree<TaskView,OmegaLambdaNode>::init;
|
|
721
|
+
using TaskTree<TaskView,OmegaLambdaNode>::update;
|
|
722
|
+
public:
|
|
723
|
+
/// Initialize tree for tasks \a t with all tasks included, if \a inc is true
|
|
724
|
+
OmegaLambdaTree(Region& r, const TaskViewArray<TaskView>& t,
|
|
725
|
+
bool inc=true);
|
|
726
|
+
/// Shift task with index \a i from omega to lambda
|
|
727
|
+
void shift(int i);
|
|
728
|
+
/// Insert task with index \a i to omega
|
|
729
|
+
void oinsert(int i);
|
|
730
|
+
/// Insert task with index \a i to lambda
|
|
731
|
+
void linsert(int i);
|
|
732
|
+
/// Remove task with index \a i from lambda
|
|
733
|
+
void lremove(int i);
|
|
734
|
+
/// Whether has responsible task
|
|
735
|
+
bool lempty(void) const;
|
|
736
|
+
/// Return responsible task
|
|
737
|
+
int responsible(void) const;
|
|
738
|
+
/// Return earliest completion time of all tasks
|
|
739
|
+
int ect(void) const;
|
|
740
|
+
/// Return earliest completion time of all tasks excluding lambda tasks
|
|
741
|
+
int lect(void) const;
|
|
742
|
+
};
|
|
743
|
+
|
|
744
|
+
}}}
|
|
745
|
+
|
|
746
|
+
#include <gecode/int/unary/tree.hpp>
|
|
747
|
+
|
|
748
|
+
namespace Gecode { namespace Int { namespace Unary {
|
|
749
|
+
|
|
750
|
+
/// Check mandatory tasks \a t for overload
|
|
751
|
+
template<class ManTask>
|
|
752
|
+
ExecStatus overload(Space& home, TaskArray<ManTask>& t);
|
|
753
|
+
/// Check optional tasks \a t for overload
|
|
754
|
+
template<class OptTask>
|
|
755
|
+
ExecStatus overload(Space& home, Propagator& p, TaskArray<OptTask>& t);
|
|
756
|
+
|
|
757
|
+
/// Check tasks \a t for subsumption
|
|
758
|
+
template<class Task>
|
|
759
|
+
ExecStatus subsumed(Space& home, Propagator& p, TaskArray<Task>& t);
|
|
760
|
+
|
|
761
|
+
/// Propagate detectable precedences
|
|
762
|
+
template<class ManTask>
|
|
763
|
+
ExecStatus detectable(Space& home, TaskArray<ManTask>& t);
|
|
764
|
+
/// Propagate detectable precedences
|
|
765
|
+
template<class OptTask>
|
|
766
|
+
ExecStatus detectable(Space& home, Propagator& p, TaskArray<OptTask>& t);
|
|
767
|
+
|
|
768
|
+
/// Propagate not-first and not-last
|
|
769
|
+
template<class ManTask>
|
|
770
|
+
ExecStatus notfirstnotlast(Space& home, TaskArray<ManTask>& t);
|
|
771
|
+
/// Propagate not-first and not-last
|
|
772
|
+
template<class OptTask>
|
|
773
|
+
ExecStatus notfirstnotlast(Space& home, Propagator& p, TaskArray<OptTask>& t);
|
|
774
|
+
|
|
775
|
+
/// Propagate by edge finding
|
|
776
|
+
template<class Task>
|
|
777
|
+
ExecStatus edgefinding(Space& home, TaskArray<Task>& t);
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
/**
|
|
781
|
+
* \brief %Scheduling propagator for unary resource with mandatory tasks
|
|
782
|
+
*
|
|
783
|
+
* Requires \code #include <gecode/int/unary.hh> \endcode
|
|
784
|
+
* \ingroup FuncIntProp
|
|
785
|
+
*/
|
|
786
|
+
template<class ManTask>
|
|
787
|
+
class ManProp : public TaskProp<ManTask,Int::PC_INT_BND> {
|
|
788
|
+
protected:
|
|
789
|
+
using TaskProp<ManTask,Int::PC_INT_BND>::t;
|
|
790
|
+
/// Constructor for creation
|
|
791
|
+
ManProp(Home home, TaskArray<ManTask>& t);
|
|
792
|
+
/// Constructor for cloning \a p
|
|
793
|
+
ManProp(Space& home, bool shared, ManProp& p);
|
|
794
|
+
public:
|
|
795
|
+
/// Perform copying during cloning
|
|
796
|
+
virtual Actor* copy(Space& home, bool share);
|
|
797
|
+
/// Perform propagation
|
|
798
|
+
virtual ExecStatus propagate(Space& home, const ModEventDelta& med);
|
|
799
|
+
/// Post propagator that schedules tasks on unary resource
|
|
800
|
+
static ExecStatus post(Home home, TaskArray<ManTask>& t);
|
|
801
|
+
};
|
|
802
|
+
|
|
803
|
+
/**
|
|
804
|
+
* \brief %Scheduling propagator for unary resource with optional tasks
|
|
805
|
+
*
|
|
806
|
+
* Requires \code #include <gecode/int/unary.hh> \endcode
|
|
807
|
+
* \ingroup FuncIntProp
|
|
808
|
+
*/
|
|
809
|
+
template<class OptTask>
|
|
810
|
+
class OptProp : public TaskProp<OptTask,Int::PC_INT_BND> {
|
|
811
|
+
protected:
|
|
812
|
+
using TaskProp<OptTask,Int::PC_INT_BND>::t;
|
|
813
|
+
/// Constructor for creation
|
|
814
|
+
OptProp(Home home, TaskArray<OptTask>& t);
|
|
815
|
+
/// Constructor for cloning \a p
|
|
816
|
+
OptProp(Space& home, bool shared, OptProp& p);
|
|
817
|
+
public:
|
|
818
|
+
/// Perform copying during cloning
|
|
819
|
+
virtual Actor* copy(Space& home, bool share);
|
|
820
|
+
/// Perform propagation
|
|
821
|
+
virtual ExecStatus propagate(Space& home, const ModEventDelta& med);
|
|
822
|
+
/// Post propagator that schedules tasks on unary resource
|
|
823
|
+
static ExecStatus post(Home home, TaskArray<OptTask>& t);
|
|
824
|
+
};
|
|
825
|
+
|
|
826
|
+
}}}
|
|
827
|
+
|
|
828
|
+
#include <gecode/int/unary/overload.hpp>
|
|
829
|
+
#include <gecode/int/unary/subsumption.hpp>
|
|
830
|
+
#include <gecode/int/unary/detectable.hpp>
|
|
831
|
+
#include <gecode/int/unary/not-first-not-last.hpp>
|
|
832
|
+
#include <gecode/int/unary/edge-finding.hpp>
|
|
833
|
+
|
|
834
|
+
#include <gecode/int/unary/man-prop.hpp>
|
|
835
|
+
#include <gecode/int/unary/opt-prop.hpp>
|
|
836
|
+
|
|
837
|
+
#endif
|
|
838
|
+
|
|
839
|
+
// STATISTICS: int-prop
|