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.
Files changed (806) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +26 -0
  3. data/Gemfile +3 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +20 -0
  7. data/dep-selector-libgecode.gemspec +25 -0
  8. data/ext/libgecode3/Makefile +8 -0
  9. data/ext/libgecode3/extconf.rb +57 -0
  10. data/ext/libgecode3/vendor/gecode-3.7.3/LICENSE +25 -0
  11. data/ext/libgecode3/vendor/gecode-3.7.3/Makefile.contribs +88 -0
  12. data/ext/libgecode3/vendor/gecode-3.7.3/Makefile.dep +11307 -0
  13. data/ext/libgecode3/vendor/gecode-3.7.3/Makefile.in +1795 -0
  14. data/ext/libgecode3/vendor/gecode-3.7.3/changelog.in +6132 -0
  15. data/ext/libgecode3/vendor/gecode-3.7.3/configure +13054 -0
  16. data/ext/libgecode3/vendor/gecode-3.7.3/configure.ac +356 -0
  17. data/ext/libgecode3/vendor/gecode-3.7.3/configure.ac.in +352 -0
  18. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/README +26 -0
  19. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/AbstractWorker.hh +42 -0
  20. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Doxyfile +263 -0
  21. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Makefile.in.in +162 -0
  22. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/OptVar.cc +82 -0
  23. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/OptVar.hh +124 -0
  24. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCOPPlus.cc +306 -0
  25. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCOPPlus.hh +166 -0
  26. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCSPPlusUnblockable.cc +239 -0
  27. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/QCSPPlusUnblockable.hh +140 -0
  28. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/README +6 -0
  29. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Strategy.cc +253 -0
  30. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Strategy.hh +112 -0
  31. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/StrategyNode.cc +59 -0
  32. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/StrategyNode.hh +49 -0
  33. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/UnblockableBranching.hh +34 -0
  34. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/UnblockableViewValBranching.cc +61 -0
  35. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/UnblockableViewValBranching.hh +45 -0
  36. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Work.cc +48 -0
  37. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Work.hh +64 -0
  38. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/WorkComparators.hh +67 -0
  39. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/WorkManager.cc +376 -0
  40. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/WorkManager.hh +96 -0
  41. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Worker.cc +285 -0
  42. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/Worker.hh +70 -0
  43. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/clean +5 -0
  44. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/configure +2637 -0
  45. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/configure.ac +44 -0
  46. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/myDom.cc +59 -0
  47. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/myspace.cc +119 -0
  48. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/myspace.hh +79 -0
  49. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qecode.hh +56 -0
  50. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_parallel.cc +41 -0
  51. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_parallel.hh +43 -0
  52. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcop.cc +268 -0
  53. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcop.hh +56 -0
  54. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcsp.cc +163 -0
  55. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_qcsp.hh +63 -0
  56. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_unblockable.cc +423 -0
  57. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/qsolver_unblockable.hh +84 -0
  58. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/shortdesc.ac +1 -0
  59. data/ext/libgecode3/vendor/gecode-3.7.3/contribs/qecode/vartype.hh +31 -0
  60. data/ext/libgecode3/vendor/gecode-3.7.3/doxygen/doxygen.conf.in +1245 -0
  61. data/ext/libgecode3/vendor/gecode-3.7.3/doxygen/doxygen.hh.in +594 -0
  62. data/ext/libgecode3/vendor/gecode-3.7.3/examples/all-interval.cpp +136 -0
  63. data/ext/libgecode3/vendor/gecode-3.7.3/examples/alpha.cpp +151 -0
  64. data/ext/libgecode3/vendor/gecode-3.7.3/examples/bacp.cpp +596 -0
  65. data/ext/libgecode3/vendor/gecode-3.7.3/examples/bibd.cpp +182 -0
  66. data/ext/libgecode3/vendor/gecode-3.7.3/examples/bin-packing.cpp +25363 -0
  67. data/ext/libgecode3/vendor/gecode-3.7.3/examples/black-hole.cpp +413 -0
  68. data/ext/libgecode3/vendor/gecode-3.7.3/examples/car-sequencing.cpp +653 -0
  69. data/ext/libgecode3/vendor/gecode-3.7.3/examples/crew.cpp +269 -0
  70. data/ext/libgecode3/vendor/gecode-3.7.3/examples/crossword.cpp +3954 -0
  71. data/ext/libgecode3/vendor/gecode-3.7.3/examples/crowded-chess.cpp +424 -0
  72. data/ext/libgecode3/vendor/gecode-3.7.3/examples/dominating-queens.cpp +170 -0
  73. data/ext/libgecode3/vendor/gecode-3.7.3/examples/domino.cpp +346 -0
  74. data/ext/libgecode3/vendor/gecode-3.7.3/examples/donald.cpp +135 -0
  75. data/ext/libgecode3/vendor/gecode-3.7.3/examples/efpa.cpp +323 -0
  76. data/ext/libgecode3/vendor/gecode-3.7.3/examples/eq20.cpp +128 -0
  77. data/ext/libgecode3/vendor/gecode-3.7.3/examples/golf.cpp +190 -0
  78. data/ext/libgecode3/vendor/gecode-3.7.3/examples/golomb-ruler.cpp +157 -0
  79. data/ext/libgecode3/vendor/gecode-3.7.3/examples/graph-color.cpp +425 -0
  80. data/ext/libgecode3/vendor/gecode-3.7.3/examples/grocery.cpp +116 -0
  81. data/ext/libgecode3/vendor/gecode-3.7.3/examples/hamming.cpp +144 -0
  82. data/ext/libgecode3/vendor/gecode-3.7.3/examples/ind-set.cpp +144 -0
  83. data/ext/libgecode3/vendor/gecode-3.7.3/examples/kakuro.cpp +627 -0
  84. data/ext/libgecode3/vendor/gecode-3.7.3/examples/knights.cpp +430 -0
  85. data/ext/libgecode3/vendor/gecode-3.7.3/examples/langford-number.cpp +218 -0
  86. data/ext/libgecode3/vendor/gecode-3.7.3/examples/magic-sequence.cpp +133 -0
  87. data/ext/libgecode3/vendor/gecode-3.7.3/examples/magic-square.cpp +141 -0
  88. data/ext/libgecode3/vendor/gecode-3.7.3/examples/minesweeper.cpp +311 -0
  89. data/ext/libgecode3/vendor/gecode-3.7.3/examples/money.cpp +132 -0
  90. data/ext/libgecode3/vendor/gecode-3.7.3/examples/nonogram.cpp +1215 -0
  91. data/ext/libgecode3/vendor/gecode-3.7.3/examples/open-shop.cpp +412 -0
  92. data/ext/libgecode3/vendor/gecode-3.7.3/examples/ortho-latin.cpp +183 -0
  93. data/ext/libgecode3/vendor/gecode-3.7.3/examples/partition.cpp +145 -0
  94. data/ext/libgecode3/vendor/gecode-3.7.3/examples/pentominoes.cpp +952 -0
  95. data/ext/libgecode3/vendor/gecode-3.7.3/examples/perfect-square.cpp +317 -0
  96. data/ext/libgecode3/vendor/gecode-3.7.3/examples/photo.cpp +166 -0
  97. data/ext/libgecode3/vendor/gecode-3.7.3/examples/queen-armies.cpp +335 -0
  98. data/ext/libgecode3/vendor/gecode-3.7.3/examples/queens.cpp +214 -0
  99. data/ext/libgecode3/vendor/gecode-3.7.3/examples/radiotherapy.cpp +943 -0
  100. data/ext/libgecode3/vendor/gecode-3.7.3/examples/sat.cpp +260 -0
  101. data/ext/libgecode3/vendor/gecode-3.7.3/examples/schurs-lemma.cpp +142 -0
  102. data/ext/libgecode3/vendor/gecode-3.7.3/examples/scowl.hpp +14149 -0
  103. data/ext/libgecode3/vendor/gecode-3.7.3/examples/sports-league.cpp +353 -0
  104. data/ext/libgecode3/vendor/gecode-3.7.3/examples/steel-mill.cpp +654 -0
  105. data/ext/libgecode3/vendor/gecode-3.7.3/examples/steiner.cpp +170 -0
  106. data/ext/libgecode3/vendor/gecode-3.7.3/examples/sudoku.cpp +2294 -0
  107. data/ext/libgecode3/vendor/gecode-3.7.3/examples/tsp.cpp +339 -0
  108. data/ext/libgecode3/vendor/gecode-3.7.3/examples/warehouses.cpp +185 -0
  109. data/ext/libgecode3/vendor/gecode-3.7.3/examples/word-square.cpp +168 -0
  110. data/ext/libgecode3/vendor/gecode-3.7.3/gecode.m4 +1272 -0
  111. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver.hh +602 -0
  112. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/options.cpp +435 -0
  113. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/options.hpp +418 -0
  114. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/script.cpp +104 -0
  115. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/driver/script.hpp +388 -0
  116. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc.hh +417 -0
  117. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/CHANGES +63 -0
  118. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/ast.hh +492 -0
  119. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/conexpr.hh +82 -0
  120. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/myplugin.cpp +49 -0
  121. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/myplugin.hh +47 -0
  122. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/myplugin.pro +51 -0
  123. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/exampleplugin/test_myplugin.fzn +1 -0
  124. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/flatzinc.cpp +1056 -0
  125. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/lexer.lxx +137 -0
  126. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/lexer.yy.cpp +2458 -0
  127. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/all_different_int.mzn +37 -0
  128. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/all_equal_int.mzn +37 -0
  129. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/among.mzn +37 -0
  130. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_least_int.mzn +37 -0
  131. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_least_set.mzn +38 -0
  132. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_most_int.mzn +37 -0
  133. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/at_most_set.mzn +38 -0
  134. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/bin_packing.mzn +44 -0
  135. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/bin_packing_capa.mzn +45 -0
  136. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/bin_packing_load.mzn +45 -0
  137. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/circuit.mzn +40 -0
  138. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/count.mzn +37 -0
  139. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/cumulative.mzn +53 -0
  140. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/decreasing_bool.mzn +37 -0
  141. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/decreasing_int.mzn +37 -0
  142. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/diffn.mzn +44 -0
  143. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/disjoint.mzn +37 -0
  144. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/distribute.mzn +46 -0
  145. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/exactly_int.mzn +40 -0
  146. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/exactly_set.mzn +38 -0
  147. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/gecode.mzn +98 -0
  148. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality.mzn +43 -0
  149. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality_closed.mzn +39 -0
  150. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality_low_up.mzn +40 -0
  151. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/global_cardinality_low_up_closed.mzn +40 -0
  152. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/increasing_bool.mzn +37 -0
  153. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/increasing_int.mzn +37 -0
  154. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/int_set_channel.mzn +49 -0
  155. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/inverse.mzn +42 -0
  156. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/lex_less_int.mzn +42 -0
  157. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/lex_lesseq_int.mzn +42 -0
  158. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/link_set_to_booleans.mzn +47 -0
  159. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/maximum_int.mzn +37 -0
  160. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/member_bool.mzn +41 -0
  161. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/member_int.mzn +41 -0
  162. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/minimum_int.mzn +37 -0
  163. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/nvalue.mzn +37 -0
  164. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/partition_set.mzn +42 -0
  165. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/precedence.mzn +41 -0
  166. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/range.mzn +51 -0
  167. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/redefinitions.mzn +62 -0
  168. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/regular.mzn +38 -0
  169. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/roots.mzn +63 -0
  170. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/sort.mzn +37 -0
  171. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/sum_pred.mzn +42 -0
  172. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/table_bool.mzn +37 -0
  173. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/mznlib/table_int.mzn +37 -0
  174. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/option.hh +70 -0
  175. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.hh +265 -0
  176. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.tab.cpp +3571 -0
  177. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.tab.hh +164 -0
  178. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/parser.yxx +1604 -0
  179. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/plugin.hh +83 -0
  180. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/registry.cpp +1812 -0
  181. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/registry.hh +71 -0
  182. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/symboltable.hh +96 -0
  183. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/flatzinc/varspec.hh +163 -0
  184. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist.hh +298 -0
  185. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/drawingcursor.cpp +288 -0
  186. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/drawingcursor.hh +110 -0
  187. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/drawingcursor.hpp +84 -0
  188. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gecodelogo.cpp +673 -0
  189. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gecodelogo.hh +65 -0
  190. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gist.cpp +120 -0
  191. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/gist.hpp +207 -0
  192. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/layoutcursor.hh +69 -0
  193. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/layoutcursor.hpp +70 -0
  194. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/mainwindow.cpp +341 -0
  195. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/mainwindow.hh +129 -0
  196. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/node.cpp +82 -0
  197. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/node.hh +160 -0
  198. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/node.hpp +210 -0
  199. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodecursor.hh +215 -0
  200. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodecursor.hpp +271 -0
  201. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodestats.cpp +138 -0
  202. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodestats.hh +81 -0
  203. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodevisitor.hh +96 -0
  204. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodevisitor.hpp +126 -0
  205. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodewidget.cpp +90 -0
  206. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/nodewidget.hh +59 -0
  207. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/preferences.cpp +190 -0
  208. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/preferences.hh +96 -0
  209. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/qtgist.cpp +809 -0
  210. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/qtgist.hh +294 -0
  211. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/spacenode.cpp +369 -0
  212. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/spacenode.hh +221 -0
  213. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/spacenode.hpp +191 -0
  214. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/standalone-example/mygist.cpp +80 -0
  215. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/standalone-example/standalone_example.pro +18 -0
  216. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/stopbrancher.cpp +90 -0
  217. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/stopbrancher.hh +82 -0
  218. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/textoutput.cpp +175 -0
  219. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/textoutput.hh +75 -0
  220. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/treecanvas.cpp +1430 -0
  221. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/treecanvas.hh +369 -0
  222. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/visualnode.cpp +473 -0
  223. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/visualnode.hh +237 -0
  224. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/visualnode.hpp +220 -0
  225. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/gist/zoomToFitIcon.hpp +114 -0
  226. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int.hh +3477 -0
  227. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic.cpp +185 -0
  228. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic.hh +666 -0
  229. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/abs.hpp +236 -0
  230. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/divmod.hpp +350 -0
  231. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/max.hpp +398 -0
  232. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/mult.hpp +750 -0
  233. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/sqr.hpp +377 -0
  234. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/arithmetic/sqrt.hpp +217 -0
  235. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/array-traits.hpp +147 -0
  236. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/array.cpp +113 -0
  237. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/array.hpp +111 -0
  238. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing.cpp +71 -0
  239. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing.hh +184 -0
  240. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing/propagate.cpp +388 -0
  241. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bin-packing/propagate.hpp +219 -0
  242. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool.cpp +755 -0
  243. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool.hh +581 -0
  244. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/base.hpp +137 -0
  245. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/clause.hpp +353 -0
  246. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/eq.hpp +196 -0
  247. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/eqv.cpp +104 -0
  248. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/eqv.hpp +202 -0
  249. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/lq.hpp +241 -0
  250. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/bool/or.hpp +850 -0
  251. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch.cpp +152 -0
  252. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch.hh +607 -0
  253. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-val-bool.hpp +81 -0
  254. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-val-int.hpp +107 -0
  255. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-bool.bs +121 -0
  256. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-bool.cpp +438 -0
  257. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-int.bs +121 -0
  258. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/post-view-int.cpp +438 -0
  259. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/select-val.hpp +229 -0
  260. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/select-values.hpp +213 -0
  261. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/branch/select-view.hpp +364 -0
  262. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel.cpp +172 -0
  263. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel.hh +249 -0
  264. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/base.hpp +78 -0
  265. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/dom.hpp +332 -0
  266. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-multi.cpp +241 -0
  267. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-multi.hpp +84 -0
  268. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-single.cpp +77 -0
  269. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/link-single.hpp +71 -0
  270. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/channel/val.hpp +256 -0
  271. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit.cpp +229 -0
  272. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit.hh +160 -0
  273. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit/base.hpp +270 -0
  274. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit/dom.hpp +128 -0
  275. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/circuit/val.hpp +105 -0
  276. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count.cpp +417 -0
  277. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count.hh +410 -0
  278. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-base.hpp +80 -0
  279. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-eq.hpp +143 -0
  280. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-gq.hpp +137 -0
  281. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/int-lq.hpp +136 -0
  282. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/rel.hpp +281 -0
  283. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-base.hpp +131 -0
  284. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-eq.hpp +117 -0
  285. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-gq.hpp +109 -0
  286. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/count/view-lq.hpp +96 -0
  287. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative.cpp +432 -0
  288. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative.hh +745 -0
  289. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/basic.hpp +211 -0
  290. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/edge-finding.hpp +185 -0
  291. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/man-prop.hpp +127 -0
  292. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/opt-prop.hpp +171 -0
  293. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/overload.hpp +63 -0
  294. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/task-view.hpp +84 -0
  295. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/task.hpp +256 -0
  296. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulative/tree.hpp +272 -0
  297. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulatives.cpp +187 -0
  298. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulatives.hh +133 -0
  299. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/cumulatives/val.hpp +380 -0
  300. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct.cpp +97 -0
  301. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct.hh +314 -0
  302. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/bnd.hpp +444 -0
  303. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/dom-ctrl.hpp +81 -0
  304. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/dom.hpp +123 -0
  305. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/graph.hpp +266 -0
  306. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/ter-dom.hpp +113 -0
  307. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/distinct/val.hpp +185 -0
  308. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom.cpp +135 -0
  309. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom.hh +118 -0
  310. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom/range.hpp +105 -0
  311. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/dom/spec.hpp +124 -0
  312. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element.cpp +190 -0
  313. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element.hh +384 -0
  314. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/int.hpp +443 -0
  315. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/pair.cpp +151 -0
  316. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/pair.hpp +74 -0
  317. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/element/view.hpp +559 -0
  318. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exception.hpp +196 -0
  319. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec.cpp +83 -0
  320. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec.hh +87 -0
  321. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec/when.cpp +77 -0
  322. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/exec/when.hpp +51 -0
  323. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional.cpp +124 -0
  324. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional.hh +508 -0
  325. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/base.hpp +163 -0
  326. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/basic.hpp +148 -0
  327. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/dfa.cpp +535 -0
  328. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/dfa.hpp +282 -0
  329. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/incremental.hpp +454 -0
  330. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/layered-graph.hpp +982 -0
  331. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/tuple-set.cpp +222 -0
  332. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/extensional/tuple-set.hpp +184 -0
  333. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc.cpp +172 -0
  334. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc.hh +268 -0
  335. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/bnd-sup.hpp +608 -0
  336. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/bnd.hpp +829 -0
  337. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/dom-sup.hpp +1777 -0
  338. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/dom.hpp +315 -0
  339. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/post.hpp +169 -0
  340. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/val.hpp +299 -0
  341. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/gcc/view.hpp +410 -0
  342. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/int-set-1.hpp +249 -0
  343. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/int-set-2.hpp +51 -0
  344. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/int-set.cpp +167 -0
  345. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/limits.hpp +94 -0
  346. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear-bool.cpp +196 -0
  347. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear-int.cpp +194 -0
  348. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear.hh +1560 -0
  349. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-int.hpp +743 -0
  350. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-post.cpp +602 -0
  351. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-scale.hpp +695 -0
  352. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/bool-view.hpp +319 -0
  353. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-bin.hpp +439 -0
  354. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-dom.hpp +484 -0
  355. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-nary.hpp +864 -0
  356. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-noview.hpp +251 -0
  357. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-post.cpp +561 -0
  358. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/int-ter.hpp +273 -0
  359. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/linear/post.hpp +152 -0
  360. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member.cpp +85 -0
  361. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member.hh +125 -0
  362. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member/prop.hpp +175 -0
  363. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/member/re-prop.hpp +178 -0
  364. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap.cpp +226 -0
  365. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap.hh +318 -0
  366. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/base.hpp +88 -0
  367. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/box.hpp +198 -0
  368. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/dim.hpp +197 -0
  369. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/man.hpp +119 -0
  370. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/no-overlap/opt.hpp +153 -0
  371. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues.cpp +244 -0
  372. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues.hh +429 -0
  373. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-base.hpp +98 -0
  374. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-eq.hpp +174 -0
  375. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-gq.hpp +149 -0
  376. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/bool-lq.hpp +151 -0
  377. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/graph.hpp +283 -0
  378. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-base.hpp +347 -0
  379. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-eq.hpp +167 -0
  380. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-gq.hpp +130 -0
  381. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/int-lq.hpp +154 -0
  382. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/range-event.hpp +51 -0
  383. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/nvalues/sym-bit-matrix.hpp +69 -0
  384. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/precede.cpp +73 -0
  385. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/precede.hh +113 -0
  386. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/precede/single.hpp +232 -0
  387. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/propagator.hpp +311 -0
  388. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel.cpp +381 -0
  389. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel.hh +665 -0
  390. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/eq.hpp +676 -0
  391. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/lex.hpp +414 -0
  392. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/lq-le.hpp +537 -0
  393. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/rel/nq.hpp +196 -0
  394. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence.cpp +197 -0
  395. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence.hh +154 -0
  396. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/int.hpp +168 -0
  397. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/set-op.hpp +154 -0
  398. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/view.hpp +499 -0
  399. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sequence/violations.hpp +101 -0
  400. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted.cpp +82 -0
  401. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted.hh +107 -0
  402. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/matching.hpp +173 -0
  403. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/narrowing.hpp +250 -0
  404. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/order.hpp +213 -0
  405. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/propagate.hpp +646 -0
  406. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/sorted/sortsup.hpp +564 -0
  407. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/support-values.hh +154 -0
  408. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/support-values.hpp +187 -0
  409. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task.hh +454 -0
  410. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/array.hpp +179 -0
  411. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/fwd-to-bwd.hpp +102 -0
  412. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/iter.hpp +92 -0
  413. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/man-to-opt.hpp +100 -0
  414. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/prop.hpp +70 -0
  415. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/purge.hpp +74 -0
  416. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/sort.hpp +234 -0
  417. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/task/tree.hpp +189 -0
  418. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary.cpp +258 -0
  419. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary.hh +839 -0
  420. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/detectable.hpp +116 -0
  421. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/edge-finding.hpp +78 -0
  422. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/man-prop.hpp +78 -0
  423. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/not-first-not-last.hpp +133 -0
  424. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/opt-prop.hpp +116 -0
  425. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/overload.hpp +93 -0
  426. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/subsumption.hpp +55 -0
  427. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/task-view.hpp +105 -0
  428. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/task.hpp +532 -0
  429. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unary/tree.hpp +229 -0
  430. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/unshare.cpp +146 -0
  431. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/val-set.hh +118 -0
  432. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/val-set.hpp +186 -0
  433. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp.hpp +710 -0
  434. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/bool.cpp +65 -0
  435. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/bool.hpp +431 -0
  436. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/bool.vis +75 -0
  437. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/delta.hpp +64 -0
  438. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/int.cpp +361 -0
  439. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/int.hpp +1029 -0
  440. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var-imp/int.vis +117 -0
  441. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/bool.cpp +53 -0
  442. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/bool.hpp +121 -0
  443. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/int.cpp +61 -0
  444. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/int.hpp +145 -0
  445. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/var/print.hpp +56 -0
  446. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph.hh +334 -0
  447. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/bi-link.hpp +89 -0
  448. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/comb-ptr-flag.hpp +78 -0
  449. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/edge.hpp +124 -0
  450. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/graph.hpp +202 -0
  451. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/iter-prune-val.hpp +70 -0
  452. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view-val-graph/node.hpp +171 -0
  453. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view.hpp +1690 -0
  454. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/bool-test.hpp +64 -0
  455. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/bool.hpp +314 -0
  456. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/cached.hpp +402 -0
  457. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/constint.hpp +324 -0
  458. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/int.hpp +264 -0
  459. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/iter.hpp +65 -0
  460. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/minus.hpp +300 -0
  461. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/neg-bool.hpp +177 -0
  462. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/offset.hpp +303 -0
  463. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/print.hpp +162 -0
  464. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/rel-test.hpp +231 -0
  465. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/scale.hpp +368 -0
  466. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/int/view/zero.hpp +305 -0
  467. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter.hh +96 -0
  468. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-add.hpp +144 -0
  469. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-append.hpp +222 -0
  470. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-array.hpp +139 -0
  471. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-cache.hpp +106 -0
  472. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-compl.hpp +220 -0
  473. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-diff.hpp +142 -0
  474. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-empty.hpp +111 -0
  475. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-inter.hpp +309 -0
  476. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-list.hpp +263 -0
  477. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-map.hpp +260 -0
  478. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-minmax.hpp +118 -0
  479. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-minus.hpp +107 -0
  480. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-negative.hpp +137 -0
  481. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-offset.hpp +127 -0
  482. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-operations.hpp +157 -0
  483. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-positive.hpp +139 -0
  484. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-rangelist.hpp +115 -0
  485. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-scale.hpp +238 -0
  486. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-singleton-append.hpp +111 -0
  487. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-singleton.hpp +86 -0
  488. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-size.hpp +146 -0
  489. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-union.hpp +361 -0
  490. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/ranges-values.hpp +140 -0
  491. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-array.hpp +120 -0
  492. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-bitset.hpp +114 -0
  493. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-inter.hpp +130 -0
  494. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-list.hpp +186 -0
  495. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-map.hpp +136 -0
  496. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-minus.hpp +105 -0
  497. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-negative.hpp +116 -0
  498. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-offset.hpp +113 -0
  499. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-positive.hpp +123 -0
  500. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-ranges.hpp +106 -0
  501. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-singleton.hpp +109 -0
  502. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-union.hpp +137 -0
  503. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/iter/values-unique.hpp +118 -0
  504. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel.hh +194 -0
  505. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/advisor.hpp +102 -0
  506. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/allocators.hpp +476 -0
  507. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/archive.cpp +70 -0
  508. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/archive.hpp +298 -0
  509. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/array.hpp +2133 -0
  510. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/branch.cpp +121 -0
  511. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/branch.hpp +254 -0
  512. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher-tiebreak.hpp +615 -0
  513. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher-val.hpp +126 -0
  514. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher-view.hpp +455 -0
  515. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/brancher.hpp +431 -0
  516. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/core.cpp +563 -0
  517. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/core.hpp +3668 -0
  518. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/exception.hpp +124 -0
  519. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/global-prop-info.hpp +258 -0
  520. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/macros.hpp +118 -0
  521. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/memory-config.hpp +154 -0
  522. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/memory-manager.cpp +53 -0
  523. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/memory-manager.hpp +511 -0
  524. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/modevent.hpp +69 -0
  525. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/propagator.hpp +699 -0
  526. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/range-list.hpp +184 -0
  527. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/region.cpp +85 -0
  528. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/region.hpp +459 -0
  529. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/shared-array.hpp +345 -0
  530. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/var-imp.hpp +332 -0
  531. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/var-type.hpp +767 -0
  532. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/var.hpp +144 -0
  533. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/view.hpp +715 -0
  534. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/kernel/wait.hh +244 -0
  535. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel.hh +1870 -0
  536. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/arithmetic.cpp +408 -0
  537. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/bool-expr.cpp +522 -0
  538. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/bool-expr.hpp +87 -0
  539. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/exception.hpp +84 -0
  540. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-expr.cpp +594 -0
  541. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-expr.hpp +297 -0
  542. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-rel.cpp +414 -0
  543. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/lin-rel.hpp +85 -0
  544. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/matrix.hpp +247 -0
  545. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/optimize.hpp +62 -0
  546. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/reg.cpp +817 -0
  547. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/reg.hpp +94 -0
  548. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-expr.cpp +704 -0
  549. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-expr.hpp +96 -0
  550. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-rel.cpp +81 -0
  551. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/minimodel/set-rel.hpp +84 -0
  552. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search.hh +458 -0
  553. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/bab.cpp +62 -0
  554. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/bab.hpp +91 -0
  555. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/dfs.cpp +62 -0
  556. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/dfs.hpp +84 -0
  557. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/options.cpp +72 -0
  558. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/options.hpp +49 -0
  559. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/bab.cpp +178 -0
  560. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/bab.hh +203 -0
  561. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/dfs.cpp +176 -0
  562. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/dfs.hh +195 -0
  563. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/engine.cpp +118 -0
  564. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/engine.hh +418 -0
  565. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/path.hh +477 -0
  566. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/restart.cpp +167 -0
  567. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/parallel/restart.hh +73 -0
  568. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/restart.cpp +62 -0
  569. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/restart.hpp +88 -0
  570. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/bab.hh +177 -0
  571. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/dfs.hh +176 -0
  572. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/path.hh +411 -0
  573. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/sequential/restart.hh +89 -0
  574. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/statistics.hpp +70 -0
  575. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/stop.cpp +83 -0
  576. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/stop.hpp +137 -0
  577. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/support.hh +91 -0
  578. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/search/worker.hh +202 -0
  579. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set.hh +1144 -0
  580. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/array-traits.hpp +86 -0
  581. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/array.cpp +219 -0
  582. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/array.hpp +64 -0
  583. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch.cpp +128 -0
  584. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch.hh +438 -0
  585. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/post-val.hpp +107 -0
  586. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/post-view.bs +109 -0
  587. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/post-view.cpp +370 -0
  588. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/select-val.hpp +204 -0
  589. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/branch/select-view.hpp +306 -0
  590. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/cardinality.cpp +65 -0
  591. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex.cpp +60 -0
  592. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex.hh +107 -0
  593. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/conv.cpp +97 -0
  594. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/conv.hpp +67 -0
  595. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/hull.cpp +116 -0
  596. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/convex/hull.hpp +68 -0
  597. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct.cpp +56 -0
  598. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct.hh +79 -0
  599. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct/atmostOne.cpp +162 -0
  600. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/distinct/atmostOne.hpp +66 -0
  601. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/dom.cpp +300 -0
  602. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element.cpp +255 -0
  603. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element.hh +218 -0
  604. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/disjoint.hpp +324 -0
  605. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/inter.hpp +308 -0
  606. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/union.hpp +342 -0
  607. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/element/unionConst.hpp +293 -0
  608. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/exception.hpp +146 -0
  609. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/exec.cpp +58 -0
  610. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int.cpp +191 -0
  611. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int.hh +459 -0
  612. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/card.hpp +93 -0
  613. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/channel-bool.hpp +282 -0
  614. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/channel-int.hpp +158 -0
  615. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/match.hpp +199 -0
  616. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/minmax.hpp +645 -0
  617. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/int/weights.hpp +353 -0
  618. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/limits.hpp +62 -0
  619. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/precede.cpp +74 -0
  620. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/precede.hh +115 -0
  621. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/precede/single.hpp +255 -0
  622. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-cvc.cpp +66 -0
  623. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-cvv.cpp +65 -0
  624. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-vcc.cpp +168 -0
  625. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-vcv.cpp +166 -0
  626. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-const-vvc.cpp +63 -0
  627. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-singleton.cpp +115 -0
  628. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op-ternary.cpp +60 -0
  629. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op.cpp +105 -0
  630. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op.hh +297 -0
  631. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/common.hpp +619 -0
  632. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/inter.hpp +389 -0
  633. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/partition.hpp +164 -0
  634. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl-cvc.cpp +58 -0
  635. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl-cvv.cpp +54 -0
  636. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl-vvc.cpp +57 -0
  637. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-compl.cpp +54 -0
  638. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl-cvc.cpp +55 -0
  639. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl-cvv.cpp +54 -0
  640. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl-vvc.cpp +54 -0
  641. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post-nocompl.cpp +54 -0
  642. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/post.hpp +266 -0
  643. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/subofunion.hpp +166 -0
  644. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/superofinter.hpp +167 -0
  645. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel-op/union.hpp +319 -0
  646. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel.cpp +232 -0
  647. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel.hh +322 -0
  648. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/common.hpp +125 -0
  649. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/eq.hpp +116 -0
  650. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/lq.hpp +417 -0
  651. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/nosubset.hpp +104 -0
  652. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/nq.hpp +160 -0
  653. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/re-eq.hpp +152 -0
  654. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/re-lq.hpp +182 -0
  655. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/re-subset.hpp +146 -0
  656. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/rel/subset.hpp +96 -0
  657. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence.cpp +64 -0
  658. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence.hh +115 -0
  659. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/common.hpp +100 -0
  660. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq-u.cpp +145 -0
  661. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq-u.hpp +79 -0
  662. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq.cpp +76 -0
  663. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/sequence/seq.hpp +69 -0
  664. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp.hpp +634 -0
  665. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/delta.hpp +78 -0
  666. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/integerset.cpp +348 -0
  667. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/integerset.hpp +426 -0
  668. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/iter.hpp +63 -0
  669. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/set.cpp +142 -0
  670. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/set.hpp +531 -0
  671. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var-imp/set.vis +197 -0
  672. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var/print.hpp +49 -0
  673. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var/set.cpp +111 -0
  674. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/var/set.hpp +254 -0
  675. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view.hpp +1142 -0
  676. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/cached.hpp +399 -0
  677. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/complement.hpp +556 -0
  678. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/const.hpp +723 -0
  679. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/print.hpp +140 -0
  680. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/set.hpp +263 -0
  681. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/set/view/singleton.hpp +402 -0
  682. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support.hh +135 -0
  683. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/auto-link.hpp +73 -0
  684. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/bitset-base.hpp +379 -0
  685. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/bitset.hpp +81 -0
  686. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/block-allocator.hpp +169 -0
  687. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/cast.hpp +52 -0
  688. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/config.hpp.in +109 -0
  689. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/dynamic-array.hpp +140 -0
  690. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/dynamic-queue.hpp +156 -0
  691. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/dynamic-stack.hpp +186 -0
  692. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/exception.cpp +65 -0
  693. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/exception.hpp +102 -0
  694. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/heap.cpp +49 -0
  695. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/heap.hpp +593 -0
  696. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/int-type.hpp +172 -0
  697. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/macros.hpp +103 -0
  698. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/marked-pointer.hpp +79 -0
  699. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/random.hpp +128 -0
  700. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/sort.hpp +268 -0
  701. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/static-stack.hpp +148 -0
  702. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread.hpp +272 -0
  703. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/none.hpp +87 -0
  704. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/pthreads.cpp +66 -0
  705. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/pthreads.hpp +142 -0
  706. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/thread.cpp +72 -0
  707. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/thread.hpp +114 -0
  708. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/windows.cpp +68 -0
  709. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/thread/windows.hpp +108 -0
  710. data/ext/libgecode3/vendor/gecode-3.7.3/gecode/support/timer.hpp +103 -0
  711. data/ext/libgecode3/vendor/gecode-3.7.3/install-sh +323 -0
  712. data/ext/libgecode3/vendor/gecode-3.7.3/misc/allexamples.perl +60 -0
  713. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/back.png +0 -0
  714. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/footer.html +3 -0
  715. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/gecode-logo-100.png +0 -0
  716. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/header.html +66 -0
  717. data/ext/libgecode3/vendor/gecode-3.7.3/misc/doxygen/stylesheet.css +468 -0
  718. data/ext/libgecode3/vendor/gecode-3.7.3/misc/fixautoheader.perl +55 -0
  719. data/ext/libgecode3/vendor/gecode-3.7.3/misc/fixmanifest.perl +84 -0
  720. data/ext/libgecode3/vendor/gecode-3.7.3/misc/fixproperties.sh +98 -0
  721. data/ext/libgecode3/vendor/gecode-3.7.3/misc/gecode-logo.ico +0 -0
  722. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genbranch.perl +310 -0
  723. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genchangelog.perl +249 -0
  724. data/ext/libgecode3/vendor/gecode-3.7.3/misc/gencurrentchangelog.perl +191 -0
  725. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genlcovmakefile.perl +148 -0
  726. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genlicense.perl +121 -0
  727. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genrc.perl +236 -0
  728. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genstatistics.perl +178 -0
  729. data/ext/libgecode3/vendor/gecode-3.7.3/misc/gentxtchangelog.perl +198 -0
  730. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genvarimp.perl +877 -0
  731. data/ext/libgecode3/vendor/gecode-3.7.3/misc/genxcodeproj.perl +144 -0
  732. data/ext/libgecode3/vendor/gecode-3.7.3/misc/getrevision.perl +47 -0
  733. data/ext/libgecode3/vendor/gecode-3.7.3/misc/makedepend.perl +85 -0
  734. data/ext/libgecode3/vendor/gecode-3.7.3/misc/svn-ignore-root.txt +43 -0
  735. data/ext/libgecode3/vendor/gecode-3.7.3/misc/svn-ignore.txt +18 -0
  736. data/ext/libgecode3/vendor/gecode-3.7.3/test/afc.cpp +143 -0
  737. data/ext/libgecode3/vendor/gecode-3.7.3/test/array.cpp +277 -0
  738. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign.cpp +278 -0
  739. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign.hh +119 -0
  740. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign/bool.cpp +61 -0
  741. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign/int.cpp +70 -0
  742. data/ext/libgecode3/vendor/gecode-3.7.3/test/assign/set.cpp +72 -0
  743. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch.cpp +504 -0
  744. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch.hh +119 -0
  745. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch/bool.cpp +61 -0
  746. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch/int.cpp +70 -0
  747. data/ext/libgecode3/vendor/gecode-3.7.3/test/branch/set.cpp +72 -0
  748. data/ext/libgecode3/vendor/gecode-3.7.3/test/int.cpp +655 -0
  749. data/ext/libgecode3/vendor/gecode-3.7.3/test/int.hh +353 -0
  750. data/ext/libgecode3/vendor/gecode-3.7.3/test/int.hpp +314 -0
  751. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/arithmetic.cpp +772 -0
  752. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/basic.cpp +82 -0
  753. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/bin-packing.cpp +237 -0
  754. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/bool.cpp +500 -0
  755. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/channel.cpp +234 -0
  756. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/circuit.cpp +359 -0
  757. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/count.cpp +410 -0
  758. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/cumulative.cpp +560 -0
  759. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/cumulatives.cpp +276 -0
  760. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/distinct.cpp +248 -0
  761. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/dom.cpp +174 -0
  762. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/element.cpp +602 -0
  763. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/exec.cpp +150 -0
  764. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/extensional.cpp +571 -0
  765. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/gcc.cpp +320 -0
  766. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/linear.cpp +394 -0
  767. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/member.cpp +138 -0
  768. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-arithmetic.cpp +368 -0
  769. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-bool.cpp +4344 -0
  770. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-count.cpp +295 -0
  771. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-lin.cpp +2179 -0
  772. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/mm-rel.cpp +136 -0
  773. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/no-overlap.cpp +259 -0
  774. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/nvalues.cpp +241 -0
  775. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/precede.cpp +115 -0
  776. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/rel.cpp +568 -0
  777. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/sequence.cpp +168 -0
  778. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/sorted.cpp +165 -0
  779. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/unary.cpp +327 -0
  780. data/ext/libgecode3/vendor/gecode-3.7.3/test/int/unshare.cpp +109 -0
  781. data/ext/libgecode3/vendor/gecode-3.7.3/test/search.cpp +487 -0
  782. data/ext/libgecode3/vendor/gecode-3.7.3/test/set.cpp +638 -0
  783. data/ext/libgecode3/vendor/gecode-3.7.3/test/set.hh +362 -0
  784. data/ext/libgecode3/vendor/gecode-3.7.3/test/set.hpp +121 -0
  785. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/construct.cpp +225 -0
  786. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/convex.cpp +139 -0
  787. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/distinct.cpp +116 -0
  788. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/dom.cpp +346 -0
  789. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/element.cpp +397 -0
  790. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/exec.cpp +86 -0
  791. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/int.cpp +532 -0
  792. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/mm-set.cpp +4532 -0
  793. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/precede.cpp +136 -0
  794. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/rel-op-const.cpp +368 -0
  795. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/rel-op.cpp +504 -0
  796. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/rel.cpp +157 -0
  797. data/ext/libgecode3/vendor/gecode-3.7.3/test/set/sequence.cpp +133 -0
  798. data/ext/libgecode3/vendor/gecode-3.7.3/test/test.cpp +281 -0
  799. data/ext/libgecode3/vendor/gecode-3.7.3/test/test.hh +161 -0
  800. data/ext/libgecode3/vendor/gecode-3.7.3/test/test.hpp +76 -0
  801. data/ext/libgecode3/vendor/gecode-3.7.3/tools/flatzinc/fz.cpp +93 -0
  802. data/ext/libgecode3/vendor/gecode-3.7.3/tools/flatzinc/mzn-gecode.bat.in +41 -0
  803. data/ext/libgecode3/vendor/gecode-3.7.3/tools/flatzinc/mzn-gecode.in +41 -0
  804. data/lib/dep-selector-libgecode.rb +15 -0
  805. data/lib/dep-selector-libgecode/version.rb +3 -0
  806. metadata +878 -0
