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,1142 @@
|
|
|
1
|
+
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Main authors:
|
|
4
|
+
* Guido Tack <tack@gecode.org>
|
|
5
|
+
*
|
|
6
|
+
* Contributing authors:
|
|
7
|
+
* Christian Schulte <schulte@gecode.org>
|
|
8
|
+
*
|
|
9
|
+
* Copyright:
|
|
10
|
+
* Guido Tack, 2004
|
|
11
|
+
* Christian Schulte, 2004
|
|
12
|
+
*
|
|
13
|
+
* Last modified:
|
|
14
|
+
* $Date: 2011-08-20 00:47:28 +1000 (Sat, 20 Aug 2011) $ by $Author: tack $
|
|
15
|
+
* $Revision: 12318 $
|
|
16
|
+
*
|
|
17
|
+
* This file is part of Gecode, the generic constraint
|
|
18
|
+
* development environment:
|
|
19
|
+
* http://www.gecode.org
|
|
20
|
+
*
|
|
21
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
|
22
|
+
* a copy of this software and associated documentation files (the
|
|
23
|
+
* "Software"), to deal in the Software without restriction, including
|
|
24
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
|
25
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
|
26
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
|
27
|
+
* the following conditions:
|
|
28
|
+
*
|
|
29
|
+
* The above copyright notice and this permission notice shall be
|
|
30
|
+
* included in all copies or substantial portions of the Software.
|
|
31
|
+
*
|
|
32
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
33
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
34
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
35
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
36
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
37
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
38
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
39
|
+
*
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
#include <iostream>
|
|
43
|
+
|
|
44
|
+
namespace Gecode { namespace Set {
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* \defgroup TaskActorSetView Set views
|
|
48
|
+
*
|
|
49
|
+
* Set propagators and branchings compute with set views.
|
|
50
|
+
* Set views provide views on set variable implementations,
|
|
51
|
+
* set constants, and integer variable implementations.
|
|
52
|
+
* \ingroup TaskActorSet
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* \brief %Set view for set variables
|
|
57
|
+
* \ingroup TaskActorSetView
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
class SetView : public VarImpView<SetVar> {
|
|
61
|
+
protected:
|
|
62
|
+
using VarImpView<SetVar>::x;
|
|
63
|
+
public:
|
|
64
|
+
/// \name Constructors and initialization
|
|
65
|
+
//@{
|
|
66
|
+
/// Default constructor
|
|
67
|
+
SetView(void);
|
|
68
|
+
/// Initialize from set variable \a y
|
|
69
|
+
SetView(const SetVar& y);
|
|
70
|
+
/// Initialize from set variable implementation \a y
|
|
71
|
+
SetView(SetVarImp* y);
|
|
72
|
+
//@}
|
|
73
|
+
|
|
74
|
+
/// \name Value access
|
|
75
|
+
//@{
|
|
76
|
+
|
|
77
|
+
/// Return minimum cardinality
|
|
78
|
+
unsigned int cardMin(void) const;
|
|
79
|
+
/// Return maximum cardinality
|
|
80
|
+
unsigned int cardMax(void) const;
|
|
81
|
+
/// Return minimum of the least upper bound
|
|
82
|
+
int lubMin(void) const;
|
|
83
|
+
/// Return maximum of the least upper bound
|
|
84
|
+
int lubMax(void) const;
|
|
85
|
+
/// Return n-th smallest element of the least upper bound
|
|
86
|
+
int lubMinN(unsigned int n) const;
|
|
87
|
+
/// Return minimum of the greatest lower bound
|
|
88
|
+
int glbMin(void) const;
|
|
89
|
+
/// Return maximum of the greatest lower bound
|
|
90
|
+
int glbMax(void) const;
|
|
91
|
+
|
|
92
|
+
/// Return the number of elements in the greatest lower bound
|
|
93
|
+
unsigned int glbSize(void) const;
|
|
94
|
+
/// Return the number of elements in the least upper bound
|
|
95
|
+
unsigned int lubSize(void) const;
|
|
96
|
+
/// Return the number of unknown elements
|
|
97
|
+
unsigned int unknownSize(void) const;
|
|
98
|
+
//@}
|
|
99
|
+
|
|
100
|
+
/// \name Domain tests
|
|
101
|
+
//@{
|
|
102
|
+
/// Test whether \a i is in the greatest lower bound
|
|
103
|
+
bool contains(int i) const;
|
|
104
|
+
/// Test whether \a i is not in the least upper bound
|
|
105
|
+
bool notContains(int i) const;
|
|
106
|
+
//@}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
/// \name Domain update by value
|
|
110
|
+
//@{
|
|
111
|
+
/// Restrict cardinality to be greater than or equal to \a m
|
|
112
|
+
ModEvent cardMin(Space& home, unsigned int m);
|
|
113
|
+
/// Restrict cardinality to be less than or equal to \a m
|
|
114
|
+
ModEvent cardMax(Space& home, unsigned int m);
|
|
115
|
+
/**
|
|
116
|
+
* \brief Update greatest lower bound to include all elements
|
|
117
|
+
* between and including \a i and \a j
|
|
118
|
+
*/
|
|
119
|
+
ModEvent include(Space& home,int i,int j);
|
|
120
|
+
/**
|
|
121
|
+
* \brief Restrict least upper bound to not contain all elements
|
|
122
|
+
* between and including \a i and \a j
|
|
123
|
+
*/
|
|
124
|
+
ModEvent exclude(Space& home,int i,int j);
|
|
125
|
+
/// Update greatest lower bound to contain \a i
|
|
126
|
+
ModEvent include(Space& home,int i);
|
|
127
|
+
/// Restrict least upper bound to not contain \a i
|
|
128
|
+
ModEvent exclude(Space& home,int i);
|
|
129
|
+
/**
|
|
130
|
+
* \brief Update least upper bound to contain at most all elements
|
|
131
|
+
* between and including \a i and \a j
|
|
132
|
+
*/
|
|
133
|
+
ModEvent intersect(Space& home,int i,int j);
|
|
134
|
+
/// Update least upper bound to contain at most the element \a i
|
|
135
|
+
ModEvent intersect(Space& home,int i);
|
|
136
|
+
//@}
|
|
137
|
+
|
|
138
|
+
/// \name Domain update by range iterator
|
|
139
|
+
//@{
|
|
140
|
+
|
|
141
|
+
/// Remove range sequence described by \a i from least upper bound
|
|
142
|
+
template<class I> ModEvent excludeI(Space& home, I& i);
|
|
143
|
+
/// Include range sequence described by \a i in greatest lower bound
|
|
144
|
+
template<class I> ModEvent includeI(Space& home, I& i);
|
|
145
|
+
/// Intersect least upper bound with range sequence described by \a i
|
|
146
|
+
template<class I> ModEvent intersectI(Space& home, I& iter);
|
|
147
|
+
//@}
|
|
148
|
+
|
|
149
|
+
/// \name Delta information for advisors
|
|
150
|
+
//@{
|
|
151
|
+
/// Return modification event
|
|
152
|
+
static ModEvent modevent(const Delta& d);
|
|
153
|
+
/// Return minimum value just pruned from glb
|
|
154
|
+
int glbMin(const Delta& d) const;
|
|
155
|
+
/// Return maximum value just pruned from glb
|
|
156
|
+
int glbMax(const Delta& d) const;
|
|
157
|
+
/// Test whether arbitrary values got pruned from glb
|
|
158
|
+
bool glbAny(const Delta& d) const;
|
|
159
|
+
/// Return minimum value just pruned from lub
|
|
160
|
+
int lubMin(const Delta& d) const;
|
|
161
|
+
/// Return maximum value just pruned from lub
|
|
162
|
+
int lubMax(const Delta& d) const;
|
|
163
|
+
/// Test whether arbitrary values got pruned from lub
|
|
164
|
+
bool lubAny(const Delta& d) const;
|
|
165
|
+
//@}
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* \brief Print set variable view
|
|
170
|
+
* \relates Gecode::Set::SetView
|
|
171
|
+
*/
|
|
172
|
+
template<class Char, class Traits>
|
|
173
|
+
std::basic_ostream<Char,Traits>&
|
|
174
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const SetView& x);
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
// Forward declarations for friends
|
|
179
|
+
class ConstSetView;
|
|
180
|
+
bool same(const ConstSetView&, const ConstSetView&);
|
|
181
|
+
bool before(const ConstSetView&, const ConstSetView&);
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* \brief Constant view
|
|
185
|
+
*
|
|
186
|
+
* A constant set view \f$x\f$ for a set \f$s\f$ provides operations such
|
|
187
|
+
* that \f$x\f$ behaves like \f$s\f$.
|
|
188
|
+
* \ingroup TaskActorSetView
|
|
189
|
+
*/
|
|
190
|
+
class ConstSetView : public ConstView<SetView> {
|
|
191
|
+
friend class LubRanges<ConstSetView>;
|
|
192
|
+
friend class GlbRanges<ConstSetView>;
|
|
193
|
+
friend bool Gecode::Set::same(const Gecode::Set::ConstSetView&,
|
|
194
|
+
const Gecode::Set::ConstSetView&);
|
|
195
|
+
friend bool Gecode::Set::before(const Gecode::Set::ConstSetView&,
|
|
196
|
+
const Gecode::Set::ConstSetView&);
|
|
197
|
+
private:
|
|
198
|
+
int *ranges;
|
|
199
|
+
int size;
|
|
200
|
+
unsigned int domSize;
|
|
201
|
+
public:
|
|
202
|
+
/// \name Constructors and initialization
|
|
203
|
+
//@{
|
|
204
|
+
/// Default constructor
|
|
205
|
+
ConstSetView(void);
|
|
206
|
+
/// Construct with \a s as the domain
|
|
207
|
+
ConstSetView(Space& home, const IntSet& s);
|
|
208
|
+
//@}
|
|
209
|
+
|
|
210
|
+
/// \name Value access
|
|
211
|
+
//@{
|
|
212
|
+
/// Return minimum cardinality
|
|
213
|
+
unsigned int cardMin(void) const;
|
|
214
|
+
/// Return maximum cardinality
|
|
215
|
+
unsigned int cardMax(void) const;
|
|
216
|
+
/// Return minimum of the least upper bound
|
|
217
|
+
int lubMin(void) const;
|
|
218
|
+
/// Return maximum of the least upper bound
|
|
219
|
+
int lubMax(void) const;
|
|
220
|
+
/// Return n-th smallest element of the least upper bound
|
|
221
|
+
int lubMinN(unsigned int n) const;
|
|
222
|
+
/// Return minimum of the greatest lower bound
|
|
223
|
+
int glbMin(void) const;
|
|
224
|
+
/// Return maximum of the greatest lower bound
|
|
225
|
+
int glbMax(void) const;
|
|
226
|
+
|
|
227
|
+
/// Return the number of elements in the greatest lower bound
|
|
228
|
+
unsigned int glbSize(void) const;
|
|
229
|
+
/// Return the number of elements in the least upper bound
|
|
230
|
+
unsigned int lubSize(void) const;
|
|
231
|
+
/// Return the number of unknown elements
|
|
232
|
+
unsigned int unknownSize(void) const;
|
|
233
|
+
//@}
|
|
234
|
+
|
|
235
|
+
/// \name Domain tests
|
|
236
|
+
//@{
|
|
237
|
+
/// Test whether \a i is in the greatest lower bound
|
|
238
|
+
bool contains(int i) const;
|
|
239
|
+
/// Test whether \a i is not in the least upper bound
|
|
240
|
+
bool notContains(int i) const;
|
|
241
|
+
//@}
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
/// \name Domain update by value
|
|
245
|
+
//@{
|
|
246
|
+
/// Restrict cardinality to be greater than or equal to \a m
|
|
247
|
+
ModEvent cardMin(Space& home, unsigned int m);
|
|
248
|
+
/// Restrict cardinality to be less than or equal to \a m
|
|
249
|
+
ModEvent cardMax(Space& home, unsigned int m);
|
|
250
|
+
/**
|
|
251
|
+
* \brief Update greatest lower bound to include all elements
|
|
252
|
+
* between and including \a i and \a j
|
|
253
|
+
*/
|
|
254
|
+
ModEvent include(Space& home,int i,int j);
|
|
255
|
+
/**
|
|
256
|
+
* \brief Restrict least upper bound to not contain all elements
|
|
257
|
+
* between and including \a i and \a j
|
|
258
|
+
*/
|
|
259
|
+
ModEvent exclude(Space& home,int i,int j);
|
|
260
|
+
/// Update greatest lower bound to contain \a i
|
|
261
|
+
ModEvent include(Space& home,int i);
|
|
262
|
+
/// Restrict least upper bound to not contain \a i
|
|
263
|
+
ModEvent exclude(Space& home,int i);
|
|
264
|
+
/**
|
|
265
|
+
* \brief Update least upper bound to contain at most all elements
|
|
266
|
+
* between and including \a i and \a j
|
|
267
|
+
*/
|
|
268
|
+
ModEvent intersect(Space& home,int i,int j);
|
|
269
|
+
/// Update least upper bound to contain at most the element \a i
|
|
270
|
+
ModEvent intersect(Space& home,int i);
|
|
271
|
+
//@}
|
|
272
|
+
|
|
273
|
+
/// \name Domain update by range iterator
|
|
274
|
+
//@{
|
|
275
|
+
|
|
276
|
+
/// Remove range sequence described by \a i from least upper bound
|
|
277
|
+
template<class I> ModEvent excludeI(Space& home, I& i);
|
|
278
|
+
/// Include range sequence described by \a i in greatest lower bound
|
|
279
|
+
template<class I> ModEvent includeI(Space& home, I& i);
|
|
280
|
+
/// Intersect least upper bound with range sequence described by \a i
|
|
281
|
+
template<class I> ModEvent intersectI(Space& home, I& iter);
|
|
282
|
+
//@}
|
|
283
|
+
|
|
284
|
+
/// \name Cloning
|
|
285
|
+
//@{
|
|
286
|
+
/// Update this view to be a clone of view \a y
|
|
287
|
+
void update(Space& home, bool share, ConstSetView& y);
|
|
288
|
+
//@}
|
|
289
|
+
|
|
290
|
+
/// \name Delta information for advisors
|
|
291
|
+
//@{
|
|
292
|
+
/// Return minimum value just pruned from glb
|
|
293
|
+
int glbMin(const Delta& d) const;
|
|
294
|
+
/// Return maximum value just pruned from glb
|
|
295
|
+
int glbMax(const Delta& d) const;
|
|
296
|
+
/// Test whether arbitrary values got pruned from glb
|
|
297
|
+
bool glbAny(const Delta& d) const;
|
|
298
|
+
/// Return minimum value just pruned from lub
|
|
299
|
+
int lubMin(const Delta& d) const;
|
|
300
|
+
/// Return maximum value just pruned from lub
|
|
301
|
+
int lubMax(const Delta& d) const;
|
|
302
|
+
/// Test whether arbitrary values got pruned from lub
|
|
303
|
+
bool lubAny(const Delta& d) const;
|
|
304
|
+
//@}
|
|
305
|
+
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* \brief Print constant set view
|
|
310
|
+
* \relates Gecode::Set::ConstSetView
|
|
311
|
+
*/
|
|
312
|
+
template<class Char, class Traits>
|
|
313
|
+
std::basic_ostream<Char,Traits>&
|
|
314
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const ConstSetView& x);
|
|
315
|
+
|
|
316
|
+
/** \name View comparison
|
|
317
|
+
* \relates Gecode::Set::ConstSetView
|
|
318
|
+
*/
|
|
319
|
+
//@{
|
|
320
|
+
/// Test whether views \a x and \a y are the same
|
|
321
|
+
bool same(const ConstSetView& x, const ConstSetView& y);
|
|
322
|
+
/// Test whether view \a x comes before \a y (arbitrary order)
|
|
323
|
+
bool before(const ConstSetView& x, const ConstSetView& y);
|
|
324
|
+
//@}
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* \brief Constant view for the empty set
|
|
329
|
+
*
|
|
330
|
+
* A constant set view \f$x\f$ for the empty set provides operations such
|
|
331
|
+
* that \f$x\f$ behaves like the empty set.
|
|
332
|
+
* \ingroup TaskActorSetView
|
|
333
|
+
*/
|
|
334
|
+
|
|
335
|
+
class EmptyView : public ConstView<SetView> {
|
|
336
|
+
public:
|
|
337
|
+
/// \name Constructors and initialization
|
|
338
|
+
//@{
|
|
339
|
+
/// Default constructor
|
|
340
|
+
EmptyView(void);
|
|
341
|
+
//@}
|
|
342
|
+
|
|
343
|
+
/// \name Value access
|
|
344
|
+
//@{
|
|
345
|
+
/// Return minimum cardinality
|
|
346
|
+
unsigned int cardMin(void) const;
|
|
347
|
+
/// Return maximum cardinality
|
|
348
|
+
unsigned int cardMax(void) const;
|
|
349
|
+
/// Return minimum of the least upper bound
|
|
350
|
+
int lubMin(void) const;
|
|
351
|
+
/// Return maximum of the least upper bound
|
|
352
|
+
int lubMax(void) const;
|
|
353
|
+
/// Return n-th smallest element of the least upper bound
|
|
354
|
+
int lubMinN(unsigned int n) const;
|
|
355
|
+
/// Return minimum of the greatest lower bound
|
|
356
|
+
int glbMin(void) const;
|
|
357
|
+
/// Return maximum of the greatest lower bound
|
|
358
|
+
int glbMax(void) const;
|
|
359
|
+
|
|
360
|
+
/// Return the number of elements in the greatest lower bound
|
|
361
|
+
unsigned int glbSize(void) const;
|
|
362
|
+
/// Return the number of elements in the least upper bound
|
|
363
|
+
unsigned int lubSize(void) const;
|
|
364
|
+
/// Return the number of unknown elements
|
|
365
|
+
unsigned int unknownSize(void) const;
|
|
366
|
+
//@}
|
|
367
|
+
|
|
368
|
+
/// \name Domain tests
|
|
369
|
+
//@{
|
|
370
|
+
/// Test whether \a i is in the greatest lower bound
|
|
371
|
+
bool contains(int i) const;
|
|
372
|
+
/// Test whether \a i is not in the least upper bound
|
|
373
|
+
bool notContains(int i) const;
|
|
374
|
+
//@}
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
/// \name Domain update by value
|
|
378
|
+
//@{
|
|
379
|
+
/// Restrict cardinality to be greater than or equal to \a m
|
|
380
|
+
ModEvent cardMin(Space& home, unsigned int m);
|
|
381
|
+
/// Restrict cardinality to be less than or equal to \a m
|
|
382
|
+
ModEvent cardMax(Space& home, unsigned int m);
|
|
383
|
+
/**
|
|
384
|
+
* \brief Update greatest lower bound to include all elements
|
|
385
|
+
* between and including \a i and \a j
|
|
386
|
+
*/
|
|
387
|
+
ModEvent include(Space& home,int i,int j);
|
|
388
|
+
/**
|
|
389
|
+
* \brief Restrict least upper bound to not contain all elements
|
|
390
|
+
* between and including \a i and \a j
|
|
391
|
+
*/
|
|
392
|
+
ModEvent exclude(Space& home,int i,int j);
|
|
393
|
+
/// Update greatest lower bound to contain \a i
|
|
394
|
+
ModEvent include(Space& home,int i);
|
|
395
|
+
/// Restrict least upper bound to not contain \a i
|
|
396
|
+
ModEvent exclude(Space& home,int i);
|
|
397
|
+
/**
|
|
398
|
+
* \brief Update least upper bound to contain at most all elements
|
|
399
|
+
* between and including \a i and \a j
|
|
400
|
+
*/
|
|
401
|
+
ModEvent intersect(Space& home,int i,int j);
|
|
402
|
+
/// Update least upper bound to contain at most the element \a i
|
|
403
|
+
ModEvent intersect(Space& home,int i);
|
|
404
|
+
//@}
|
|
405
|
+
|
|
406
|
+
/// \name Domain update by range iterator
|
|
407
|
+
//@{
|
|
408
|
+
|
|
409
|
+
/// Remove range sequence described by \a i from least upper bound
|
|
410
|
+
template<class I> ModEvent excludeI(Space& home, I& i);
|
|
411
|
+
/// Include range sequence described by \a i in greatest lower bound
|
|
412
|
+
template<class I> ModEvent includeI(Space& home, I& i);
|
|
413
|
+
/// Intersect least upper bound with range sequence described by \a i
|
|
414
|
+
template<class I> ModEvent intersectI(Space& home, I& iter);
|
|
415
|
+
//@}
|
|
416
|
+
|
|
417
|
+
/// \name Delta information for advisors
|
|
418
|
+
//@{
|
|
419
|
+
/// Return minimum value just pruned from glb
|
|
420
|
+
int glbMin(const Delta& d) const;
|
|
421
|
+
/// Return maximum value just pruned from glb
|
|
422
|
+
int glbMax(const Delta& d) const;
|
|
423
|
+
/// Test whether arbitrary values got pruned from glb
|
|
424
|
+
bool glbAny(const Delta& d) const;
|
|
425
|
+
/// Return minimum value just pruned from lub
|
|
426
|
+
int lubMin(const Delta& d) const;
|
|
427
|
+
/// Return maximum value just pruned from lub
|
|
428
|
+
int lubMax(const Delta& d) const;
|
|
429
|
+
/// Test whether arbitrary values got pruned from lub
|
|
430
|
+
bool lubAny(const Delta& d) const;
|
|
431
|
+
//@}
|
|
432
|
+
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* \brief Print empty set view
|
|
437
|
+
* \relates Gecode::Set::EmptyView
|
|
438
|
+
*/
|
|
439
|
+
template<class Char, class Traits>
|
|
440
|
+
std::basic_ostream<Char,Traits>&
|
|
441
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const EmptyView& x);
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
/** \name View comparison
|
|
445
|
+
* \relates Gecode::Set::EmptyView
|
|
446
|
+
*/
|
|
447
|
+
//@{
|
|
448
|
+
/// Test whether views \a x and \a y are the same
|
|
449
|
+
bool same(const EmptyView& x, const EmptyView& y);
|
|
450
|
+
//@}
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* \brief Constant view for the universe
|
|
455
|
+
*
|
|
456
|
+
* A constant set view \f$x\f$ for the universe provides operations such
|
|
457
|
+
* that \f$x\f$ behaves like the universe.
|
|
458
|
+
* \ingroup TaskActorSetView
|
|
459
|
+
*/
|
|
460
|
+
|
|
461
|
+
class UniverseView : public ConstView<SetView> {
|
|
462
|
+
public:
|
|
463
|
+
/// \name Constructors and initialization
|
|
464
|
+
//@{
|
|
465
|
+
/// Default constructor
|
|
466
|
+
UniverseView(void);
|
|
467
|
+
//@}
|
|
468
|
+
|
|
469
|
+
/// \name Value access
|
|
470
|
+
//@{
|
|
471
|
+
|
|
472
|
+
/// Return minimum cardinality
|
|
473
|
+
unsigned int cardMin(void) const;
|
|
474
|
+
/// Return maximum cardinality
|
|
475
|
+
unsigned int cardMax(void) const;
|
|
476
|
+
/// Return minimum of the least upper bound
|
|
477
|
+
int lubMin(void) const;
|
|
478
|
+
/// Return maximum of the least upper bound
|
|
479
|
+
int lubMax(void) const;
|
|
480
|
+
/// Return n-th smallest element of the least upper bound
|
|
481
|
+
int lubMinN(unsigned int n) const;
|
|
482
|
+
/// Return minimum of the greatest lower bound
|
|
483
|
+
int glbMin(void) const;
|
|
484
|
+
/// Return maximum of the greatest lower bound
|
|
485
|
+
int glbMax(void) const;
|
|
486
|
+
|
|
487
|
+
/// Return the number of elements in the greatest lower bound
|
|
488
|
+
unsigned int glbSize(void) const;
|
|
489
|
+
/// Return the number of elements in the least upper bound
|
|
490
|
+
unsigned int lubSize(void) const;
|
|
491
|
+
/// Return the number of unknown elements
|
|
492
|
+
unsigned int unknownSize(void) const;
|
|
493
|
+
//@}
|
|
494
|
+
|
|
495
|
+
/// \name Domain tests
|
|
496
|
+
//@{
|
|
497
|
+
/// Test whether \a i is in the greatest lower bound
|
|
498
|
+
bool contains(int i) const;
|
|
499
|
+
/// Test whether \a i is not in the least upper bound
|
|
500
|
+
bool notContains(int i) const;
|
|
501
|
+
//@}
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
/// \name Domain update by value
|
|
505
|
+
//@{
|
|
506
|
+
/// Restrict cardinality to be greater than or equal to \a m
|
|
507
|
+
ModEvent cardMin(Space& home, unsigned int m);
|
|
508
|
+
/// Restrict cardinality to be less than or equal to \a m
|
|
509
|
+
ModEvent cardMax(Space& home, unsigned int m);
|
|
510
|
+
/**
|
|
511
|
+
* \brief Update greatest lower bound to include all elements
|
|
512
|
+
* between and including \a i and \a j
|
|
513
|
+
*/
|
|
514
|
+
ModEvent include(Space& home,int i,int j);
|
|
515
|
+
/**
|
|
516
|
+
* \brief Restrict least upper bound to not contain all elements
|
|
517
|
+
* between and including \a i and \a j
|
|
518
|
+
*/
|
|
519
|
+
ModEvent exclude(Space& home,int i,int j);
|
|
520
|
+
/// Update greatest lower bound to contain \a i
|
|
521
|
+
ModEvent include(Space& home,int i);
|
|
522
|
+
/// Restrict least upper bound to not contain \a i
|
|
523
|
+
ModEvent exclude(Space& home,int i);
|
|
524
|
+
/**
|
|
525
|
+
* \brief Update least upper bound to contain at most all elements
|
|
526
|
+
* between and including \a i and \a j
|
|
527
|
+
*/
|
|
528
|
+
ModEvent intersect(Space& home,int i,int j);
|
|
529
|
+
/// Update least upper bound to contain at most the element \a i
|
|
530
|
+
ModEvent intersect(Space& home,int i);
|
|
531
|
+
//@}
|
|
532
|
+
|
|
533
|
+
/// \name Domain update by range iterator
|
|
534
|
+
//@{
|
|
535
|
+
|
|
536
|
+
/// Remove range sequence described by \a i from least upper bound
|
|
537
|
+
template<class I> ModEvent excludeI(Space& home, I& i);
|
|
538
|
+
/// Include range sequence described by \a i in greatest lower bound
|
|
539
|
+
template<class I> ModEvent includeI(Space& home, I& i);
|
|
540
|
+
/// Intersect least upper bound with range sequence described by \a i
|
|
541
|
+
template<class I> ModEvent intersectI(Space& home, I& iter);
|
|
542
|
+
//@}
|
|
543
|
+
|
|
544
|
+
/// \name Delta information for advisors
|
|
545
|
+
//@{
|
|
546
|
+
/// Return minimum value just pruned from glb
|
|
547
|
+
int glbMin(const Delta& d) const;
|
|
548
|
+
/// Return maximum value just pruned from glb
|
|
549
|
+
int glbMax(const Delta& d) const;
|
|
550
|
+
/// Test whether arbitrary values got pruned from glb
|
|
551
|
+
bool glbAny(const Delta& d) const;
|
|
552
|
+
/// Return minimum value just pruned from lub
|
|
553
|
+
int lubMin(const Delta& d) const;
|
|
554
|
+
/// Return maximum value just pruned from lub
|
|
555
|
+
int lubMax(const Delta& d) const;
|
|
556
|
+
/// Test whether arbitrary values got pruned from lub
|
|
557
|
+
bool lubAny(const Delta& d) const;
|
|
558
|
+
//@}
|
|
559
|
+
|
|
560
|
+
};
|
|
561
|
+
|
|
562
|
+
/**
|
|
563
|
+
* \brief Print universe set view
|
|
564
|
+
* \relates Gecode::Set::UniverseView
|
|
565
|
+
*/
|
|
566
|
+
template<class Char, class Traits>
|
|
567
|
+
std::basic_ostream<Char,Traits>&
|
|
568
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const UniverseView& x);
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
/** \name View comparison
|
|
572
|
+
* \relates Gecode::Set::UniverseView
|
|
573
|
+
*/
|
|
574
|
+
//@{
|
|
575
|
+
/// Test whether views \a x and \a y are the same
|
|
576
|
+
bool same(const UniverseView& x, const UniverseView& y);
|
|
577
|
+
//@}
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* \brief Singleton set view
|
|
583
|
+
*
|
|
584
|
+
* A singleton set view \f$s\f$ for an integer view \f$x\f$ provides
|
|
585
|
+
* operations such that \f$s\f$ behaves like the singleton set \f$\{x\}\f$.
|
|
586
|
+
* \ingroup TaskActorSetView
|
|
587
|
+
*/
|
|
588
|
+
|
|
589
|
+
class SingletonView :
|
|
590
|
+
public DerivedView<Gecode::Int::IntView> {
|
|
591
|
+
protected:
|
|
592
|
+
using DerivedView<Gecode::Int::IntView>::x;
|
|
593
|
+
|
|
594
|
+
/// Convert set variable PropCond \a pc to a PropCond for integer variables
|
|
595
|
+
static PropCond pc_settoint(PropCond pc);
|
|
596
|
+
/// Convert integer variable ModEvent \a me to a ModEvent for set variables
|
|
597
|
+
static ModEvent me_inttoset(ModEvent me);
|
|
598
|
+
/// Convert set variable ModEvent \a me to a ModEvent for integer variables
|
|
599
|
+
static ModEvent me_settoint(ModEvent me);
|
|
600
|
+
|
|
601
|
+
public:
|
|
602
|
+
/// \name Constructors and initialization
|
|
603
|
+
//@{
|
|
604
|
+
/// Default constructor
|
|
605
|
+
SingletonView(void);
|
|
606
|
+
/// Initialize with integer view \a y
|
|
607
|
+
SingletonView(Gecode::Int::IntView& y);
|
|
608
|
+
/// Initialize with integer variable \a y
|
|
609
|
+
SingletonView(const Gecode::IntVar& y);
|
|
610
|
+
//@}
|
|
611
|
+
|
|
612
|
+
/// \name Value access
|
|
613
|
+
//@{
|
|
614
|
+
|
|
615
|
+
/// Return minimum cardinality
|
|
616
|
+
unsigned int cardMin(void) const;
|
|
617
|
+
/// Return maximum cardinality
|
|
618
|
+
unsigned int cardMax(void) const;
|
|
619
|
+
/// Return minimum of the least upper bound
|
|
620
|
+
int lubMin(void) const;
|
|
621
|
+
/// Return maximum of the least upper bound
|
|
622
|
+
int lubMax(void) const;
|
|
623
|
+
/// Return n-th smallest element of the least upper bound
|
|
624
|
+
int lubMinN(unsigned int n) const;
|
|
625
|
+
/// Return minimum of the greatest lower bound
|
|
626
|
+
int glbMin(void) const;
|
|
627
|
+
/// Return maximum of the greatest lower bound
|
|
628
|
+
int glbMax(void) const;
|
|
629
|
+
|
|
630
|
+
/// Return the number of elements in the greatest lower bound
|
|
631
|
+
unsigned int glbSize(void) const;
|
|
632
|
+
/// Return the number of elements in the least upper bound
|
|
633
|
+
unsigned int lubSize(void) const;
|
|
634
|
+
/// Return the number of unknown elements
|
|
635
|
+
unsigned int unknownSize(void) const;
|
|
636
|
+
//@}
|
|
637
|
+
|
|
638
|
+
/// \name Domain tests
|
|
639
|
+
//@{
|
|
640
|
+
/// Test whether \a i is in the greatest lower bound
|
|
641
|
+
bool contains(int i) const;
|
|
642
|
+
/// Test whether \a i is not in the least upper bound
|
|
643
|
+
bool notContains(int i) const;
|
|
644
|
+
//@}
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
/// \name Domain update by value
|
|
648
|
+
//@{
|
|
649
|
+
/// Restrict cardinality to be greater than or equal to \a m
|
|
650
|
+
ModEvent cardMin(Space& home, unsigned int m);
|
|
651
|
+
/// Restrict cardinality to be less than or equal to \a m
|
|
652
|
+
ModEvent cardMax(Space& home, unsigned int m);
|
|
653
|
+
/**
|
|
654
|
+
* \brief Update greatest lower bound to include all elements
|
|
655
|
+
* between and including \a i and \a j
|
|
656
|
+
*/
|
|
657
|
+
ModEvent include(Space& home,int i,int j);
|
|
658
|
+
/**
|
|
659
|
+
* \brief Restrict least upper bound to not contain all elements
|
|
660
|
+
* between and including \a i and \a j
|
|
661
|
+
*/
|
|
662
|
+
ModEvent exclude(Space& home,int i,int j);
|
|
663
|
+
/// Update greatest lower bound to contain \a i
|
|
664
|
+
ModEvent include(Space& home,int i);
|
|
665
|
+
/// Restrict least upper bound to not contain \a i
|
|
666
|
+
ModEvent exclude(Space& home,int i);
|
|
667
|
+
/**
|
|
668
|
+
* \brief Update least upper bound to contain at most all elements
|
|
669
|
+
* between and including \a i and \a j
|
|
670
|
+
*/
|
|
671
|
+
ModEvent intersect(Space& home,int i,int j);
|
|
672
|
+
/// Update least upper bound to contain at most the element \a i
|
|
673
|
+
ModEvent intersect(Space& home,int i);
|
|
674
|
+
//@}
|
|
675
|
+
|
|
676
|
+
/// \name Domain update by range iterator
|
|
677
|
+
//@{
|
|
678
|
+
|
|
679
|
+
/// Remove range sequence described by \a i from least upper bound
|
|
680
|
+
template<class I> ModEvent excludeI(Space& home, I& i);
|
|
681
|
+
/// Include range sequence described by \a i in greatest lower bound
|
|
682
|
+
template<class I> ModEvent includeI(Space& home, I& i);
|
|
683
|
+
/// Intersect least upper bound with range sequence described by \a i
|
|
684
|
+
template<class I> ModEvent intersectI(Space& home, I& iter);
|
|
685
|
+
//@}
|
|
686
|
+
|
|
687
|
+
/// \name View-dependent propagator support
|
|
688
|
+
//@{
|
|
689
|
+
/// Schedule propagator \a p with modification event \a me
|
|
690
|
+
static void schedule(Space& home, Propagator& p, ModEvent me);
|
|
691
|
+
/// Return modification event for view type in \a med
|
|
692
|
+
static ModEvent me(const ModEventDelta& med);
|
|
693
|
+
/// Translate modification event \a me to modification event delta for view
|
|
694
|
+
static ModEventDelta med(ModEvent);
|
|
695
|
+
//@}
|
|
696
|
+
|
|
697
|
+
/// \name Dependencies
|
|
698
|
+
//@{
|
|
699
|
+
/**
|
|
700
|
+
* \brief Subscribe propagator \a p with propagation condition \a pc to view
|
|
701
|
+
*
|
|
702
|
+
* In case \a schedule is false, the propagator is just subscribed but
|
|
703
|
+
* not scheduled for execution (this must be used when creating
|
|
704
|
+
* subscriptions during propagation).
|
|
705
|
+
*/
|
|
706
|
+
void subscribe(Space& home, Propagator& p, PropCond pc, bool schedule=true);
|
|
707
|
+
/// Cancel subscription of propagator \a p with propagation condition \a pc to view
|
|
708
|
+
void cancel(Space& home, Propagator& p, PropCond pc);
|
|
709
|
+
/// Subscribe advisor \a a to view
|
|
710
|
+
void subscribe(Space& home, Advisor& a);
|
|
711
|
+
/// Cancel subscription of advisor \a a
|
|
712
|
+
void cancel(Space& home, Advisor& a);
|
|
713
|
+
//@}
|
|
714
|
+
|
|
715
|
+
/// \name Delta information for advisors
|
|
716
|
+
//@{
|
|
717
|
+
/// Return modification event
|
|
718
|
+
static ModEvent modevent(const Delta& d);
|
|
719
|
+
/// Return minimum value just pruned from glb
|
|
720
|
+
int glbMin(const Delta& d) const;
|
|
721
|
+
/// Return maximum value just pruned from glb
|
|
722
|
+
int glbMax(const Delta& d) const;
|
|
723
|
+
/// Test whether arbitrary values got pruned from glb
|
|
724
|
+
bool glbAny(const Delta& d) const;
|
|
725
|
+
/// Return minimum value just pruned from lub
|
|
726
|
+
int lubMin(const Delta& d) const;
|
|
727
|
+
/// Return maximum value just pruned from lub
|
|
728
|
+
int lubMax(const Delta& d) const;
|
|
729
|
+
/// Test whether arbitrary values got pruned from lub
|
|
730
|
+
bool lubAny(const Delta& d) const;
|
|
731
|
+
//@}
|
|
732
|
+
|
|
733
|
+
};
|
|
734
|
+
|
|
735
|
+
/**
|
|
736
|
+
* \brief Print singleton set view
|
|
737
|
+
* \relates Gecode::Set::SingletonView
|
|
738
|
+
*/
|
|
739
|
+
template<class Char, class Traits>
|
|
740
|
+
std::basic_ostream<Char,Traits>&
|
|
741
|
+
operator <<(std::basic_ostream<Char,Traits>& os, const SingletonView& x);
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
/**
|
|
745
|
+
* \brief Complement set view
|
|
746
|
+
*
|
|
747
|
+
* A complement set view \f$s\f$ for a set view \f$t\f$ provides
|
|
748
|
+
* operations such that \f$s\f$ behaves like the complement of \f$\{t\}\f$.
|
|
749
|
+
* The complement is defined in terms of the set universe.
|
|
750
|
+
* \ingroup TaskActorSetView
|
|
751
|
+
*/
|
|
752
|
+
|
|
753
|
+
template<class View>
|
|
754
|
+
class ComplementView
|
|
755
|
+
: public DerivedView<View> {
|
|
756
|
+
protected:
|
|
757
|
+
using DerivedView<View>::x;
|
|
758
|
+
|
|
759
|
+
public:
|
|
760
|
+
/// Negate the propagation condition \a pc
|
|
761
|
+
static PropCond pc_negateset(PropCond pc);
|
|
762
|
+
/// Negate the modification event \a me
|
|
763
|
+
static ModEvent me_negateset(ModEvent me);
|
|
764
|
+
|
|
765
|
+
/// \name Constructors and initialization
|
|
766
|
+
//@{
|
|
767
|
+
/// Default constructor
|
|
768
|
+
ComplementView(void);
|
|
769
|
+
/// Initialize with set view \a y
|
|
770
|
+
explicit ComplementView(View& y);
|
|
771
|
+
//@}
|
|
772
|
+
|
|
773
|
+
/// \name Value access
|
|
774
|
+
//@{
|
|
775
|
+
|
|
776
|
+
/// Return minimum cardinality
|
|
777
|
+
unsigned int cardMin(void) const;
|
|
778
|
+
/// Return maximum cardinality
|
|
779
|
+
unsigned int cardMax(void) const;
|
|
780
|
+
/// Return minimum of the least upper bound
|
|
781
|
+
int lubMin(void) const;
|
|
782
|
+
/// Return maximum of the least upper bound
|
|
783
|
+
int lubMax(void) const;
|
|
784
|
+
/// Return \a n-th smallest element of the least upper bound
|
|
785
|
+
int lubMinN(unsigned int n) const;
|
|
786
|
+
/// Return minimum of the greatest lower bound
|
|
787
|
+
int glbMin(void) const;
|
|
788
|
+
/// Return maximum of the greatest lower bound
|
|
789
|
+
int glbMax(void) const;
|
|
790
|
+
|
|
791
|
+
/// Return the number of elements in the greatest lower bound
|
|
792
|
+
unsigned int glbSize(void) const;
|
|
793
|
+
/// Return the number of elements in the least upper bound
|
|
794
|
+
unsigned int lubSize(void) const;
|
|
795
|
+
/// Return the number of unknown elements
|
|
796
|
+
unsigned int unknownSize(void) const;
|
|
797
|
+
//@}
|
|
798
|
+
|
|
799
|
+
/// \name Domain tests
|
|
800
|
+
//@{
|
|
801
|
+
/// Test whether \a i is in the greatest lower bound
|
|
802
|
+
bool contains(int i) const;
|
|
803
|
+
/// Test whether \a i is not in the least upper bound
|
|
804
|
+
bool notContains(int i) const;
|
|
805
|
+
//@}
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
/// \name Domain update by value
|
|
809
|
+
//@{
|
|
810
|
+
/// Restrict cardinality to be greater than or equal to \a m
|
|
811
|
+
ModEvent cardMin(Space& home, unsigned int m);
|
|
812
|
+
/// Restrict cardinality to be less than or equal to \a m
|
|
813
|
+
ModEvent cardMax(Space& home, unsigned int m);
|
|
814
|
+
/**
|
|
815
|
+
* \brief Update greatest lower bound to include all elements
|
|
816
|
+
* between and including \a i and \a j
|
|
817
|
+
*/
|
|
818
|
+
ModEvent include(Space& home,int i,int j);
|
|
819
|
+
/**
|
|
820
|
+
* \brief Restrict least upper bound to not contain all elements
|
|
821
|
+
* between and including \a i and \a j
|
|
822
|
+
*/
|
|
823
|
+
ModEvent exclude(Space& home,int i,int j);
|
|
824
|
+
/// Update greatest lower bound to contain \a i
|
|
825
|
+
ModEvent include(Space& home,int i);
|
|
826
|
+
/// Restrict least upper bound to not contain \a i
|
|
827
|
+
ModEvent exclude(Space& home,int i);
|
|
828
|
+
/**
|
|
829
|
+
* \brief Update least upper bound to contain at most all elements
|
|
830
|
+
* between and including \a i and \a j
|
|
831
|
+
*/
|
|
832
|
+
ModEvent intersect(Space& home,int i,int j);
|
|
833
|
+
/// Update least upper bound to contain at most the element \a i
|
|
834
|
+
ModEvent intersect(Space& home,int i);
|
|
835
|
+
//@}
|
|
836
|
+
|
|
837
|
+
/// \name Domain update by range iterator
|
|
838
|
+
//@{
|
|
839
|
+
|
|
840
|
+
/// Remove range sequence described by \a i from least upper bound
|
|
841
|
+
template<class I> ModEvent excludeI(Space& home, I& i);
|
|
842
|
+
/// Include range sequence described by \a i in greatest lower bound
|
|
843
|
+
template<class I> ModEvent includeI(Space& home, I& i);
|
|
844
|
+
/// Intersect least upper bound with range sequence described by \a i
|
|
845
|
+
template<class I> ModEvent intersectI(Space& home, I& iter);
|
|
846
|
+
//@}
|
|
847
|
+
|
|
848
|
+
/// \name View-dependent propagator support
|
|
849
|
+
//@{
|
|
850
|
+
/// Schedule propagator \a p with modification event \a me
|
|
851
|
+
static void schedule(Space& home, Propagator& p, ModEvent me);
|
|
852
|
+
/// Return modification event for view type in \a med
|
|
853
|
+
static ModEvent me(const ModEventDelta& med);
|
|
854
|
+
/// Translate modification event \a me to modification event delta for view
|
|
855
|
+
static ModEventDelta med(ModEvent);
|
|
856
|
+
//@}
|
|
857
|
+
|
|
858
|
+
/// \name Dependencies
|
|
859
|
+
//@{
|
|
860
|
+
/**
|
|
861
|
+
* \brief Subscribe propagator \a p with propagation condition \a pc to view
|
|
862
|
+
*
|
|
863
|
+
* In case \a schedule is false, the propagator is just subscribed but
|
|
864
|
+
* not scheduled for execution (this must be used when creating
|
|
865
|
+
* subscriptions during propagation).
|
|
866
|
+
*/
|
|
867
|
+
void subscribe(Space& home, Propagator& p, PropCond pc, bool schedule=true);
|
|
868
|
+
/// Cancel subscription of propagator \a p with propagation condition \a pc to view
|
|
869
|
+
void cancel(Space& home, Propagator& p, PropCond pc);
|
|
870
|
+
/// Subscribe advisor \a a to view
|
|
871
|
+
void subscribe(Space& home, Advisor& a);
|
|
872
|
+
/// Cancel subscription of advisor \a a
|
|
873
|
+
void cancel(Space& home, Advisor& a);
|
|
874
|
+
//@}
|
|
875
|
+
|
|
876
|
+
/// \name Delta information for advisors
|
|
877
|
+
//@{
|
|
878
|
+
/// Return modification event
|
|
879
|
+
static ModEvent modevent(const Delta& d);
|
|
880
|
+
/// Return minimum value just pruned from glb
|
|
881
|
+
int glbMin(const Delta& d) const;
|
|
882
|
+
/// Return maximum value just pruned from glb
|
|
883
|
+
int glbMax(const Delta& d) const;
|
|
884
|
+
/// Test whether arbitrary values got pruned from glb
|
|
885
|
+
bool glbAny(const Delta& d) const;
|
|
886
|
+
/// Return minimum value just pruned from lub
|
|
887
|
+
int lubMin(const Delta& d) const;
|
|
888
|
+
/// Return maximum value just pruned from lub
|
|
889
|
+
int lubMax(const Delta& d) const;
|
|
890
|
+
/// Test whether arbitrary values got pruned from lub
|
|
891
|
+
bool lubAny(const Delta& d) const;
|
|
892
|
+
//@}
|
|
893
|
+
|
|
894
|
+
};
|
|
895
|
+
|
|
896
|
+
/**
|
|
897
|
+
* \brief Print complement set view
|
|
898
|
+
* \relates Gecode::Set::ComplementView
|
|
899
|
+
*/
|
|
900
|
+
template<class Char, class Traits, class View>
|
|
901
|
+
std::basic_ostream<Char,Traits>&
|
|
902
|
+
operator <<(std::basic_ostream<Char,Traits>& os,
|
|
903
|
+
const ComplementView<View>& x);
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
template<class View> class LubDiffRanges;
|
|
907
|
+
template<class View> class GlbDiffRanges;
|
|
908
|
+
|
|
909
|
+
/**
|
|
910
|
+
* \brief Cached set view
|
|
911
|
+
*
|
|
912
|
+
* A cached set view \f$s\f$ for a set view \f$t\f$ adds operations
|
|
913
|
+
* for cacheing the current domain of \f$t\f$ and comparing the current
|
|
914
|
+
* domain to the cached domain. Cached views make it easy to implement
|
|
915
|
+
* incremental propagation algorithms.
|
|
916
|
+
*
|
|
917
|
+
* \ingroup TaskActorSetView
|
|
918
|
+
*/
|
|
919
|
+
|
|
920
|
+
template<class View>
|
|
921
|
+
class CachedView
|
|
922
|
+
: public DerivedView<View> {
|
|
923
|
+
friend class LubDiffRanges<View>;
|
|
924
|
+
friend class GlbDiffRanges<View>;
|
|
925
|
+
protected:
|
|
926
|
+
using DerivedView<View>::x;
|
|
927
|
+
|
|
928
|
+
/// The cached least upper bound
|
|
929
|
+
LUBndSet lubCache;
|
|
930
|
+
/// The cached greatest lower bound
|
|
931
|
+
GLBndSet glbCache;
|
|
932
|
+
|
|
933
|
+
public:
|
|
934
|
+
|
|
935
|
+
/// \name Constructors and initialization
|
|
936
|
+
//@{
|
|
937
|
+
/// Default constructor
|
|
938
|
+
CachedView(void);
|
|
939
|
+
/// Initialize with set view \a y
|
|
940
|
+
explicit CachedView(const View& y);
|
|
941
|
+
//@}
|
|
942
|
+
|
|
943
|
+
/// \name Value access
|
|
944
|
+
//@{
|
|
945
|
+
|
|
946
|
+
/// Return minimum cardinality
|
|
947
|
+
unsigned int cardMin(void) const;
|
|
948
|
+
/// Return maximum cardinality
|
|
949
|
+
unsigned int cardMax(void) const;
|
|
950
|
+
/// Return minimum of the least upper bound
|
|
951
|
+
int lubMin(void) const;
|
|
952
|
+
/// Return maximum of the least upper bound
|
|
953
|
+
int lubMax(void) const;
|
|
954
|
+
/// Return \a n-th smallest element of the least upper bound
|
|
955
|
+
int lubMinN(unsigned int n) const;
|
|
956
|
+
/// Return minimum of the greatest lower bound
|
|
957
|
+
int glbMin(void) const;
|
|
958
|
+
/// Return maximum of the greatest lower bound
|
|
959
|
+
int glbMax(void) const;
|
|
960
|
+
|
|
961
|
+
/// Return the number of elements in the greatest lower bound
|
|
962
|
+
unsigned int glbSize(void) const;
|
|
963
|
+
/// Return the number of elements in the least upper bound
|
|
964
|
+
unsigned int lubSize(void) const;
|
|
965
|
+
/// Return the number of unknown elements
|
|
966
|
+
unsigned int unknownSize(void) const;
|
|
967
|
+
//@}
|
|
968
|
+
|
|
969
|
+
/// \name Domain tests
|
|
970
|
+
//@{
|
|
971
|
+
/// Test whether \a i is in the greatest lower bound
|
|
972
|
+
bool contains(int i) const;
|
|
973
|
+
/// Test whether \a i is not in the least upper bound
|
|
974
|
+
bool notContains(int i) const;
|
|
975
|
+
//@}
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
/// \name Domain update by value
|
|
979
|
+
//@{
|
|
980
|
+
/// Restrict cardinality to be greater than or equal to \a m
|
|
981
|
+
ModEvent cardMin(Space& home, unsigned int m);
|
|
982
|
+
/// Restrict cardinality to be less than or equal to \a m
|
|
983
|
+
ModEvent cardMax(Space& home, unsigned int m);
|
|
984
|
+
/**
|
|
985
|
+
* \brief Update greatest lower bound to include all elements
|
|
986
|
+
* between and including \a i and \a j
|
|
987
|
+
*/
|
|
988
|
+
ModEvent include(Space& home,int i,int j);
|
|
989
|
+
/**
|
|
990
|
+
* \brief Restrict least upper bound to not contain all elements
|
|
991
|
+
* between and including \a i and \a j
|
|
992
|
+
*/
|
|
993
|
+
ModEvent exclude(Space& home,int i,int j);
|
|
994
|
+
/// Update greatest lower bound to contain \a i
|
|
995
|
+
ModEvent include(Space& home,int i);
|
|
996
|
+
/// Restrict least upper bound to not contain \a i
|
|
997
|
+
ModEvent exclude(Space& home,int i);
|
|
998
|
+
/**
|
|
999
|
+
* \brief Update least upper bound to contain at most all elements
|
|
1000
|
+
* between and including \a i and \a j
|
|
1001
|
+
*/
|
|
1002
|
+
ModEvent intersect(Space& home,int i,int j);
|
|
1003
|
+
/// Update least upper bound to contain at most the element \a i
|
|
1004
|
+
ModEvent intersect(Space& home,int i);
|
|
1005
|
+
//@}
|
|
1006
|
+
|
|
1007
|
+
/// \name Domain update by range iterator
|
|
1008
|
+
//@{
|
|
1009
|
+
|
|
1010
|
+
/// Remove range sequence described by \a i from least upper bound
|
|
1011
|
+
template<class I> ModEvent excludeI(Space& home, I& i);
|
|
1012
|
+
/// Include range sequence described by \a i in greatest lower bound
|
|
1013
|
+
template<class I> ModEvent includeI(Space& home, I& i);
|
|
1014
|
+
/// Intersect least upper bound with range sequence described by \a i
|
|
1015
|
+
template<class I> ModEvent intersectI(Space& home, I& iter);
|
|
1016
|
+
//@}
|
|
1017
|
+
|
|
1018
|
+
/// \name View-dependent propagator support
|
|
1019
|
+
//@{
|
|
1020
|
+
/// Schedule propagator \a p with modification event \a me
|
|
1021
|
+
static void schedule(Space& home, Propagator& p, ModEvent me);
|
|
1022
|
+
/// Return modification event for view type in \a med
|
|
1023
|
+
static ModEvent me(const ModEventDelta& med);
|
|
1024
|
+
/// Translate modification event \a me to modification event delta for view
|
|
1025
|
+
static ModEventDelta med(ModEvent);
|
|
1026
|
+
//@}
|
|
1027
|
+
|
|
1028
|
+
/// \name Dependencies
|
|
1029
|
+
//@{
|
|
1030
|
+
/**
|
|
1031
|
+
* \brief Subscribe propagator \a p with propagation condition \a pc to view
|
|
1032
|
+
*
|
|
1033
|
+
* In case \a schedule is false, the propagator is just subscribed but
|
|
1034
|
+
* not scheduled for execution (this must be used when creating
|
|
1035
|
+
* subscriptions during propagation).
|
|
1036
|
+
*/
|
|
1037
|
+
void subscribe(Space& home, Propagator& p, PropCond pc, bool schedule=true);
|
|
1038
|
+
/// Cancel subscription of propagator \a p with propagation condition \a pc to view
|
|
1039
|
+
void cancel(Space& home, Propagator& p, PropCond pc);
|
|
1040
|
+
/// Subscribe advisor \a a to view
|
|
1041
|
+
void subscribe(Space& home, Advisor& a);
|
|
1042
|
+
/// Cancel subscription of advisor \a a
|
|
1043
|
+
void cancel(Space& home, Advisor& a);
|
|
1044
|
+
//@}
|
|
1045
|
+
|
|
1046
|
+
/// \name Delta information for advisors
|
|
1047
|
+
//@{
|
|
1048
|
+
/// Return modification event
|
|
1049
|
+
static ModEvent modevent(const Delta& d);
|
|
1050
|
+
/// Return minimum value just pruned from glb
|
|
1051
|
+
int glbMin(const Delta& d) const;
|
|
1052
|
+
/// Return maximum value just pruned from glb
|
|
1053
|
+
int glbMax(const Delta& d) const;
|
|
1054
|
+
/// Test whether arbitrary values got pruned from glb
|
|
1055
|
+
bool glbAny(const Delta& d) const;
|
|
1056
|
+
/// Return minimum value just pruned from lub
|
|
1057
|
+
int lubMin(const Delta& d) const;
|
|
1058
|
+
/// Return maximum value just pruned from lub
|
|
1059
|
+
int lubMax(const Delta& d) const;
|
|
1060
|
+
/// Test whether arbitrary values got pruned from lub
|
|
1061
|
+
bool lubAny(const Delta& d) const;
|
|
1062
|
+
//@}
|
|
1063
|
+
|
|
1064
|
+
/// \name Domain cache operations
|
|
1065
|
+
//@{
|
|
1066
|
+
/// Initialize cache to bounds \a glb and \a lub
|
|
1067
|
+
void initCache(Space& home, const IntSet& glb, const IntSet& lub);
|
|
1068
|
+
/// Update greatest lower bound cache to current domain
|
|
1069
|
+
void cacheGlb(Space& home);
|
|
1070
|
+
/// Update least upper bound cache to current domain
|
|
1071
|
+
void cacheLub(Space& home);
|
|
1072
|
+
/// Check whether greatest lower bound cache differs from current domain
|
|
1073
|
+
bool glbModified(void) const;
|
|
1074
|
+
/// Check whether least upper bound cache differs from current domain
|
|
1075
|
+
bool lubModified(void) const;
|
|
1076
|
+
//@}
|
|
1077
|
+
|
|
1078
|
+
/// \name Cloning
|
|
1079
|
+
//@{
|
|
1080
|
+
/// Update this view to be a clone of view \a y
|
|
1081
|
+
void update(Space& home, bool share, CachedView<View>& y);
|
|
1082
|
+
//@}
|
|
1083
|
+
};
|
|
1084
|
+
|
|
1085
|
+
/**
|
|
1086
|
+
* \brief Print cached set view
|
|
1087
|
+
* \relates Gecode::Set::CachedView
|
|
1088
|
+
*/
|
|
1089
|
+
template<class Char, class Traits, class View>
|
|
1090
|
+
std::basic_ostream<Char,Traits>&
|
|
1091
|
+
operator <<(std::basic_ostream<Char,Traits>& os,
|
|
1092
|
+
const CachedView<View>& x);
|
|
1093
|
+
|
|
1094
|
+
/**
|
|
1095
|
+
* \brief %Range iterator for difference of greatest lower bound and cache
|
|
1096
|
+
* \relates Gecode::Set::CachedView
|
|
1097
|
+
*/
|
|
1098
|
+
template<class View>
|
|
1099
|
+
class GlbDiffRanges
|
|
1100
|
+
: public Iter::Ranges::Diff<GlbRanges<View>,BndSetRanges> {
|
|
1101
|
+
protected:
|
|
1102
|
+
/// Lower bound iterator
|
|
1103
|
+
GlbRanges<View> gr;
|
|
1104
|
+
/// Cached lower bound
|
|
1105
|
+
BndSetRanges cr;
|
|
1106
|
+
public:
|
|
1107
|
+
/// Constructor
|
|
1108
|
+
GlbDiffRanges(const CachedView<View>& x);
|
|
1109
|
+
};
|
|
1110
|
+
|
|
1111
|
+
/**
|
|
1112
|
+
* \brief %Range iterator for difference of least upper bound and cache
|
|
1113
|
+
* \relates Gecode::Set::CachedView
|
|
1114
|
+
*/
|
|
1115
|
+
template<class View>
|
|
1116
|
+
class LubDiffRanges
|
|
1117
|
+
: public Iter::Ranges::Diff<BndSetRanges,LubRanges<View> > {
|
|
1118
|
+
protected:
|
|
1119
|
+
/// Cached upper bound
|
|
1120
|
+
BndSetRanges cr;
|
|
1121
|
+
/// Upper bound iterator
|
|
1122
|
+
LubRanges<View> lr;
|
|
1123
|
+
public:
|
|
1124
|
+
/// Constructor
|
|
1125
|
+
LubDiffRanges(const CachedView<View>& x);
|
|
1126
|
+
};
|
|
1127
|
+
|
|
1128
|
+
}}
|
|
1129
|
+
|
|
1130
|
+
#include <gecode/set/var/set.hpp>
|
|
1131
|
+
|
|
1132
|
+
#include <gecode/set/view/set.hpp>
|
|
1133
|
+
|
|
1134
|
+
#include <gecode/set/view/const.hpp>
|
|
1135
|
+
#include <gecode/set/view/singleton.hpp>
|
|
1136
|
+
#include <gecode/set/view/complement.hpp>
|
|
1137
|
+
#include <gecode/set/view/cached.hpp>
|
|
1138
|
+
|
|
1139
|
+
#include <gecode/set/view/print.hpp>
|
|
1140
|
+
#include <gecode/set/var/print.hpp>
|
|
1141
|
+
|
|
1142
|
+
// STATISTICS: set-var
|