@@ -0,0 +1,168 @@
1
+ /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Main authors:
4
+ * H�kan Kjellerstrand <hakank@bonetmail.com>
5
+ * Mikael Lagerkvist <lagerkvist@gecode.org>
6
+ * Christian Schulte <schulte@gecode.org>
7
+ *
8
+ * Copyright:
9
+ * H�kan Kjellerstrand, 2009
10
+ * Mikael Lagerkvist, 2009
11
+ * Christian Schulte, 2009
12
+ *
13
+ * Last modified:
14
+ * $Date: 2010-10-07 20:52:01 +1100 (Thu, 07 Oct 2010) $ by $Author: schulte $
15
+ * $Revision: 11473 $
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 <gecode/driver.hh>
43
+
44
+ #include <gecode/int.hh>
45
+ #include <gecode/minimodel.hh>
46
+
47
+ #include "examples/scowl.hpp"
48
+
49
+ using namespace Gecode;
50
+
51
+ /**
52
+ * \brief %Example: Word-square puzzle
53
+ *
54
+ * From http://en.wikipedia.org/wiki/Word_square:
55
+ * A word square is a special case of acrostic. It consists of a set of words,
56
+ * all having the same number of letters as the total number of words (the
57
+ * "order" of the square); when the words are written out in a square grid
58
+ * horizontally, the same set of words can be read vertically.
59
+ *
60
+ * \ingroup Example
61
+ *
62
+ */
63
+ class WordSquare : public Script {
64
+ protected:
65
+ /// Length of words
66
+ const int w_l;
67
+ /// The array of letters
68
+ IntVarArray letters;
69
+ public:
70
+ /// Branching variants
71
+ enum {
72
+ BRANCH_WORDS, ///< Branch on word variables
73
+ BRANCH_LETTERS, ///< Branch on letter variables
74
+ };
75
+ /// Actual model
76
+ WordSquare(const SizeOptions& opt)
77
+ : w_l(opt.size()), letters(*this, w_l*w_l) {
78
+
79
+ // Initialize letters
80
+ Matrix<IntVarArray> ml(letters, w_l, w_l);
81
+ for (int i=0; i<w_l; i++)
82
+ for (int j=i; j<w_l; j++)
83
+ ml(i,j) = ml(j,i) = IntVar(*this, 'a','z');
84
+
85
+ // Number of words with that length
86
+ const int n_w = dict.words(w_l);
87
+
88
+ // Initialize word array
89
+ IntVarArgs words(*this, w_l, 0, n_w-1);
90
+
91
+ // All words must be different
92
+ distinct(*this, words);
93
+
94
+ // Link words with letters
95
+ for (int i=0; i<w_l; i++) {
96
+ // Map each word to i-th letter in that word
97
+ IntSharedArray w2l(n_w);
98
+ for (int n=n_w; n--; )
99
+ w2l[n]=dict.word(w_l,n)[i];
100
+ for (int j=0; j<w_l; j++)
101
+ element(*this, w2l, words[j], ml(i,j));
102
+ }
103
+
104
+ // Symmetry breaking: the last word must be later in the wordlist
105
+ rel(*this, words[0], IRT_LE, words[w_l-1]);
106
+
107
+ switch (opt.branching()) {
108
+ case BRANCH_WORDS:
109
+ // Branch by assigning words
110
+ branch(*this, words, INT_VAR_SIZE_MIN, INT_VAL_SPLIT_MIN);
111
+ break;
112
+ case BRANCH_LETTERS:
113
+ // Branch by assigning letters
114
+ branch(*this, letters, INT_VAR_SIZE_AFC_MIN, INT_VAL_MIN);
115
+ break;
116
+ }
117
+ }
118
+ /// Constructor for cloning \a s
119
+ WordSquare(bool share, WordSquare& s)
120
+ : Script(share,s), w_l(s.w_l) {
121
+ letters.update(*this, share, s.letters);
122
+ }
123
+ /// Copy during cloning
124
+ virtual Space*
125
+ copy(bool share) {
126
+ return new WordSquare(share,*this);
127
+ }
128
+ /// Print solution
129
+ virtual void
130
+ print(std::ostream& os) const {
131
+ Matrix<IntVarArray> ml(letters, w_l, w_l);
132
+ for (int i=0; i<w_l; i++) {
133
+ os << "\t\t";
134
+ for (int j=0; j<w_l; j++)
135
+ if (ml(i,j).assigned()) {
136
+ os << static_cast<char>(ml(i,j).val());
137
+ } else {
138
+ os << ".";
139
+ }
140
+ os << std::endl;
141
+ }
142
+ os << std::endl;
143
+ }
144
+ };
145
+
146
+
147
+ /** \brief Main-function
148
+ * \relates WordSquare
149
+ */
150
+ int
151
+ main(int argc, char* argv[]) {
152
+ FileSizeOptions opt("WordSquare");
153
+ opt.size(6);
154
+ opt.branching(WordSquare::BRANCH_LETTERS);
155
+ opt.branching(WordSquare::BRANCH_WORDS, "words");
156
+ opt.branching(WordSquare::BRANCH_LETTERS, "letters");
157
+ opt.parse(argc,argv);
158
+ dict.init(opt.file());
159
+ if (opt.size() > static_cast<unsigned int>(dict.len())) {
160
+ std::cerr << "Error: size must be between 0 and "
161
+ << dict.len() << std::endl;
162
+ return 1;
163
+ }
164
+ Script::run<WordSquare,DFS,SizeOptions>(opt);
165
+ return 0;
166
+ }
167
+
168
+ // STATISTICS: example-any
@@ -0,0 +1,1272 @@
1
+ dnl
2
+ dnl Main authors:
3
+ dnl Guido Tack <tack@gecode.org>
4
+ dnl
5
+ dnl Copyright:
6
+ dnl Guido Tack, 2004, 2005
7
+ dnl
8
+ dnl Last modified:
9
+ dnl $Date: 2012-03-22 12:42:32 +1100 (Thu, 22 Mar 2012) $
10
+ dnl by $Author: tack $
11
+ dnl $Revision: 12614 $
12
+ dnl
13
+ dnl This file is part of Gecode, the generic constraint
14
+ dnl development environment:
15
+ dnl http://www.gecode.org
16
+ dnl
17
+ dnl Permission is hereby granted, free of charge, to any person obtaining
18
+ dnl a copy of this software and associated documentation files (the
19
+ dnl "Software"), to deal in the Software without restriction, including
20
+ dnl without limitation the rights to use, copy, modify, merge, publish,
21
+ dnl distribute, sublicense, and/or sell copies of the Software, and to
22
+ dnl permit persons to whom the Software is furnished to do so, subject to
23
+ dnl the following conditions:
24
+ dnl
25
+ dnl The above copyright notice and this permission notice shall be
26
+ dnl included in all copies or substantial portions of the Software.
27
+ dnl
28
+ dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29
+ dnl EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30
+ dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31
+ dnl NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32
+ dnl LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33
+ dnl OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34
+ dnl WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
+ dnl
36
+ dnl
37
+
38
+ AC_DEFUN([AC_GECODE_GET_OS],
39
+ [AC_ARG_WITH([host-os],
40
+ AC_HELP_STRING([--with-host-os],
41
+ [Override operating system test. Valid values are Linux, Darwin, FreeBSD, NetBSD, and Windows.]))
42
+ AC_MSG_CHECKING([for the host operating system])
43
+ if test "${with_host_os:-no}" = "no"; then
44
+ guess_host_os=$(uname -s 2>/dev/null)
45
+ else
46
+ guess_host_os=${with_host_os}
47
+ fi
48
+ dnl Try to find out operating system
49
+ case ${guess_host_os} in
50
+ GNU/kFreeBSD|*inux*|FreeBSD|NetBSD)
51
+ host_os=linux
52
+ AC_MSG_RESULT([Linux])
53
+ ;;
54
+ *arwin*)
55
+ host_os=darwin
56
+ AC_MSG_RESULT([Darwin])
57
+ ;;
58
+ CYGWIN*|*indows*)
59
+ host_os=windows
60
+ AC_MSG_RESULT([Windows])
61
+ ;;
62
+ *)
63
+ AC_MSG_ERROR([Host OS not supported.])
64
+ ;;
65
+ esac])
66
+
67
+ dnl Macros:
68
+ dnl AC_GECODE_ADD_TO_CXXFLAGS ([FLAG...])
69
+ dnl AC_GECODE_ADD_TO_GLDFLAGS ([FLAG...])
70
+ dnl
71
+ dnl Description:
72
+ dnl Add the flags to the corresponding variables
73
+ dnl
74
+ dnl Author:
75
+ dnl Marco Kuhlmann <kuhlmann@ps.uni-sb.de>
76
+ dnl
77
+ AC_DEFUN([AC_GECODE_ADD_TO_CXXFLAGS],
78
+ [CXXFLAGS="$1${CXXFLAGS:+ }${CXXFLAGS}"])
79
+ AC_DEFUN([AC_GECODE_ADD_TO_COMPILERFLAGS],
80
+ [CFLAGS="$1${CFLAGS:+ }${CFLAGS}"
81
+ CXXFLAGS="$1${CXXFLAGS:+ }${CXXFLAGS}"])
82
+ AC_DEFUN([AC_GECODE_ADD_TO_CFLAGS],
83
+ [CFLAGS="$1${CFLAGS:+ }${CFLAGS}"])
84
+ AC_DEFUN([AC_GECODE_ADD_TO_GLDFLAGS],
85
+ [GLDFLAGS="$1${GLDFLAGS:+ }${GLDFLAGS}"])
86
+ AC_DEFUN([AC_GECODE_ADD_TO_DLLFLAGS],
87
+ [DLLFLAGS="$1${DLLFLAGS:+ }${DLLFLAGS}"])
88
+
89
+
90
+ dnl Macro:
91
+ dnl AC_GECODE_CHECK_MS_CL_FLAG (FLAG, ACTION-IF-TRUE,
92
+ dnl ACTION-IF-FALSE)
93
+ dnl
94
+ dnl Description:
95
+ dnl Check whether FLAG is supported by the Microsoft C++ compiler. Run
96
+ dnl the shell commands ACTION-IF-TRUE if it is, ACTION-IF-FALSE
97
+ dnl otherwise.
98
+ dnl
99
+ dnl Authors:
100
+ dnl Guido Tack <tack@gecode.org>
101
+ dnl
102
+ AC_DEFUN([AC_GECODE_CHECK_MS_CL_FLAG],
103
+ [AC_MSG_CHECKING(whether ${CXX} accepts [$1])
104
+ if ${CXX} $1 2>&1 | grep "ignoring unknown option" -q; then
105
+ AC_MSG_RESULT([no])
106
+ ifelse([$3], , :, [$3])
107
+ else
108
+ AC_MSG_RESULT([yes])
109
+ ifelse([$2], , :, [$2])
110
+ fi])
111
+
112
+ dnl Macro:
113
+ dnl AC_GECODE_CHECK_GXX_FLAG (FLAG, ACTION-IF-TRUE,
114
+ dnl ACTION-IF-FALSE)
115
+ dnl
116
+ dnl Description:
117
+ dnl Check whether FLAG is supported by the Gnu C++ compiler. Run
118
+ dnl the shell commands ACTION-IF-TRUE if it is, ACTION-IF-FALSE
119
+ dnl otherwise.
120
+ dnl
121
+ dnl Authors:
122
+ dnl Guido Tack <tack@gecode.org>
123
+ dnl
124
+ AC_DEFUN([AC_GECODE_CHECK_GXX_FLAG],
125
+ [AC_MSG_CHECKING(whether ${CXX} accepts [$1])
126
+ ac_gecode_save_CXXFLAGS="${CXXFLAGS}"
127
+ CXXFLAGS="$1${CXXFLAGS:+ }${CXXFLAGS} -Werror"
128
+ AC_LANG_PUSH(C++)
129
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
130
+ [if grep -q "unrecognized\|argument unused" conftest.err; then
131
+ CXXFLAGS="${ac_gecode_save_CXXFLAGS}"
132
+ AC_MSG_RESULT([no])
133
+ ifelse([$3], , :, [$3])
134
+ else
135
+ CXXFLAGS="${ac_gecode_save_CXXFLAGS}"
136
+ AC_MSG_RESULT([yes])
137
+ ifelse([$2], , :, [$2])
138
+ fi
139
+ ],
140
+ [CXXFLAGS="${ac_gecode_save_CXXFLAGS}"
141
+ AC_MSG_RESULT([no])
142
+ ifelse([$3], , :, [$3])])
143
+ AC_LANG_POP])
144
+
145
+ dnl Macro:
146
+ dnl AC_GECODE_CHECK_GCC_FLAG (FLAG, ACTION-IF-TRUE,
147
+ dnl ACTION-IF-FALSE)
148
+ dnl
149
+ dnl Description:
150
+ dnl Check whether FLAG is supported by the Gnu C compiler. Run
151
+ dnl the shell commands ACTION-IF-TRUE if it is, ACTION-IF-FALSE
152
+ dnl otherwise.
153
+ dnl
154
+ dnl Authors:
155
+ dnl Guido Tack <tack@gecode.org>
156
+ dnl
157
+ AC_DEFUN([AC_GECODE_CHECK_GCC_FLAG],[
158
+ AC_MSG_CHECKING(whether ${CC} accepts [$1])
159
+ ac_gecode_save_CFLAGS="${CFLAGS}"
160
+ CFLAGS="$1${CFLAGS:+ }${CFLAGS} -Werror"
161
+ AC_LANG_PUSH(C)
162
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
163
+ [if grep -q "unrecognized\|argument unused" conftest.err; then
164
+ CFLAGS="${ac_gecode_save_CFLAGS}"
165
+ AC_MSG_RESULT([no])
166
+ ifelse([$3], , :, [$3])
167
+ else
168
+ CFLAGS="${ac_gecode_save_CFLAGS}"
169
+ AC_MSG_RESULT([yes])
170
+ ifelse([$2], , :, [$2])
171
+ fi
172
+ ],
173
+ [CFLAGS="${ac_gecode_save_CFLAGS}"
174
+ AC_MSG_RESULT([no])
175
+ ifelse([$3], , :, [$3])])
176
+ AC_LANG_POP])
177
+
178
+ dnl Macro:
179
+ dnl AC_GECODE_CHECK_CXXFLAG (FLAG, [ACTION-IF-TRUE,
180
+ dnl [ACTION-IF-FALSE]])
181
+ dnl
182
+ dnl Description:
183
+ dnl Check whether FLAG is supported by the C++ compiler. Run
184
+ dnl the shell commands ACTION-IF-TRUE if it is, ACTION-IF-FALSE
185
+ dnl otherwise. If ACTION-IF-TRUE is not given, append FLAG to
186
+ dnl the contents of $CXXFLAGS.
187
+ dnl
188
+ dnl Authors:
189
+ dnl Leif Kornstaedt <kornstae@ps.uni-sb.de>
190
+ dnl Marco Kuhlmann <kuhlmann@ps.uni-sb.de>
191
+ dnl
192
+ AC_DEFUN([AC_GECODE_CHECK_CXXFLAG],
193
+ [if test "${ac_cv_cxx_compiler_vendor}" = "microsoft"; then
194
+ AC_GECODE_CHECK_MS_CL_FLAG($1,[
195
+ ifelse([$2], , CXXFLAGS="$1${CXXFLAGS:+ }${CXXFLAGS}", [$2])],
196
+ [ifelse([$3], , :, [$3])])
197
+ else
198
+ AC_GECODE_CHECK_GXX_FLAG($1,[
199
+ ifelse([$2], , CXXFLAGS="$1${CXXFLAGS:+ }${CXXFLAGS}", [$2])],
200
+ [ifelse([$3], , :, [$3])])
201
+ fi
202
+ ])dnl
203
+
204
+ AC_DEFUN([AC_GECODE_CHECK_COMPILERFLAG],
205
+ [
206
+ if test "${ac_cv_cxx_compiler_vendor}" = "microsoft"; then
207
+ AC_GECODE_CHECK_MS_CL_FLAG($1,[
208
+ CXXFLAGS="$1${CXXFLAGS:+ }${CXXFLAGS}"
209
+ CFLAGS="$1${CFLAGS:+ }${CFLAGS}"],[])
210
+ else
211
+ AC_GECODE_CHECK_GXX_FLAG($1,[
212
+ CXXFLAGS="$1${CXXFLAGS:+ }${CXXFLAGS}"],[])
213
+ AC_GECODE_CHECK_GCC_FLAG($1,[
214
+ CFLAGS="$1${CFLAGS:+ }${CFLAGS}"],[])
215
+ fi])dnl
216
+
217
+ dnl Macro:
218
+ dnl AC_GECODE_CHECK_GLDFLAG (FLAG, [ACTION-IF-TRUE,
219
+ dnl [ACTION-IF-FALSE]])
220
+ dnl
221
+ dnl Description:
222
+ dnl Check whether FLAG is supported by the linker. Run the
223
+ dnl shell commands ACTION-IF-TRUE if it is, ACTION-IF-FALSE
224
+ dnl otherwise. If ACTION-IF-TRUE is not given, append FLAG to
225
+ dnl the contents of $GLDFLAGS.
226
+ dnl
227
+ dnl Authors:
228
+ dnl Leif Kornstaedt <kornstae@ps.uni-sb.de>
229
+ dnl Marco Kuhlmann <kuhlmann@ps.uni-sb.de>
230
+ dnl
231
+ AC_DEFUN([AC_GECODE_CHECK_GLDFLAG],
232
+ [AC_REQUIRE([AC_PROG_CXX])
233
+ AC_MSG_CHECKING(whether the linker accepts [$1])
234
+ ac_gecode_save_GLDFLAGS="${GLDFLAGS}"
235
+ GLDFLAGS="$1${GLDFLAGS:+ }${GLDFLAGS}"
236
+ AC_LINK_IFELSE([AC_LANG_PROGRAM()],
237
+ [AC_MSG_RESULT(yes)
238
+ GLDFLAGS="$ac_gecode_save_GLDFLAGS"
239
+ ifelse([$2], , [GLDFLAGS="$1${GLDFLAGS:+ }${GLDFLAGS}"], [$2])],
240
+ [AC_MSG_RESULT(no)
241
+ GLDFLAGS="$ac_gecode_save_GLDFLAGS"
242
+ ifelse([$3], , :, [$3])])])dnl
243
+
244
+ dnl @synopsis _AC_C_IFDEF(MACRO-NAME, ACTION-IF-DEF, ACTION-IF-NOT-DEF)
245
+ dnl
246
+ dnl Check for the definition of macro MACRO-NAME using the current
247
+ dnl language's compiler.
248
+ dnl
249
+ dnl @category Misc
250
+ dnl @author Ludovic Court�s <ludo@chbouib.org>
251
+ dnl @version 2004-09-07
252
+ dnl @license AllPermissive
253
+ AC_DEFUN([_AC_C_IFDEF],
254
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifndef $1
255
+ # error "Macro $1 is undefined!"
256
+ /* For some compilers (eg. SGI's CC), #error is not
257
+ enough... */
258
+ please, do fail
259
+ #endif]],[[]])],
260
+ [$2], [$3])])
261
+
262
+ dnl @synopsis AC_CXX_COMPILER_VENDOR(VENDOR-NAME)
263
+ dnl
264
+ dnl Set VENDOR-NAME to the lower-case name of the compiler vendor or `unknown'
265
+ dnl if the compiler's vendor is unknown.
266
+ dnl
267
+ dnl @version 20040907
268
+ dnl @author Ludovic Court�s <ludo@chbouib.org>
269
+ dnl Modified by G. Tack to recognize only those compilers we need.
270
+ AC_DEFUN([AC_ADD_DLL_ARCH],
271
+ [ac_gecode_library_architecture="-$1${ac_gecode_library_architecture}"])
272
+
273
+ AC_DEFUN([AC_CXX_COMPILER_VENDOR],
274
+ [AC_ARG_WITH([compiler-vendor],
275
+ AC_HELP_STRING([--with-compiler-vendor],
276
+ [Override compiler test. Valid values are gnu, intel, and microsoft.]))
277
+ AC_REQUIRE([AC_PROG_CXX])
278
+ AC_REQUIRE([AC_PROG_CXXCPP])
279
+ if test "${with_compiler_vendor:-no}" = "no"; then
280
+ AC_LANG_PUSH([C++])
281
+ dnl GNU C++
282
+ _AC_C_IFDEF([__GNUG__],
283
+ [ac_cv_cxx_compiler_vendor=gnu],
284
+ [_AC_C_IFDEF([__INTEL_COMPILER],
285
+ [ac_cv_cxx_compiler_vendor=intel
286
+ _AC_C_IFDEF([_M_IX86],
287
+ [AC_ADD_DLL_ARCH([x86])],[])
288
+ _AC_C_IFDEF([_M_IA64],
289
+ [AC_ADD_DLL_ARCH([ia64])],[])
290
+ _AC_C_IFDEF([_M_X64],
291
+ [AC_ADD_DLL_ARCH([x64])],[])],
292
+ [dnl Note: We are using the C compiler because VC++ doesn't
293
+ dnl recognize `.cc'(which is used by `configure') as a C++ file
294
+ dnl extension and requires `/TP' to be passed.
295
+ AC_LANG_PUSH([C])
296
+ _AC_C_IFDEF([_MSC_VER],
297
+ [ac_cv_cxx_compiler_vendor=microsoft
298
+ _AC_C_IFDEF([_M_IX86],
299
+ [AC_ADD_DLL_ARCH([x86])],[])
300
+ _AC_C_IFDEF([_M_IA64],
301
+ [AC_ADD_DLL_ARCH([ia64])],[])
302
+ _AC_C_IFDEF([_M_X64],
303
+ [AC_ADD_DLL_ARCH([x64])],[])],
304
+ [ac_cv_cxx_compiler_vendor=unknown])
305
+ AC_LANG_POP()])])
306
+
307
+ AC_LANG_POP()
308
+ else
309
+ ac_cv_cxx_compiler_vendor=${with_compiler_vendor}
310
+ fi
311
+ $1="$ac_cv_cxx_compiler_vendor"])dnl
312
+
313
+
314
+ AC_DEFUN([AC_CHECK_GCC_VERSION],
315
+ [
316
+ AC_LANG_PUSH(C)
317
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
318
+ #if __GNUC__ < $1 || (__GNUC__ == $1 && __GNUC_MINOR__ < $2)
319
+ #error Version too old
320
+ really, the version is too old
321
+ #endif]],[[]])],[],
322
+ [AC_MSG_ERROR([Your version of gcc is too old. You need at least version $1.$2.])]
323
+ )
324
+ AC_LANG_POP()
325
+ AC_LANG_PUSH(C++)
326
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
327
+ #if __GNUC__ < $1 || (__GNUC__ == $1 && __GNUC_MINOR__ < $2)
328
+ #error Version too old
329
+ really, the version is too old
330
+ #endif]],[[]])],[],
331
+ [AC_MSG_ERROR([Your version of g++ is too old. You need at least version $1.$2.])]
332
+ )
333
+ AC_LANG_POP()
334
+ ])
335
+
336
+ AC_DEFUN([AC_CHECK_MSVC_VERSION],
337
+ [
338
+ AC_LANG_PUSH(C)
339
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
340
+ #if _MSC_VER < $1
341
+ #error Version too old
342
+ really, the version is too old
343
+ #endif]],[[]])],[],
344
+ [AC_MSG_ERROR([Your version of cl is too old. You need at least Microsoft Visual C++ $2.])]
345
+ AC_LANG_POP()
346
+ )
347
+ ])
348
+
349
+ dnl Macro:
350
+ dnl AC_GECODE_VTI (vartype, help-string, default, vtidef,
351
+ dnl [ACTION-IF-ENABLED], [ACTION-IF-DISABLED])
352
+ dnl
353
+ dnl Description:
354
+ dnl Introduce --enable-vartype-vars configure switch. The help-string
355
+ dnl is used for the configure --help output.
356
+ dnl default is either yes or no and says whether this option should be
357
+ dnl enabled by default. ACTION-IF-ENABLED can be used to perform additional
358
+ dnl actions in case this variable type is enabled.
359
+ dnl
360
+ dnl Authors:
361
+ dnl Guido Tack <tack@gecode.org>
362
+ AC_DEFUN([AC_GECODE_ADD_VTI],
363
+ [AC_DEFINE(GECODE_HAS_$1_VARS, [], [Whether to build $1 variables])])
364
+ AC_DEFUN([AC_GECODE_VIS],[
365
+ AC_ARG_WITH([vis],
366
+ AC_HELP_STRING([--with-vis],
367
+ [additional variable implementation specifications]))
368
+ if test "${with_vis:-no}" != "no"; then
369
+ with_vis=${with_vis//,/ }
370
+ ac_gecode_vis="${with_vis}${ac_gecode_vis:+ }${ac_gecode_vis}"
371
+ fi])
372
+ AC_DEFUN([AC_GECODE_VTI],
373
+ [
374
+ AC_ARG_ENABLE([$1-vars],
375
+ AC_HELP_STRING([--enable-$1-vars],[build $2 @<:@default=$3@:>@]))
376
+ ac_gecode_vis="$4${ac_gecode_vis:+ }${ac_gecode_vis}"
377
+ AC_MSG_CHECKING(whether to build the $1 variables library)
378
+ if test "${enable_$1_vars:-$3}" = "yes"; then
379
+ AC_MSG_RESULT(yes)
380
+ enable_$1_vars="yes";
381
+ $5
382
+ AC_GECODE_ADD_VTI(translit($1,`a-z', `A-Z'))
383
+ else
384
+ enable_$1_vars="no";
385
+ $6
386
+ AC_MSG_RESULT(no)
387
+ fi
388
+ AC_SUBST(enable_$1_vars, ${enable_$1_vars})
389
+ ])
390
+
391
+ dnl Macro:
392
+ dnl AC_GECODE_ENABLE_MODULE (module, default, help-string,
393
+ dnl [ACTION-IF-ENABLED])
394
+ dnl
395
+ dnl Description:
396
+ dnl Produces a configure switch --enable-<module>.
397
+ dnl
398
+ dnl Authors:
399
+ dnl Guido Tack <tack@gecode.org>
400
+ AC_DEFUN([AC_GECODE_ENABLE_MODULE],
401
+ [
402
+ AC_ARG_ENABLE([$1],
403
+ AC_HELP_STRING([--enable-$1],
404
+ [$3 @<:@default=$2@:>@]))
405
+ AC_MSG_CHECKING(whether to build $1)
406
+ if test "${enable_$1:-$2}" = "yes"; then
407
+ enable_$1="yes";
408
+ AC_MSG_RESULT(yes)
409
+ $4
410
+ else
411
+ enable_$1="no";
412
+ AC_MSG_RESULT(no)
413
+ fi
414
+ AC_SUBST(enable_$1, ${enable_$1})])
415
+
416
+ dnl Description:
417
+ dnl Makes an enable check for a contrib
418
+ dnl The third argument can be used for dependency checking
419
+ dnl
420
+ dnl Authors:
421
+ dnl Gr�goire Dooms <dooms@info.ucl.ac.be>
422
+ AC_DEFUN([AC_GECODE_ENABLE_CONTRIB],
423
+ [
424
+ AC_ARG_ENABLE([$1],
425
+ AC_HELP_STRING([--enable-$1],[build $2 @<:@default=yes@:>@]))
426
+ AC_MSG_CHECKING(whether to build the $1 contrib library)
427
+ if test "${enable_$1:-yes}" = "yes"; then
428
+ AC_MSG_RESULT(yes)
429
+ enable_$1="yes";
430
+ $3
431
+ else
432
+ enable_$1="no";
433
+ AC_MSG_RESULT(no)
434
+ fi
435
+ AC_SUBST(enable_$1, ${enable_$1})])
436
+
437
+
438
+ AC_DEFUN([AC_GECODE_STATICLIBS],
439
+ [if test "${host_os}" = "windows" -a \
440
+ "${ac_gecode_compiler_vendor}" = "gnu"; then
441
+ enable_static="yes"
442
+ enable_shared="no"
443
+ fi
444
+ AC_ARG_ENABLE([static],
445
+ AC_HELP_STRING([--enable-static],
446
+ [build static libraries @<:@default=no@:>@]))
447
+ AC_MSG_CHECKING(whether to build static libraries)
448
+ if test "${enable_static:-no}" = "yes"; then
449
+ AC_DEFINE([GECODE_STATIC_LIBS],[],
450
+ [Whether we are compiling static libraries])
451
+ AC_SUBST(BUILDSTATIC, "yes")
452
+ AC_MSG_RESULT(yes)
453
+ enable_shared=no
454
+ else
455
+ AC_SUBST(BUILDSTATIC, "no")
456
+ enable_shared=yes
457
+ AC_MSG_RESULT(no)
458
+ fi
459
+ AC_ARG_ENABLE([shared],
460
+ AC_HELP_STRING([--enable-shared],
461
+ [build shared libraries @<:@default=yes@:>@]))
462
+ AC_MSG_CHECKING(whether to build shared libraries)
463
+ if test "${enable_shared:-yes}" = "yes"; then
464
+ AC_SUBST(BUILDDLL, "yes")
465
+ AC_MSG_RESULT(yes)
466
+ else
467
+ AC_SUBST(BUILDDLL, "no")
468
+ if test "${enable_static:-no}" = "no"; then
469
+ AC_MSG_ERROR([One of --enable-static or --enable-shared must be given])
470
+ fi
471
+ AC_MSG_RESULT(no)
472
+ fi
473
+ ])
474
+
475
+ AC_DEFUN([AC_GECODE_CODESIZE],
476
+ [AC_ARG_ENABLE([small-codesize],
477
+ AC_HELP_STRING([--enable-small-codesize],
478
+ [optimize for code size @<:@default=no@:>@]))
479
+ AC_MSG_CHECKING(whether to optimize for code size)
480
+ if test "${enable_debug:-no}" = "yes"; then
481
+ AC_MSG_RESULT(not in debug builds)
482
+ elif test "${enable_small_codesize:-no}" = "yes"; then
483
+ AC_MSG_RESULT(yes)
484
+ case $host_os in
485
+ darwin*)
486
+ ac_gecode_gcc_optimize_flag=-Oz
487
+ ;;
488
+ *)
489
+ ac_gecode_gcc_optimize_flag=-Os
490
+ ac_gecode_cl_optimize_flag=-O1
491
+ ;;
492
+ esac
493
+ else
494
+ AC_MSG_RESULT(no)
495
+ ac_gecode_gcc_optimize_flag=-O3
496
+ ac_gecode_cl_optimize_flag=-O2
497
+ fi])
498
+
499
+
500
+ AC_DEFUN([AC_GECODE_DEBUG],
501
+ [AC_ARG_ENABLE([debug],
502
+ AC_HELP_STRING([--enable-debug],
503
+ [build with assertions @<:@default=no@:>@]))
504
+ AC_MSG_CHECKING(whether to build with debug symbols and assertions)
505
+ if test "${enable_debug:-no}" = "yes"; then
506
+ AC_ADD_DLL_ARCH([d])
507
+ AC_SUBST(DEBUG_BUILD, [yes])
508
+ AC_MSG_RESULT(yes)
509
+ else
510
+ AC_ADD_DLL_ARCH([r])
511
+ AC_SUBST(DEBUG_BUILD, [no])
512
+ AC_MSG_RESULT(no)
513
+ AC_GECODE_ADD_TO_COMPILERFLAGS(-DNDEBUG)
514
+ fi])
515
+
516
+ AC_DEFUN([AC_GECODE_LEAK_DEBUG],
517
+ [AC_ARG_ENABLE([leak-debug],
518
+ AC_HELP_STRING([--enable-leak-debug],
519
+ [build with support for finding memory leaks @<:@default=no@:>@]))
520
+ AC_MSG_CHECKING(whether to build with support for finding memory leaks)
521
+ if test "${enable_leak_debug:-no}" = "yes"; then
522
+ AC_MSG_RESULT(yes)
523
+ AC_CHECK_DECL(mtrace,
524
+ [AC_DEFINE([GECODE_HAS_MTRACE],[],
525
+ [Whether we have mtrace for memory leak debugging])],
526
+ [AC_MSG_ERROR(mtrace not available.)],
527
+ [[#include <mcheck.h>]])
528
+ else
529
+ AC_MSG_RESULT(no)
530
+ fi])
531
+
532
+ AC_DEFUN([AC_GECODE_AUDIT],
533
+ [AC_ARG_ENABLE([audit],
534
+ AC_HELP_STRING([--enable-audit],
535
+ [build with auditing code @<:@default=no@:>@]))
536
+ AC_MSG_CHECKING(whether to build with auditing code)
537
+ if test "${enable_audit:-no}" = "yes"; then
538
+ AC_DEFINE([GECODE_AUDIT],[],
539
+ [Whether to include audit code])
540
+ AC_MSG_RESULT(yes)
541
+ else
542
+ AC_MSG_RESULT(no)
543
+ fi])
544
+
545
+
546
+ AC_DEFUN([AC_GECODE_PROFILE],
547
+ [AC_ARG_ENABLE([profile],
548
+ AC_HELP_STRING([--enable-profile],
549
+ [build with profiling information @<:@default=no@:>@]))
550
+ AC_MSG_CHECKING(whether to build with profiling information)
551
+ if test "${enable_profile:-no}" = "yes"; then
552
+ AC_MSG_RESULT(yes)
553
+ AC_GECODE_CHECK_CXXFLAG(-pg,
554
+ AC_GECODE_ADD_TO_COMPILERFLAGS(-pg),
555
+ AC_GECODE_CHECK_COMPILERFLAG(-p))
556
+ else
557
+ AC_MSG_RESULT(no)
558
+ fi])
559
+
560
+ AC_DEFUN([AC_GECODE_GCOV],
561
+ [AC_ARG_ENABLE([gcov],
562
+ AC_HELP_STRING([--enable-gcov],
563
+ [build with gcov support @<:@default=no@:>@]))
564
+ AC_MSG_CHECKING(whether to build with gcov support)
565
+ if test "${enable_gcov:-no}" = "yes"; then
566
+ AC_MSG_RESULT(yes)
567
+ AC_GECODE_CHECK_COMPILERFLAG(-fprofile-arcs)
568
+ AC_GECODE_CHECK_COMPILERFLAG(-ftest-coverage)
569
+ AC_GECODE_ADD_TO_DLLFLAGS("-fprofile-arcs")
570
+ AC_GECODE_ADD_TO_DLLFLAGS("-ftest-coverage")
571
+ else
572
+ AC_MSG_RESULT(no)
573
+ fi])
574
+
575
+
576
+ # Test for platform specific behaviour of arithmetic
577
+
578
+ AC_DEFUN([AC_GECODE_CHECK_ARITH],
579
+ [AC_LANG_PUSH([C])
580
+ AC_CHECK_SIZEOF(int)
581
+ AC_MSG_CHECKING([if int has at least 32 bit])
582
+ AC_TRY_COMPILE([],
583
+ [
584
+ #if SIZEOF_INT>=4
585
+ #else
586
+ blablub
587
+ #endif
588
+ ],
589
+ [AC_MSG_RESULT(yes)],
590
+ [AC_MSG_ERROR([Gecode needs at least 32 bit integers.])])
591
+
592
+ AC_MSG_CHECKING([if doubles have a big enough mantissa])
593
+ AC_TRY_COMPILE([#include <float.h>],
594
+ [
595
+ #if DBL_MANT_DIG>=53
596
+ #else
597
+ blablub
598
+ #endif
599
+ ],
600
+ [AC_MSG_RESULT(yes)],
601
+ [AC_MSG_ERROR([Gecode needs a double mantissa of at least 53 bits.])])
602
+
603
+ AC_LANG_POP([C])])
604
+
605
+ AC_DEFUN([AC_GECODE_GCC_GENERAL_SWITCHES],
606
+ [AC_GECODE_CHECK_COMPILERFLAG([-fPIC])
607
+ AC_GECODE_CHECK_COMPILERFLAG([-Wextra])
608
+ AC_GECODE_CHECK_COMPILERFLAG([-Wall])
609
+ AC_GECODE_CHECK_COMPILERFLAG([-pipe])
610
+ AC_GECODE_CHECK_CXXFLAG(-ggdb,
611
+ AC_GECODE_ADD_TO_COMPILERFLAGS(-ggdb),
612
+ AC_GECODE_CHECK_COMPILERFLAG(-g))
613
+ AC_CHECK_FUNC([__builtin_ffsl],
614
+ [AC_DEFINE([GECODE_HAS_BUILTIN_FFSL],[],
615
+ [whether __builtin_ffsl is available])])
616
+
617
+ AC_SUBST(docdir, "${datadir}/doc/gecode")
618
+
619
+ dnl do not use manifest tool with gcc
620
+ AC_SUBST(MANIFEST, "@true")
621
+
622
+ dnl file extensions
623
+ AC_SUBST(SBJEXT, "s")
624
+ AC_SUBST(LIBEXT, "${DLLEXT}")
625
+ AC_SUBST(LIBPREFIX, "lib${ac_gecode_userprefix}gecode")
626
+ AC_SUBST(STATICLIBEXT, "a")
627
+ AC_SUBST(MINUSLDIR, "-L${libdir}")
628
+ AC_SUBST(LINKLIBDIR, "")
629
+
630
+ cygpathprefix=$prefix
631
+ test "x$cygpathprefix" = xNONE && cygpathprefix=$ac_default_prefix
632
+ AC_SUBST(cygpathprefix, "${cygpathprefix}")
633
+
634
+ AC_SUBST(COMPILEOBJ, "-c -o ")
635
+ AC_SUBST(COMPILESBJ, "-S -o ")
636
+ AC_SUBST(CXXIN, " ")
637
+ AC_SUBST(CCIN, " ")
638
+ AC_SUBST(EXAMPLES_EXTRA_CXXFLAGS, "")
639
+
640
+ dnl Do not install stub .lib files (required for msvc)
641
+ AC_SUBST(INSTALLLIBS, "no")
642
+
643
+ AC_SUBST(LINKPREFIX, "-l${ac_gecode_userprefix}gecode")
644
+ AC_SUBST(LINKSUFFIX, "")
645
+
646
+ dnl how to tell the compiler to output an object file
647
+ AC_SUBST(LINKOUTPUT, "-o ")
648
+ dnl how to tell the compiler to output an executable
649
+ AC_SUBST(EXEOUTPUT, "-o ")
650
+
651
+ dnl the names of the generated dlls
652
+ AC_SUBST(SUPPORT, "support")
653
+ AC_SUBST(KERNEL, "kernel")
654
+ AC_SUBST(SEARCH, "search")
655
+ AC_SUBST(INT, "int")
656
+ AC_SUBST(SET, "set")
657
+ AC_SUBST(MM, "minimodel")
658
+ AC_SUBST(GIST, "gist")
659
+ AC_SUBST(FLATZINC, "flatzinc")
660
+ AC_SUBST(DRIVER, "driver")])
661
+
662
+
663
+ AC_DEFUN([AC_GECODE_GCC_OPTIMIZED_SWITCHES],
664
+ [AC_MSG_CHECKING([if compiler supports forced inlining])
665
+ AC_LANG_PUSH([C++])
666
+ ac_gecode_save_CXXFLAGS="${CXXFLAGS}"
667
+ CXXFLAGS="$1${CXXFLAGS:+ }${CXXFLAGS} -Werror"
668
+ AC_COMPILE_IFELSE(
669
+ [AC_LANG_PROGRAM([
670
+ [inline __attribute__ ((__always_inline__)) void foo(void) {}]],
671
+ [])],
672
+ [AC_MSG_RESULT(yes)
673
+ AC_DEFINE(forceinline, [inline __attribute__ ((__always_inline__))],
674
+ [How to tell the compiler to really, really inline])],
675
+ [AC_MSG_RESULT(no)
676
+ AC_DEFINE(forceinline, [inline],
677
+ [How to tell the compiler to really, really inline])])
678
+ CXXFLAGS=${ac_gecode_save_CXXFLAGS}
679
+ AC_LANG_POP([C++])
680
+ AC_GECODE_CHECK_COMPILERFLAG([${ac_gecode_gcc_optimize_flag}])
681
+ AC_GECODE_CHECK_COMPILERFLAG([-fno-strict-aliasing])])
682
+
683
+ AC_DEFUN([AC_GECODE_GCC_VISIBILITY],
684
+ [AC_ARG_ENABLE([gcc-visibility],
685
+ AC_HELP_STRING([--enable-gcc-visibility],
686
+ [use gcc visibility attributes @<:@default=yes@:>@]))
687
+ AC_MSG_CHECKING(whether to use gcc visibility attributes)
688
+ if test "${enable_gcc_visibility:-yes}" = "yes"; then
689
+ AC_MSG_RESULT(yes)
690
+ AC_GECODE_CHECK_CXXFLAG([-fvisibility=hidden],
691
+ [AC_DEFINE([GECODE_GCC_HAS_CLASS_VISIBILITY],[],
692
+ [Whether gcc understands visibility attributes])
693
+ AC_GECODE_ADD_TO_COMPILERFLAGS([-fvisibility=hidden])],
694
+ [])
695
+ else
696
+ AC_MSG_RESULT(no)
697
+ fi])
698
+
699
+ AC_DEFUN([AC_GECODE_GCC_DEBUG_SWITCHES],
700
+ [AC_DEFINE(forceinline, [inline],
701
+ [How to tell the compiler to really, really inline])
702
+ AC_GECODE_CHECK_COMPILERFLAG([-fno-inline-functions])
703
+ AC_GECODE_CHECK_COMPILERFLAG([-fimplement-inlines])])
704
+
705
+ AC_DEFUN([AC_GECODE_NO_BUILDFLAGS],
706
+ [AC_SUBST(GECODE_BUILD_SUPPORT_FLAG, "")
707
+ AC_SUBST(GECODE_BUILD_KERNEL_FLAG, "")
708
+ AC_SUBST(GECODE_BUILD_SEARCH_FLAG, "")
709
+ AC_SUBST(GECODE_BUILD_INT_FLAG, "")
710
+ AC_SUBST(GECODE_BUILD_SET_FLAG, "")
711
+ AC_SUBST(GECODE_BUILD_MINIMODEL_FLAG, "")
712
+ AC_SUBST(GECODE_BUILD_GIST_FLAG, "")
713
+ AC_SUBST(GECODE_BUILD_FLATZINC_FLAG, "")
714
+ AC_SUBST(GECODE_BUILD_DRIVER_FLAG, "")])
715
+
716
+ AC_DEFUN([AC_GECODE_BUILDFLAGS],
717
+ [AC_SUBST(GECODE_BUILD_SUPPORT_FLAG, "-DGECODE_BUILD_SUPPORT")
718
+ AC_SUBST(GECODE_BUILD_KERNEL_FLAG, "-DGECODE_BUILD_KERNEL")
719
+ AC_SUBST(GECODE_BUILD_SEARCH_FLAG, "-DGECODE_BUILD_SEARCH")
720
+ AC_SUBST(GECODE_BUILD_INT_FLAG, "-DGECODE_BUILD_INT")
721
+ AC_SUBST(GECODE_BUILD_SET_FLAG, "-DGECODE_BUILD_SET")
722
+ AC_SUBST(GECODE_BUILD_MINIMODEL_FLAG, "-DGECODE_BUILD_MINIMODEL")
723
+ AC_SUBST(GECODE_BUILD_GIST_FLAG, "-DGECODE_BUILD_GIST")
724
+ AC_SUBST(GECODE_BUILD_FLATZINC_FLAG, "-DGECODE_BUILD_FLATZINC")
725
+ AC_SUBST(GECODE_BUILD_DRIVER_FLAG, "-DGECODE_BUILD_DRIVER")])
726
+
727
+
728
+ AC_DEFUN([AC_GECODE_UNIX_PATHS],
729
+ [AC_SUBST(DLLPATH, [-L.])
730
+ dnl flags for creating dlls
731
+ case $host_os in
732
+ darwin*)
733
+ AC_SUBST(need_soname, "yes")
734
+ AC_GECODE_ADD_TO_DLLFLAGS([-Wl,-single_module])
735
+ AC_GECODE_ADD_TO_DLLFLAGS("-dynamiclib")
736
+ AC_SUBST(DLLEXT, "${ac_gecode_soversion}.0.dylib")
737
+ AC_SUBST(SOSUFFIX, ".${ac_gecode_soversion}.dylib")
738
+ AC_SUBST(SOLINKSUFFIX, ".dylib")
739
+ AC_SUBST(sharedlibdir, "${libdir}")
740
+ AC_SUBST(WLSONAME, "-compatibility_version ${ac_gecode_soversion}.0 -current_version ${ac_gecode_soversion}.0 -install_name ${libdir}/")
741
+ AC_GECODE_NO_BUILDFLAGS
742
+ ;;
743
+ windows*)
744
+ AC_SUBST(need_soname, "no")
745
+ if test "${enable_static:-no}" = "yes" -a \
746
+ "${enable_shared:-yes}" = "yes"; then
747
+ AC_MSG_ERROR([Only either static or shared libraries can be built.])
748
+ fi
749
+ AC_GECODE_ADD_TO_DLLFLAGS("-shared")
750
+ AC_SUBST(DLLEXT, "dll")
751
+ AC_SUBST(SOSUFFIX, "")
752
+ AC_SUBST(SOLINKSUFFIX, "")
753
+ AC_SUBST(WLSONAME, "")
754
+ if test "${enable_static:-no}" = "no"; then
755
+ AC_SUBST(sharedlibdir, "${bindir}")
756
+ else
757
+ AC_SUBST(sharedlibdir, "${libdir}")
758
+ fi
759
+ AC_GECODE_BUILDFLAGS
760
+ ;;
761
+ *)
762
+ AC_SUBST(need_soname, "yes")
763
+ AC_GECODE_ADD_TO_DLLFLAGS("-shared")
764
+ AC_SUBST(DLLEXT, "so.${ac_gecode_soversion}.0")
765
+ AC_SUBST(SOSUFFIX, ".so.${ac_gecode_soversion}")
766
+ AC_SUBST(SOLINKSUFFIX, ".so")
767
+ AC_SUBST(WLSONAME, ["-Wl,-soname="])
768
+ AC_SUBST(sharedlibdir, "${libdir}")
769
+ AC_GECODE_NO_BUILDFLAGS
770
+ ;;
771
+ esac])
772
+
773
+ AC_DEFUN([AC_GECODE_MSVC_SWITCHES],
774
+ [dnl general compiler flags
775
+ AC_DEFINE(forceinline,[__forceinline])
776
+ AC_GECODE_ADD_TO_COMPILERFLAGS([-nologo])
777
+ AC_GECODE_ADD_TO_CFLAGS([-D_CRT_SECURE_NO_DEPRECATE])
778
+ AC_GECODE_ADD_TO_CXXFLAGS([-EHsc])
779
+ AC_DEFINE([GECODE_MEMORY_ALIGNMENT], [sizeof(void*)],
780
+ [Heap memory alignment])
781
+
782
+ if test "${enable_debug:-no}" = "no"; then
783
+ dnl compiler flags for an optimized build
784
+ AC_GECODE_ADD_TO_COMPILERFLAGS([${ac_gecode_cl_optimize_flag}])
785
+ AC_GECODE_ADD_TO_COMPILERFLAGS([-MD -fp:fast -GS- -wd4355])
786
+ AC_GECODE_CHECK_COMPILERFLAG([-arch:SSE2])
787
+
788
+ dnl flags for creating optimized dlls
789
+ AC_GECODE_ADD_TO_DLLFLAGS([${CXXFLAGS} -LD])
790
+ dnl linker flags
791
+ GLDFLAGS="-link -DEBUG -OPT:REF -OPT:ICF -MANIFEST -INCREMENTAL:NO"
792
+ else
793
+ dnl compiler flags for a debug build
794
+ AC_GECODE_ADD_TO_COMPILERFLAGS([-MDd -Zi -wd4355])
795
+
796
+ dnl flags for creating debug dlls
797
+ AC_GECODE_ADD_TO_DLLFLAGS([${CXXFLAGS} -LDd])
798
+ GLDFLAGS="-link -MANIFEST -INCREMENTAL:NO"
799
+ fi
800
+
801
+ AC_SUBST(sharedlibdir, "${bindir}")
802
+ AC_SUBST(docdir, "${prefix}")
803
+ if test "${enable_static:-no}" = "yes"; then
804
+ AC_MSG_ERROR([Static linking not supported for Windows/cl.])
805
+ fi
806
+
807
+ AC_CHECK_PROG(MANIFEST, mt.exe, mt.exe)
808
+
809
+ AC_SUBST(DLLPATH, "")
810
+
811
+ dnl file extensions
812
+ AC_SUBST(SBJEXT, "sbj")
813
+ AC_SUBST(DLLEXT, "dll")
814
+ AC_SUBST(SOSUFFIX, "")
815
+ AC_SUBST(SOLINKSUFFIX, "")
816
+ AC_SUBST(WLSONAME, "")
817
+ AC_SUBST(LIBEXT, "lib")
818
+ AC_SUBST(LIBPREFIX, "${ac_gecode_userprefix}Gecode")
819
+ AC_SUBST(LINKPREFIX, "${ac_gecode_userprefix}Gecode")
820
+ AC_SUBST(LINKSUFFIX, ".lib")
821
+ AC_SUBST(MINUSLDIR, "")
822
+ AC_SUBST(LINKLIBDIR, "${libdir}/")
823
+
824
+ cygpathprefix=$prefix
825
+ test "x$cygpathprefix" = xNONE && cygpathprefix=$ac_default_prefix
826
+ cygpathprefix=`cygpath -m ${cygpathprefix}`
827
+
828
+ AC_SUBST(cygpathprefix, "${cygpathprefix}")
829
+ AC_GECODE_BUILDFLAGS
830
+
831
+ dnl compiler options
832
+ AC_SUBST(COMPILEOBJ, "-c -Fo")
833
+ AC_SUBST(COMPILESBJ, "-c -Fa")
834
+ AC_SUBST(CXXIN, "-Tp")
835
+ AC_SUBST(CCIN, "-Tc")
836
+ AC_SUBST(EXAMPLES_EXTRA_CXXFLAGS, "-bigobj")
837
+
838
+ dnl Install stub .lib files (required for msvc)
839
+ AC_SUBST(INSTALLLIBS, "yes")
840
+
841
+ dnl how to tell the compiler to output an object file
842
+ AC_SUBST(LINKOUTPUT, "-Fe")
843
+ dnl how to tell the compiler to output an executable
844
+ AC_SUBST(EXEOUTPUT, "-Fe")
845
+
846
+ dnl the names of the generated dlls
847
+ AC_SUBST(SUPPORT, "Support")
848
+ AC_SUBST(KERNEL, "Kernel")
849
+ AC_SUBST(SEARCH, "Search")
850
+ AC_SUBST(INT, "Int")
851
+ AC_SUBST(SET, "Set")
852
+ AC_SUBST(MM, "Minimodel")
853
+ AC_SUBST(GIST, "Gist")
854
+ AC_SUBST(FLATZINC, "FlatZinc")
855
+ AC_SUBST(DRIVER, "Driver")])
856
+
857
+ dnl Macro:
858
+ dnl AC_GECODE_DOC_SWITCHES
859
+ dnl
860
+ dnl Description:
861
+ dnl Produces the configure switches --enable-doc-search,
862
+ dnl --enable-doc-chm, and --enable-doc-tagfile.
863
+ dnl
864
+ dnl Authors:
865
+ dnl Guido Tack <tack@gecode.org>
866
+ AC_DEFUN([AC_GECODE_DOC_SWITCHES],
867
+ [dnl check if we can use dot for generating graphs in the documentation
868
+ AC_ARG_ENABLE([doc-dot],
869
+ AC_HELP_STRING([--enable-doc-dot],
870
+ [enable graphs in documentation @<:@default=yes@:>@]))
871
+ AC_CHECK_PROG(DOT, dot, dot)
872
+ AC_MSG_CHECKING(whether to enable graphs in the documentation)
873
+ if test "${enable_doc_dot:-yes}" = "yes"; then
874
+ if test x$DOT = x; then
875
+ if test x"${enable_doc_dot}" = x; then
876
+ AC_MSG_RESULT(no)
877
+ AC_SUBST(GECODE_DOXYGEN_DOT, NO)
878
+ else
879
+ AC_MSG_ERROR(you need the dot tool from graphviz to generate graphs in the documentation)
880
+ fi
881
+ else
882
+ AC_MSG_RESULT(yes)
883
+ AC_SUBST(GECODE_DOXYGEN_DOT, YES)
884
+ fi
885
+ else
886
+ AC_MSG_RESULT(no)
887
+ AC_SUBST(GECODE_DOXYGEN_DOT, NO)
888
+ fi
889
+
890
+ AC_ARG_ENABLE([doc-search],
891
+ AC_HELP_STRING([--enable-doc-search],
892
+ [enable documentation search engine @<:@default=no@:>@]))
893
+ AC_MSG_CHECKING(whether to enable the documentation search engine)
894
+ if test "${enable_doc_search:-no}" = "yes"; then
895
+ AC_MSG_RESULT(yes)
896
+ AC_SUBST(ENABLEDOCSEARCH, "yes")
897
+ else
898
+ AC_MSG_RESULT(no)
899
+ AC_SUBST(ENABLEDOCSEARCH, "no")
900
+ fi
901
+ AC_ARG_ENABLE([doc-tagfile],
902
+ AC_HELP_STRING([--enable-doc-tagfile],
903
+ [generate doxygen tagfile @<:@default=yes@:>@]))
904
+ AC_MSG_CHECKING(whether to generate a doxygen tagfile)
905
+ if test "${enable_doc_tagfile:-yes}" = "yes"; then
906
+ AC_MSG_RESULT(yes)
907
+ AC_SUBST(GECODE_DOXYGEN_TAGFILE, "doc/gecode-doc.tag")
908
+ else
909
+ AC_MSG_RESULT(no)
910
+ AC_SUBST(GECODE_DOXYGEN_TAGFILE, [])
911
+ fi
912
+ AC_ARG_ENABLE([doc-chm],
913
+ AC_HELP_STRING([--enable-doc-chm],
914
+ [build compressed html documentation @<:@default=yes on Windows@:>@]))
915
+ AC_MSG_CHECKING(whether to build compressed html documentation)
916
+ case $host_os in
917
+ windows*)
918
+ if test "${enable_doc_chm:-yes}" = "yes"; then
919
+ AC_MSG_RESULT(yes)
920
+ AC_SUBST(ENABLEDOCCHM, "yes")
921
+ AC_SUBST(ENABLEDOCSEARCH, "no")
922
+ else
923
+ AC_MSG_RESULT(no)
924
+ AC_SUBST(ENABLEDOCCHM, "no")
925
+ fi
926
+ ;;
927
+ *)
928
+ if test "${enable_doc_chm:-no}" = "yes"; then
929
+ AC_MSG_ERROR([building chms is only supported on Windows.])
930
+ else
931
+ AC_MSG_RESULT(no)
932
+ AC_SUBST(ENABLEDOCCHM, "no")
933
+ fi
934
+ ;;
935
+ esac
936
+ AC_ARG_ENABLE([doc-docset],
937
+ AC_HELP_STRING([--enable-doc-docset],
938
+ [build docset documentation for XCode @<:@default=no@:>@]))
939
+ AC_MSG_CHECKING(whether to build docset documentation for XCode)
940
+ case $host_os in
941
+ darwin*)
942
+ if test "${enable_doc_docset:-no}" = "yes"; then
943
+ AC_MSG_RESULT(yes)
944
+ AC_SUBST(ENABLEDOCDOCSET, "yes")
945
+ AC_SUBST(ENABLEDOCSEARCH, "no")
946
+ else
947
+ AC_MSG_RESULT(no)
948
+ AC_SUBST(ENABLEDOCDOCSET, "no")
949
+ fi
950
+ ;;
951
+ *)
952
+ if test "${enable_doc_docset:-no}" = "yes"; then
953
+ AC_MSG_ERROR([building docsets is only supported on Mac OS X.])
954
+ else
955
+ AC_MSG_RESULT(no)
956
+ AC_SUBST(ENABLEDOCDOCSET, "no")
957
+ fi
958
+ ;;
959
+ esac
960
+ ])
961
+
962
+ dnl Macro:
963
+ dnl AC_GECODE_UNIVERSAL
964
+ dnl
965
+ dnl Description:
966
+ dnl Produces the configure switches --enable-universal and --with-sdk
967
+ dnl for compiling universal binaries on Mac OS X.
968
+ dnl
969
+ dnl Authors:
970
+ dnl Guido Tack <tack@gecode.org>
971
+ AC_DEFUN([AC_GECODE_UNIVERSAL],
972
+ [dnl build universal binaries on Mac OS X
973
+ AC_ARG_WITH([sdk],
974
+ AC_HELP_STRING([--with-sdk],
975
+ [SDK to use on Mac OS X]))
976
+ if test "${host_os}" = "darwin"; then
977
+ if test "${with_sdk:-no}" != "no"; then
978
+ AC_GECODE_CHECK_COMPILERFLAG([-isysroot ${with_sdk}])
979
+ AC_GECODE_ADD_TO_DLLFLAGS([-Wl,-syslibroot,${with_sdk}])
980
+ fi
981
+ fi
982
+ AC_ARG_WITH([macosx-version-min],
983
+ AC_HELP_STRING([--with-macosx-version-min],
984
+ [minimum version of Mac OS X to support]))
985
+ if test "${host_os}" = "darwin"; then
986
+ if test "${with_macosx_version_min:-no}" != "no"; then
987
+ AC_GECODE_CHECK_COMPILERFLAG(
988
+ [-mmacosx-version-min=${with_macosx_version_min}])
989
+ AC_GECODE_ADD_TO_DLLFLAGS(
990
+ [-mmacosx-version-min=${with_macosx_version_min}])
991
+ fi
992
+ fi
993
+ AC_ARG_WITH([architectures],
994
+ AC_HELP_STRING([--with-architectures],
995
+ [architectures to compile for on Mac OS X]))
996
+ AC_MSG_CHECKING(Whether to build for different architectures)
997
+ if test "${host_os}" = "darwin"; then
998
+ if test "${with_architectures:-no}" != "no"; then
999
+ archflags="";
1000
+ for a in `echo ${with_architectures} | sed -e "s/,/ /g"`; do
1001
+ archflags="${archflags} -arch $a";
1002
+ done
1003
+ AC_GECODE_CHECK_COMPILERFLAG([${archflags}])
1004
+ AC_GECODE_ADD_TO_DLLFLAGS([${archflags}])
1005
+ AC_MSG_RESULT(yes)
1006
+ else
1007
+ AC_MSG_RESULT(no)
1008
+ fi
1009
+ else
1010
+ AC_MSG_RESULT(no)
1011
+ fi
1012
+ ])
1013
+
1014
+ dnl Macro:
1015
+ dnl AC_GECODE_FRAMEWORK
1016
+ dnl
1017
+ dnl Description:
1018
+ dnl Produces the configure switch --enable-framework
1019
+ dnl for creating a Mac OS X framework instead of individual libraries.
1020
+ dnl
1021
+ dnl Authors:
1022
+ dnl Guido Tack <tack@gecode.org>
1023
+ AC_DEFUN([AC_GECODE_FRAMEWORK],
1024
+ [dnl build framework bundle on Mac OS X
1025
+ AC_ARG_ENABLE([framework],
1026
+ AC_HELP_STRING([--enable-framework],
1027
+ [build framework bundle on Mac OS X @<:@default=no@:>@]))
1028
+ if test "${host_os}" = "darwin"; then
1029
+ AC_MSG_CHECKING(whether to build framework bundle on Mac OS X)
1030
+ if test "${enable_framework:-no}" = "yes"; then
1031
+ AC_MSG_RESULT(yes)
1032
+ AC_SUBST(BUILD_MACOS_FRAMEWORK, "yes")
1033
+ enable_static="yes";
1034
+ enable_shared="no";
1035
+ else
1036
+ AC_MSG_RESULT(no)
1037
+ AC_SUBST(BUILD_MACOS_FRAMEWORK, "no")
1038
+ fi
1039
+ fi
1040
+ ])
1041
+
1042
+ dnl Macro:
1043
+ dnl AC_GECODE_BOOST
1044
+ dnl
1045
+ dnl Description:
1046
+ dnl Produces the configure switch --with-boost-include
1047
+ dnl for supplying the path to the boost library.
1048
+ dnl
1049
+ dnl Authors:
1050
+ dnl Guido Tack <tack@gecode.org>
1051
+ AC_DEFUN([AC_GECODE_BOOST],
1052
+ [dnl build with support for the boost library
1053
+ AC_ARG_WITH([boost-include],
1054
+ AC_HELP_STRING([--with-boost-include],
1055
+ [path to the boost header files]))
1056
+ if test "${with_boost_include:-no}" != "no"; then
1057
+ AC_SUBST(BOOST_CPPFLAGS,[-I${with_boost_include}])
1058
+ AC_SUBST(BOOST_LINK,["-L${with_boost_include}/../../lib -lboost_serialization"])
1059
+ AC_DEFINE([GECODE_HAS_BOOST],[],
1060
+ [Whether to compile boost dependent parts])
1061
+ fi
1062
+ ])
1063
+
1064
+ dnl Macro:
1065
+ dnl AC_GECODE_QT
1066
+ dnl
1067
+ dnl Description:
1068
+ dnl Produces the configure switch --enable-qt
1069
+ dnl for compiling parts of Gecode that need the Qt library.
1070
+ dnl
1071
+ dnl Authors:
1072
+ dnl Guido Tack <tack@gecode.org>
1073
+ AC_DEFUN([AC_GECODE_QT],
1074
+ [
1075
+ AC_ARG_ENABLE([qt],
1076
+ AC_HELP_STRING([--enable-qt],
1077
+ [build with Qt support, requires at least Qt 4.3 @<:@default=yes@:>@]))
1078
+ AC_CHECK_PROGS(QMAKE, [qmake-qt4 qmake])
1079
+ AC_CHECK_PROGS(MOC, [moc-qt4 moc])
1080
+ AC_MSG_CHECKING(whether to build with Qt support)
1081
+ if test "${enable_qt:-yes}" = "yes"; then
1082
+ if test "${QMAKE}x" = "x" -o "${MOC}x" = "x"; then
1083
+ AC_MSG_RESULT(no)
1084
+ else
1085
+ ac_gecode_qt_version=`${QMAKE} -query QT_VERSION`
1086
+ ac_gecode_qt_major=`echo ${ac_gecode_qt_version} | grep -o '^[[0-9]]*'`
1087
+ ac_gecode_qt_minor=`echo ${ac_gecode_qt_version} | sed -e 's/^[[0-9]]*\\.//g' -e 's/\\.[[0-9]]*$//g'`
1088
+ ac_gecode_qt_ok="yes"
1089
+ if test ${ac_gecode_qt_major} -lt 4; then ac_gecode_qt_ok="no";
1090
+ else if test ${ac_gecode_qt_major} -eq 4 \
1091
+ -a ${ac_gecode_qt_minor} -lt 3; then ac_gecode_qt_ok="no";
1092
+ fi
1093
+ fi
1094
+ if test "${ac_gecode_qt_ok}" != "yes"; then
1095
+ AC_MSG_RESULT(no)
1096
+ else
1097
+ AC_MSG_RESULT(yes)
1098
+ AC_DEFINE([GECODE_HAS_QT],[],[Whether Qt is available])
1099
+ dnl use qmake to find the Qt installation
1100
+ ac_gecode_qt_tmpdir=`mktemp -d gistqt.XXXXXX` || exit 1
1101
+ cd ${ac_gecode_qt_tmpdir}
1102
+ echo "CONFIG += release" > a.pro
1103
+ ${QMAKE}
1104
+ if test -d a.xcodeproj; then
1105
+ ac_gecode_qt_makefile=a.xcodeproj/qt_preprocess.mak
1106
+ elif test -d a.pbproj; then
1107
+ ac_gecode_qt_makefile=a.pbproj/qt_preprocess.mak
1108
+ elif test -f Makefile.Debug; then
1109
+ if test "${enable_debug:-no}" = "no"; then
1110
+ ac_gecode_qt_makefile=Makefile.Release
1111
+ else
1112
+ ac_gecode_qt_makefile=Makefile.Debug
1113
+ fi
1114
+ else
1115
+ ac_gecode_qt_makefile=Makefile
1116
+ fi
1117
+ ac_gecode_qt_defines=`grep ${ac_gecode_qt_makefile} -e 'DEFINES.*=' | sed -e 's/.*=//' -e 's|\\\\|/|g' -e 's|-I\\("*\\)\\.\\./\\.\\.|-I\\1..|g'`
1118
+ ac_gecode_qt_inc=`grep ${ac_gecode_qt_makefile} -e 'INCPATH.*=' | sed -e 's/.*=//' -e 's|\\\\|/|g' -e 's|-I\\("*\\)\\.\\./\\.\\.|-I\\1..|g'`
1119
+ ac_gecode_qt_libs=`grep ${ac_gecode_qt_makefile} -e 'LIBS.*=' | sed -e 's/.*=//' -e 's|\\\\|/|g' -e 's|-I\\("*\\)\\.\\./\\.\\.|-I\\1..|g'`
1120
+ if test -d a.xcodeproj -o -d a.pbproj; then
1121
+ ac_gecode_qt_libs="-framework QtGui -framework QtCore"
1122
+ fi
1123
+ cd ..
1124
+ rm -r ${ac_gecode_qt_tmpdir}
1125
+ AC_SUBST(QTINCLUDES, ${ac_gecode_qt_inc})
1126
+ AC_SUBST(QTDEFINES, ${ac_gecode_qt_defines})
1127
+ AC_SUBST(QTLIBS, ${ac_gecode_qt_libs})
1128
+ AC_SUBST(enable_qt,yes)
1129
+ enable_qt=yes;
1130
+ fi
1131
+ fi
1132
+ else
1133
+ AC_MSG_RESULT(no)
1134
+ enable_qt=no;
1135
+ fi
1136
+ AC_SUBST(enable_qt, ${enable_qt})
1137
+ ])
1138
+
1139
+ dnl Macro:
1140
+ dnl AC_GECODE_GIST
1141
+ dnl
1142
+ dnl Description:
1143
+ dnl Produces the configure switch --enable-gist
1144
+ dnl for compiling the Gecode Interactive Search Tool.
1145
+ dnl
1146
+ dnl Authors:
1147
+ dnl Guido Tack <tack@gecode.org>
1148
+ AC_DEFUN([AC_GECODE_GIST],
1149
+ [
1150
+ AC_ARG_ENABLE([gist],
1151
+ AC_HELP_STRING([--enable-gist],
1152
+ [build Gecode Interactive Search Tool @<:@default=yes@:>@]))
1153
+ AC_MSG_CHECKING(whether to build Gist)
1154
+ if test "${enable_gist:-yes}" = "yes" -a "${enable_qt}" = "yes"; then
1155
+ AC_MSG_RESULT(yes)
1156
+ AC_SUBST(enable_gist, yes)
1157
+ AC_DEFINE([GECODE_HAS_GIST],[],[Whether Gist is available])
1158
+ else
1159
+ AC_MSG_RESULT(no)
1160
+ fi
1161
+ ])
1162
+
1163
+ AC_DEFUN([AC_GECODE_USER_SUFFIX],
1164
+ [
1165
+ AC_ARG_WITH([lib-prefix],
1166
+ AC_HELP_STRING([--with-lib-prefix],
1167
+ [add user-defined prefix to library names]))
1168
+ AC_MSG_CHECKING(for user-defined library name prefix)
1169
+ if test "x${with_lib_prefix}" != "x"; then
1170
+ ac_gecode_userprefix=${with_lib_prefix}
1171
+ AC_MSG_RESULT(${with_lib_prefix})
1172
+ else
1173
+ ac_gecode_userprefix=
1174
+ AC_MSG_RESULT(no)
1175
+ fi
1176
+ AC_DEFINE_UNQUOTED(GECODE_DLL_USERPREFIX,"${ac_gecode_userprefix}",
1177
+ [User-defined prefix of dll names])
1178
+ AC_ARG_WITH([lib-suffix],
1179
+ AC_HELP_STRING([--with-lib-suffix],
1180
+ [add user-defined suffix to library names]))
1181
+ AC_MSG_CHECKING(for user-defined library name suffix)
1182
+ if test "x${with_lib_suffix}" != "x"; then
1183
+ ac_gecode_usersuffix=${with_lib_suffix}
1184
+ AC_SUBST(USERSUFFIX,${with_lib_suffix})
1185
+ AC_MSG_RESULT(${with_lib_suffix})
1186
+ else
1187
+ ac_gecode_usersuffix=
1188
+ AC_SUBST(USERSUFFIX,[""])
1189
+ AC_MSG_RESULT(no)
1190
+ fi
1191
+ AC_DEFINE_UNQUOTED(GECODE_DLL_USERSUFFIX,"${ac_gecode_usersuffix}",
1192
+ [User-defined suffix of dll names])
1193
+ ])
1194
+
1195
+ AC_DEFUN([AC_GECODE_THREADS],[
1196
+ AC_CHECK_HEADER(unistd.h,
1197
+ [AC_DEFINE(GECODE_HAS_UNISTD_H,1,[Whether unistd.h is available])]
1198
+ )
1199
+ AC_CHECK_HEADER(pthread.h,
1200
+ [AC_DEFINE(GECODE_THREADS_PTHREADS,1,[Whether we have posix threads])
1201
+ AC_GECODE_ADD_TO_COMPILERFLAGS([-pthread])
1202
+ AC_GECODE_ADD_TO_DLLFLAGS([-pthread])
1203
+ ],
1204
+ [AC_CHECK_HEADER(windows.h,
1205
+ [AC_DEFINE(GECODE_THREADS_WINDOWS,1,[Whether we have windows threads])])]
1206
+ )
1207
+ ])
1208
+
1209
+ AC_DEFUN([AC_GECODE_TIMER],[
1210
+ AC_CHECK_HEADER(sys/time.h,
1211
+ [AC_DEFINE(GECODE_USE_GETTIMEOFDAY,1,[Use gettimeofday for time-measurement])],
1212
+ [AC_DEFINE(GECODE_USE_CLOCK,1,[Use clock() for time-measurement])])
1213
+ ])
1214
+
1215
+ dnl check whether we have suifficiently recent versions of flex/bison
1216
+ AC_DEFUN([AC_GECODE_FLEXBISON],
1217
+ [AC_CHECK_TOOL(HAVEFLEX, flex)
1218
+ AC_MSG_CHECKING(whether we have at least flex 2.5.33)
1219
+ if test "${HAVEFLEX}x" = "x"; then
1220
+ AC_MSG_RESULT(no)
1221
+ AC_SUBST(HAVE_FLEXBISON, "no")
1222
+ else
1223
+ if flex --version | grep ' 2\.5\.3[[3-9]]$' >/dev/null 2>&1 ||
1224
+ flex --version | grep ' 2\.5\.4[[0-9]]$' >/dev/null 2>&1 ||
1225
+ flex --version | grep ' 2\.[[6-9]]\.[[0-9]]*$' >/dev/null 2>&1
1226
+ then
1227
+ AC_MSG_RESULT(yes)
1228
+ AC_CHECK_TOOL(HAVEBISON, bison)
1229
+ AC_MSG_CHECKING(whether we have at least bison 2.3)
1230
+ if test "${HAVEBISON}x" = "x"; then
1231
+ AC_MSG_RESULT(no)
1232
+ AC_SUBST(HAVE_FLEXBISON, "no")
1233
+ else
1234
+ if bison --version | \
1235
+ grep ' 2\.[[3-9]]\($\|\.[[0-9]]$\)' >/dev/null 2>&1
1236
+ then
1237
+ AC_MSG_RESULT(yes)
1238
+ AC_SUBST(HAVE_FLEXBISON, "yes")
1239
+ else
1240
+ AC_MSG_RESULT(no)
1241
+ AC_SUBST(HAVE_FLEXBISON, "no")
1242
+ fi
1243
+ fi
1244
+ else
1245
+ AC_MSG_RESULT(no)
1246
+ AC_SUBST(HAVE_FLEXBISON, "no")
1247
+ fi
1248
+ fi])
1249
+
1250
+ AC_DEFUN([AC_GECODE_RESOURCE],[
1251
+ AC_ARG_ENABLE([resource],
1252
+ AC_HELP_STRING([--enable-resource],
1253
+ [build Gecode with resource files for Microsoft Visual Studio @<:@default=no@:>@]))
1254
+ AC_CHECK_PROG(HAVE_RC, rc.exe, [found])
1255
+ AC_MSG_CHECKING(whether to build with Visual Studio resource files)
1256
+ if test "${enable_resource:-no}" = "yes" -a \
1257
+ "${ac_gecode_compiler_vendor}" = "microsoft"; then
1258
+ if test "${HAVE_RC}x" = "x"; then
1259
+ AC_MSG_RESULT(no)
1260
+ AC_SUBST(RESCOMP, [@true])
1261
+ AC_SUBST(enable_resource, no)
1262
+ else
1263
+ AC_MSG_RESULT(yes)
1264
+ AC_SUBST(RESCOMP, ["rc.exe"])
1265
+ AC_SUBST(enable_resource, yes)
1266
+ fi
1267
+ else
1268
+ AC_MSG_RESULT(no)
1269
+ AC_SUBST(enable_resource, no)
1270
+ AC_SUBST(RESCOMP, [@true])
1271
+ fi
1272
+ ])