gecoder-with-gecode 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (919) hide show
  1. data/CHANGES +6 -0
  2. data/README +1 -1
  3. data/THANKS +18 -0
  4. data/example/equation_system.rb +3 -1
  5. data/example/magic_sequence.rb +3 -1
  6. data/example/queens.rb +3 -1
  7. data/example/send_more_money.rb +24 -30
  8. data/example/send_most_money.rb +15 -26
  9. data/example/square_tiling.rb +3 -1
  10. data/example/sudoku-set.rb +3 -1
  11. data/ext/{gecode-2.1.1 → gecode-2.2.0}/LICENSE +0 -0
  12. data/ext/{gecode-2.1.1 → gecode-2.2.0}/Makefile.contribs +0 -0
  13. data/ext/gecode-2.2.0/Makefile.dep +8056 -0
  14. data/ext/gecode-2.2.0/Makefile.in +1590 -0
  15. data/ext/gecode-2.2.0/changelog.in +2698 -0
  16. data/ext/gecode-2.2.0/configure +13112 -0
  17. data/ext/gecode-2.2.0/configure.ac +273 -0
  18. data/ext/gecode-2.2.0/configure.ac.in +269 -0
  19. data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/README +0 -0
  20. data/ext/gecode-2.2.0/contribs/qecode/Doxyfile +263 -0
  21. data/ext/gecode-2.2.0/contribs/qecode/Implicative.cc +267 -0
  22. data/ext/gecode-2.2.0/contribs/qecode/Implicative.hh +164 -0
  23. data/ext/gecode-2.2.0/contribs/qecode/Makefile.in.in +163 -0
  24. data/ext/gecode-2.2.0/contribs/qecode/OptVar.cc +82 -0
  25. data/ext/gecode-2.2.0/contribs/qecode/OptVar.hh +123 -0
  26. data/ext/gecode-2.2.0/contribs/qecode/Strategy.cc +131 -0
  27. data/ext/gecode-2.2.0/contribs/qecode/Strategy.hh +91 -0
  28. data/ext/gecode-2.2.0/contribs/qecode/StrategyNode.cc +62 -0
  29. data/ext/gecode-2.2.0/contribs/qecode/StrategyNode.hh +47 -0
  30. data/ext/gecode-2.2.0/contribs/qecode/autom4te.cache/output.0 +2264 -0
  31. data/ext/gecode-2.2.0/contribs/qecode/autom4te.cache/requests +115 -0
  32. data/ext/gecode-2.2.0/contribs/qecode/autom4te.cache/traces.0 +57 -0
  33. data/ext/gecode-2.2.0/contribs/qecode/config.log +147 -0
  34. data/ext/gecode-2.2.0/contribs/qecode/config.status +817 -0
  35. data/ext/gecode-2.2.0/contribs/qecode/configure +2264 -0
  36. data/ext/gecode-2.2.0/contribs/qecode/configure.ac +23 -0
  37. data/ext/gecode-2.2.0/contribs/qecode/examples/COMPILING +13 -0
  38. data/ext/gecode-2.2.0/contribs/qecode/examples/MatrixGame.cpp +140 -0
  39. data/ext/gecode-2.2.0/contribs/qecode/examples/NimFibo.cpp +73 -0
  40. data/ext/gecode-2.2.0/contribs/qecode/examples/connect-5-3-3-3.cpp +842 -0
  41. data/ext/gecode-2.2.0/contribs/qecode/examples/network-pricing.cc +146 -0
  42. data/ext/gecode-2.2.0/contribs/qecode/examples/optim2.cc +149 -0
  43. data/ext/gecode-2.2.0/contribs/qecode/examples/stress_test.cpp +240 -0
  44. data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/heap.cc +0 -0
  45. data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/myDom.cc +0 -0
  46. data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/myspace.cc +0 -0
  47. data/ext/gecode-2.2.0/contribs/qecode/myspace.hh +68 -0
  48. data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/qecode.hh +0 -0
  49. data/ext/gecode-2.2.0/contribs/qecode/qsolver.cc +268 -0
  50. data/ext/gecode-2.2.0/contribs/qecode/qsolver.hh +46 -0
  51. data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/shortdesc.ac +0 -0
  52. data/ext/{gecode-2.1.1 → gecode-2.2.0}/contribs/qecode/vartype.hh +0 -0
  53. data/ext/{gecode-2.1.1 → gecode-2.2.0}/doxygen/doxygen.conf.in +0 -0
  54. data/ext/gecode-2.2.0/doxygen/doxygen.hh.in +1112 -0
  55. data/ext/gecode-2.2.0/doxygen/reflection.hh +417 -0
  56. data/ext/gecode-2.2.0/examples/all-interval.cc +133 -0
  57. data/ext/gecode-2.2.0/examples/alpha.cc +137 -0
  58. data/ext/gecode-2.2.0/examples/bacp.cc +521 -0
  59. data/ext/gecode-2.2.0/examples/baseline.cc +87 -0
  60. data/ext/gecode-2.2.0/examples/bibd.cc +203 -0
  61. data/ext/gecode-2.2.0/examples/black-hole.cc +389 -0
  62. data/ext/gecode-2.2.0/examples/crew.cc +286 -0
  63. data/ext/gecode-2.2.0/examples/crowded-chess.cc +424 -0
  64. data/ext/gecode-2.2.0/examples/domino.cc +297 -0
  65. data/ext/gecode-2.2.0/examples/donald.cc +107 -0
  66. data/ext/gecode-2.2.0/examples/eq20.cc +125 -0
  67. data/ext/gecode-2.2.0/examples/golf.cc +297 -0
  68. data/ext/gecode-2.2.0/examples/golomb-ruler.cc +199 -0
  69. data/ext/gecode-2.2.0/examples/graph-color.cc +407 -0
  70. data/ext/gecode-2.2.0/examples/grocery.cc +113 -0
  71. data/ext/gecode-2.2.0/examples/hamming.cc +129 -0
  72. data/ext/gecode-2.2.0/examples/ind-set.cc +143 -0
  73. data/ext/gecode-2.2.0/examples/javascript.cc +163 -0
  74. data/ext/gecode-2.2.0/examples/kakuro.cc +686 -0
  75. data/ext/gecode-2.2.0/examples/knights.cc +220 -0
  76. data/ext/gecode-2.2.0/examples/langford-number.cc +225 -0
  77. data/ext/gecode-2.2.0/examples/magic-sequence.cc +146 -0
  78. data/ext/gecode-2.2.0/examples/magic-square.cc +138 -0
  79. data/ext/gecode-2.2.0/examples/minesweeper.cc +304 -0
  80. data/ext/gecode-2.2.0/examples/money.cc +105 -0
  81. data/ext/gecode-2.2.0/examples/nonogram.cc +492 -0
  82. data/ext/gecode-2.2.0/examples/ortho-latin.cc +172 -0
  83. data/ext/gecode-2.2.0/examples/partition.cc +141 -0
  84. data/ext/gecode-2.2.0/examples/pentominoes.cc +949 -0
  85. data/ext/gecode-2.2.0/examples/perfect-square.cc +311 -0
  86. data/ext/gecode-2.2.0/examples/photo.cc +170 -0
  87. data/ext/gecode-2.2.0/examples/queen-armies.cc +284 -0
  88. data/ext/gecode-2.2.0/examples/queens.cc +147 -0
  89. data/ext/gecode-2.2.0/examples/queens.js +57 -0
  90. data/ext/gecode-2.2.0/examples/sports-league.cc +342 -0
  91. data/ext/gecode-2.2.0/examples/steiner.cc +192 -0
  92. data/ext/gecode-2.2.0/examples/stress-distinct.cc +90 -0
  93. data/ext/gecode-2.2.0/examples/stress-domain.cc +99 -0
  94. data/ext/gecode-2.2.0/examples/stress-element.cc +112 -0
  95. data/ext/gecode-2.2.0/examples/stress-exec.cc +97 -0
  96. data/ext/gecode-2.2.0/examples/stress-extensional.cc +134 -0
  97. data/ext/gecode-2.2.0/examples/stress-linear-bool.cc +97 -0
  98. data/ext/gecode-2.2.0/examples/stress-min.cc +98 -0
  99. data/ext/gecode-2.2.0/examples/stress-search.cc +88 -0
  100. data/ext/gecode-2.2.0/examples/sudoku.cc +2341 -0
  101. data/ext/gecode-2.2.0/examples/support.hh +338 -0
  102. data/ext/gecode-2.2.0/examples/support/example.cc +64 -0
  103. data/ext/gecode-2.2.0/examples/support/example.icc +321 -0
  104. data/ext/gecode-2.2.0/examples/support/options.cc +226 -0
  105. data/ext/gecode-2.2.0/examples/support/options.icc +276 -0
  106. data/ext/gecode-2.2.0/examples/tsp.cc +317 -0
  107. data/ext/gecode-2.2.0/examples/warehouses.cc +191 -0
  108. data/ext/gecode-2.2.0/gecode.m4 +1046 -0
  109. data/ext/gecode-2.2.0/gecode/cpltset.hh +797 -0
  110. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/array.cc +0 -0
  111. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/array.icc +0 -0
  112. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/bddmanager.cc +0 -0
  113. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/bddmanager.icc +0 -0
  114. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/branch.cc +0 -0
  115. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/branch.hh +0 -0
  116. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/branch/select-val.icc +0 -0
  117. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/branch/select-view.icc +0 -0
  118. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/atmost.cc +0 -0
  119. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/cardinality.cc +0 -0
  120. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/distinct.cc +0 -0
  121. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/dom.cc +0 -0
  122. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/partition.cc +0 -0
  123. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/rangeroots.cc +0 -0
  124. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/rel.cc +0 -0
  125. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/select.cc +0 -0
  126. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/constraints/singleton.cc +0 -0
  127. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/exception.icc +0 -0
  128. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators.hh +0 -0
  129. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/binary.icc +0 -0
  130. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/nary.icc +0 -0
  131. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/naryone.icc +0 -0
  132. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/narytwo.icc +0 -0
  133. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/singleton.icc +0 -0
  134. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/propagators/unary.icc +0 -0
  135. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/support.cc +0 -0
  136. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/support.icc +0 -0
  137. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var-imp.icc +0 -0
  138. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var-imp/cpltset.cc +0 -0
  139. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var-imp/cpltset.icc +0 -0
  140. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var-imp/cpltset.vis +0 -0
  141. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var/cpltset.cc +0 -0
  142. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/var/cpltset.icc +0 -0
  143. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/view.icc +0 -0
  144. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/view/cpltset.icc +0 -0
  145. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/cpltset/view/print.cc +0 -0
  146. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist.hh +0 -0
  147. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/addchild.cc +0 -0
  148. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/addchild.hh +0 -0
  149. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/addvisualisationdialog.cc +0 -0
  150. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/addvisualisationdialog.hh +0 -0
  151. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/better.hh +0 -0
  152. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/config.cc +0 -0
  153. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/config.hh +0 -0
  154. data/ext/gecode-2.2.0/gecode/gist/drawingcursor.cc +281 -0
  155. data/ext/gecode-2.2.0/gecode/gist/drawingcursor.hh +103 -0
  156. data/ext/gecode-2.2.0/gecode/gist/drawingcursor.icc +70 -0
  157. data/ext/gecode-2.2.0/gecode/gist/gecodelogo.cc +672 -0
  158. data/ext/gecode-2.2.0/gecode/gist/gecodelogo.hh +64 -0
  159. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/gist.cc +0 -0
  160. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/gist.icc +0 -0
  161. data/ext/gecode-2.2.0/gecode/gist/layoutcursor.cc +115 -0
  162. data/ext/gecode-2.2.0/gecode/gist/layoutcursor.hh +75 -0
  163. data/ext/gecode-2.2.0/gecode/gist/layoutcursor.icc +48 -0
  164. data/ext/gecode-2.2.0/gecode/gist/mainwindow.cc +274 -0
  165. data/ext/gecode-2.2.0/gecode/gist/mainwindow.hh +86 -0
  166. data/ext/gecode-2.2.0/gecode/gist/node.cc +148 -0
  167. data/ext/gecode-2.2.0/gecode/gist/node.hh +117 -0
  168. data/ext/gecode-2.2.0/gecode/gist/node.icc +99 -0
  169. data/ext/gecode-2.2.0/gecode/gist/nodecursor.cc +123 -0
  170. data/ext/gecode-2.2.0/gecode/gist/nodecursor.hh +147 -0
  171. data/ext/gecode-2.2.0/gecode/gist/nodecursor.icc +122 -0
  172. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/nodevisitor.hh +0 -0
  173. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/nodevisitor.icc +0 -0
  174. data/ext/gecode-2.2.0/gecode/gist/preferences.cc +120 -0
  175. data/ext/gecode-2.2.0/gecode/gist/preferences.hh +79 -0
  176. data/ext/gecode-2.2.0/gecode/gist/spacenode.cc +468 -0
  177. data/ext/gecode-2.2.0/gecode/gist/spacenode.hh +227 -0
  178. data/ext/gecode-2.2.0/gecode/gist/spacenode.icc +170 -0
  179. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/test.cc +0 -0
  180. data/ext/gecode-2.2.0/gecode/gist/textoutput.cc +134 -0
  181. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/textoutput.hh +0 -0
  182. data/ext/gecode-2.2.0/gecode/gist/treecanvas.cc +1343 -0
  183. data/ext/gecode-2.2.0/gecode/gist/treecanvas.hh +361 -0
  184. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/ui_addchild.hh +0 -0
  185. data/ext/gecode-2.2.0/gecode/gist/ui_addvisualisationdialog.hh +165 -0
  186. data/ext/gecode-2.2.0/gecode/gist/visualisation/intvaritem.cc +192 -0
  187. data/ext/gecode-2.2.0/gecode/gist/visualisation/intvaritem.hh +75 -0
  188. data/ext/gecode-2.2.0/gecode/gist/visualisation/setvaritem.cc +235 -0
  189. data/ext/gecode-2.2.0/gecode/gist/visualisation/setvaritem.hh +77 -0
  190. data/ext/gecode-2.2.0/gecode/gist/visualisation/vararrayitem.hh +125 -0
  191. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/vararrayview.cc +0 -0
  192. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/vararrayview.hh +0 -0
  193. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/vararrayviewt.hh +0 -0
  194. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/varitem.cc +0 -0
  195. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/gist/visualisation/varitem.hh +0 -0
  196. data/ext/gecode-2.2.0/gecode/gist/visualnode.cc +474 -0
  197. data/ext/gecode-2.2.0/gecode/gist/visualnode.hh +226 -0
  198. data/ext/gecode-2.2.0/gecode/gist/visualnode.icc +198 -0
  199. data/ext/gecode-2.2.0/gecode/gist/zoomToFitIcon.icc +113 -0
  200. data/ext/gecode-2.2.0/gecode/int.hh +2116 -0
  201. data/ext/gecode-2.2.0/gecode/int/arithmetic.cc +237 -0
  202. data/ext/gecode-2.2.0/gecode/int/arithmetic.hh +827 -0
  203. data/ext/gecode-2.2.0/gecode/int/arithmetic/abs.icc +278 -0
  204. data/ext/gecode-2.2.0/gecode/int/arithmetic/divmod.icc +496 -0
  205. data/ext/gecode-2.2.0/gecode/int/arithmetic/max.icc +474 -0
  206. data/ext/gecode-2.2.0/gecode/int/arithmetic/mult.icc +858 -0
  207. data/ext/gecode-2.2.0/gecode/int/arithmetic/sqr.icc +464 -0
  208. data/ext/gecode-2.2.0/gecode/int/arithmetic/sqrt.icc +260 -0
  209. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/array.cc +0 -0
  210. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/array.icc +0 -0
  211. data/ext/gecode-2.2.0/gecode/int/bool.cc +734 -0
  212. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool.hh +0 -0
  213. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool/base.icc +0 -0
  214. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool/eq.icc +0 -0
  215. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool/eqv.icc +0 -0
  216. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/bool/lq.icc +0 -0
  217. data/ext/gecode-2.2.0/gecode/int/bool/or.icc +1000 -0
  218. data/ext/gecode-2.2.0/gecode/int/branch.cc +167 -0
  219. data/ext/gecode-2.2.0/gecode/int/branch.hh +587 -0
  220. data/ext/gecode-2.2.0/gecode/int/branch/create-branch.icc +190 -0
  221. data/ext/gecode-2.2.0/gecode/int/branch/select-val.icc +340 -0
  222. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/branch/select-view.icc +0 -0
  223. data/ext/gecode-2.2.0/gecode/int/channel.cc +165 -0
  224. data/ext/gecode-2.2.0/gecode/int/channel.hh +259 -0
  225. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/base.icc +0 -0
  226. data/ext/gecode-2.2.0/gecode/int/channel/dom.icc +348 -0
  227. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/link-multi.cc +0 -0
  228. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/link-multi.icc +0 -0
  229. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/link-single.cc +0 -0
  230. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/channel/link-single.icc +0 -0
  231. data/ext/gecode-2.2.0/gecode/int/channel/val.icc +278 -0
  232. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/circuit.cc +0 -0
  233. data/ext/gecode-2.2.0/gecode/int/circuit.hh +175 -0
  234. data/ext/gecode-2.2.0/gecode/int/circuit/base.icc +266 -0
  235. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/circuit/dom.icc +0 -0
  236. data/ext/gecode-2.2.0/gecode/int/circuit/val.icc +126 -0
  237. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/count.cc +0 -0
  238. data/ext/gecode-2.2.0/gecode/int/count.hh +487 -0
  239. data/ext/gecode-2.2.0/gecode/int/count/int.icc +620 -0
  240. data/ext/gecode-2.2.0/gecode/int/count/rel.icc +144 -0
  241. data/ext/gecode-2.2.0/gecode/int/count/view.icc +449 -0
  242. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/cumulatives.cc +0 -0
  243. data/ext/gecode-2.2.0/gecode/int/cumulatives.hh +138 -0
  244. data/ext/gecode-2.2.0/gecode/int/cumulatives/val.icc +455 -0
  245. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct.cc +0 -0
  246. data/ext/gecode-2.2.0/gecode/int/distinct.hh +341 -0
  247. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/bilink.icc +0 -0
  248. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/bnd.icc +0 -0
  249. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/combptr.icc +0 -0
  250. data/ext/gecode-2.2.0/gecode/int/distinct/dom.icc +752 -0
  251. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/edge.icc +0 -0
  252. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/node.icc +0 -0
  253. data/ext/gecode-2.2.0/gecode/int/distinct/ter-dom.icc +136 -0
  254. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/distinct/val.icc +0 -0
  255. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/dom.cc +0 -0
  256. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/dom.hh +0 -0
  257. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/dom/range.icc +0 -0
  258. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/dom/spec.icc +0 -0
  259. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/element.cc +0 -0
  260. data/ext/gecode-2.2.0/gecode/int/element.hh +239 -0
  261. data/ext/gecode-2.2.0/gecode/int/element/int.icc +444 -0
  262. data/ext/gecode-2.2.0/gecode/int/element/view.icc +584 -0
  263. data/ext/gecode-2.2.0/gecode/int/exception.icc +174 -0
  264. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional.cc +0 -0
  265. data/ext/gecode-2.2.0/gecode/int/extensional.hh +415 -0
  266. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/base.icc +0 -0
  267. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/basic.icc +0 -0
  268. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/bitset.icc +0 -0
  269. data/ext/gecode-2.2.0/gecode/int/extensional/dfa.cc +565 -0
  270. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/dfa.icc +0 -0
  271. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/incremental.icc +0 -0
  272. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/layered-graph.icc +0 -0
  273. data/ext/gecode-2.2.0/gecode/int/extensional/tuple-set.cc +285 -0
  274. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/extensional/tuple-set.icc +0 -0
  275. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc.cc +0 -0
  276. data/ext/gecode-2.2.0/gecode/int/gcc.hh +329 -0
  277. data/ext/gecode-2.2.0/gecode/int/gcc/bnd.icc +660 -0
  278. data/ext/gecode-2.2.0/gecode/int/gcc/dom.icc +531 -0
  279. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/gccbndsup.icc +0 -0
  280. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/graphsup.icc +0 -0
  281. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/lbc.icc +0 -0
  282. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/occur.icc +0 -0
  283. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/gcc/ubc.icc +0 -0
  284. data/ext/gecode-2.2.0/gecode/int/gcc/val.icc +400 -0
  285. data/ext/gecode-2.2.0/gecode/int/int-set.cc +157 -0
  286. data/ext/gecode-2.2.0/gecode/int/int-set.icc +195 -0
  287. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/limits.icc +0 -0
  288. data/ext/gecode-2.2.0/gecode/int/linear-bool.cc +235 -0
  289. data/ext/gecode-2.2.0/gecode/int/linear-int.cc +272 -0
  290. data/ext/gecode-2.2.0/gecode/int/linear.hh +1849 -0
  291. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/bool-int.icc +0 -0
  292. data/ext/gecode-2.2.0/gecode/int/linear/bool-post.cc +433 -0
  293. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/bool-scale.icc +0 -0
  294. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/bool-view.icc +0 -0
  295. data/ext/gecode-2.2.0/gecode/int/linear/int-bin.icc +605 -0
  296. data/ext/gecode-2.2.0/gecode/int/linear/int-dom.icc +539 -0
  297. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/int-nary.icc +0 -0
  298. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/int-noview.icc +0 -0
  299. data/ext/gecode-2.2.0/gecode/int/linear/int-post.cc +493 -0
  300. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/int-ter.icc +0 -0
  301. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/linear/post.icc +0 -0
  302. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/propagator.icc +0 -0
  303. data/ext/gecode-2.2.0/gecode/int/rel.cc +420 -0
  304. data/ext/gecode-2.2.0/gecode/int/rel.hh +627 -0
  305. data/ext/gecode-2.2.0/gecode/int/rel/eq.icc +885 -0
  306. data/ext/gecode-2.2.0/gecode/int/rel/lex.icc +275 -0
  307. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/rel/lq-le.icc +0 -0
  308. data/ext/gecode-2.2.0/gecode/int/rel/nq.icc +118 -0
  309. data/ext/gecode-2.2.0/gecode/int/sorted.cc +81 -0
  310. data/ext/gecode-2.2.0/gecode/int/sorted.hh +118 -0
  311. data/ext/gecode-2.2.0/gecode/int/sorted/matching.icc +173 -0
  312. data/ext/gecode-2.2.0/gecode/int/sorted/narrowing.icc +249 -0
  313. data/ext/gecode-2.2.0/gecode/int/sorted/order.icc +212 -0
  314. data/ext/gecode-2.2.0/gecode/int/sorted/propagate.icc +702 -0
  315. data/ext/gecode-2.2.0/gecode/int/sorted/sortsup.icc +563 -0
  316. data/ext/gecode-2.2.0/gecode/int/support-values.hh +158 -0
  317. data/ext/gecode-2.2.0/gecode/int/support-values.icc +203 -0
  318. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/unshare.cc +0 -0
  319. data/ext/gecode-2.2.0/gecode/int/var-imp.icc +745 -0
  320. data/ext/gecode-2.2.0/gecode/int/var-imp/bool.cc +105 -0
  321. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/bool.icc +0 -0
  322. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/bool.vis +0 -0
  323. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/delta.icc +0 -0
  324. data/ext/gecode-2.2.0/gecode/int/var-imp/int.cc +408 -0
  325. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/int.icc +0 -0
  326. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var-imp/int.vis +0 -0
  327. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var/bool.cc +0 -0
  328. data/ext/gecode-2.2.0/gecode/int/var/bool.icc +128 -0
  329. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/var/int.cc +0 -0
  330. data/ext/gecode-2.2.0/gecode/int/var/int.icc +153 -0
  331. data/ext/gecode-2.2.0/gecode/int/view.icc +1918 -0
  332. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/bool.icc +0 -0
  333. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/constint.icc +0 -0
  334. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/int.icc +0 -0
  335. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/iter.icc +0 -0
  336. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/minus.icc +0 -0
  337. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/offset.icc +0 -0
  338. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/print.cc +0 -0
  339. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/rtest.icc +0 -0
  340. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/scale.icc +0 -0
  341. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/int/view/zero.icc +0 -0
  342. data/ext/gecode-2.2.0/gecode/iter.hh +98 -0
  343. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-add.icc +0 -0
  344. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-append.icc +0 -0
  345. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-array.icc +0 -0
  346. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-cache.icc +0 -0
  347. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-compl.icc +0 -0
  348. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-diff.icc +0 -0
  349. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-empty.icc +0 -0
  350. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-inter.icc +0 -0
  351. data/ext/gecode-2.2.0/gecode/iter/ranges-map.icc +260 -0
  352. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-minmax.icc +0 -0
  353. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-minus.icc +0 -0
  354. data/ext/gecode-2.2.0/gecode/iter/ranges-negative.icc +137 -0
  355. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-offset.icc +0 -0
  356. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-operations.icc +0 -0
  357. data/ext/gecode-2.2.0/gecode/iter/ranges-positive.icc +139 -0
  358. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-scale.icc +0 -0
  359. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-singleton-append.icc +0 -0
  360. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-singleton.icc +0 -0
  361. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-size.icc +0 -0
  362. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-union.icc +0 -0
  363. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/ranges-values.icc +0 -0
  364. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-array.icc +0 -0
  365. data/ext/gecode-2.2.0/gecode/iter/values-inter.icc +130 -0
  366. data/ext/gecode-2.2.0/gecode/iter/values-map.icc +136 -0
  367. data/ext/gecode-2.2.0/gecode/iter/values-minus.icc +130 -0
  368. data/ext/gecode-2.2.0/gecode/iter/values-negative.icc +116 -0
  369. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-offset.icc +0 -0
  370. data/ext/gecode-2.2.0/gecode/iter/values-positive.icc +123 -0
  371. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-ranges.icc +0 -0
  372. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-singleton.icc +0 -0
  373. data/ext/gecode-2.2.0/gecode/iter/values-union.icc +137 -0
  374. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/values-unique.icc +0 -0
  375. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/virtual-ranges-compl.icc +0 -0
  376. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/virtual-ranges-inter.icc +0 -0
  377. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/virtual-ranges-union.icc +0 -0
  378. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/iter/virtual-ranges.icc +0 -0
  379. data/ext/gecode-2.2.0/gecode/kernel.hh +188 -0
  380. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/advisor.icc +0 -0
  381. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/array.icc +0 -0
  382. data/ext/gecode-2.2.0/gecode/kernel/branching.icc +433 -0
  383. data/ext/gecode-2.2.0/gecode/kernel/core.cc +474 -0
  384. data/ext/gecode-2.2.0/gecode/kernel/core.icc +2311 -0
  385. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/exception.icc +0 -0
  386. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/macros.icc +0 -0
  387. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/memory-manager.cc +0 -0
  388. data/ext/gecode-2.2.0/gecode/kernel/memory-manager.icc +454 -0
  389. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/modevent.icc +0 -0
  390. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/propagator.icc +0 -0
  391. data/ext/gecode-2.2.0/gecode/kernel/reflection.cc +951 -0
  392. data/ext/gecode-2.2.0/gecode/kernel/reflection.icc +1213 -0
  393. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/shared-array.icc +0 -0
  394. data/ext/gecode-2.2.0/gecode/kernel/var-imp.icc +433 -0
  395. data/ext/gecode-2.2.0/gecode/kernel/var-map.cc +269 -0
  396. data/ext/gecode-2.2.0/gecode/kernel/var-map.icc +230 -0
  397. data/ext/gecode-2.2.0/gecode/kernel/var-traits.icc +79 -0
  398. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/kernel/var-type.cc +0 -0
  399. data/ext/gecode-2.2.0/gecode/kernel/var-type.icc +915 -0
  400. data/ext/gecode-2.2.0/gecode/kernel/var.icc +114 -0
  401. data/ext/gecode-2.2.0/gecode/kernel/view.icc +413 -0
  402. data/ext/gecode-2.2.0/gecode/minimodel.hh +1206 -0
  403. data/ext/gecode-2.2.0/gecode/minimodel/arithmetic.icc +118 -0
  404. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/bool-expr.cc +0 -0
  405. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/bool-expr.icc +0 -0
  406. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/bool-rel.icc +0 -0
  407. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/exception.icc +0 -0
  408. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/lin-expr.icc +0 -0
  409. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/lin-rel.icc +0 -0
  410. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/matrix.icc +0 -0
  411. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/minimodel/reg.cc +0 -0
  412. data/ext/gecode-2.2.0/gecode/search.hh +759 -0
  413. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/bab.cc +0 -0
  414. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/bab.icc +0 -0
  415. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/dfs.cc +0 -0
  416. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/dfs.icc +0 -0
  417. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/engine-ctrl.icc +0 -0
  418. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/lds.cc +0 -0
  419. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/lds.icc +0 -0
  420. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/options.cc +0 -0
  421. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/options.icc +0 -0
  422. data/ext/gecode-2.2.0/gecode/search/reco-stack.icc +277 -0
  423. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/restart.icc +0 -0
  424. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/statistics.icc +0 -0
  425. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/stop.cc +0 -0
  426. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/search/stop.icc +0 -0
  427. data/ext/gecode-2.2.0/gecode/serialization.hh +149 -0
  428. data/ext/gecode-2.2.0/gecode/serialization/boost.cc +78 -0
  429. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/serialization/boost.icc +0 -0
  430. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/serialization/flatzinc.cc +0 -0
  431. data/ext/gecode-2.2.0/gecode/serialization/javascript.cc +343 -0
  432. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/serialization/javascript.hh +0 -0
  433. data/ext/gecode-2.2.0/gecode/serialization/register.cc +8498 -0
  434. data/ext/gecode-2.2.0/gecode/set.hh +970 -0
  435. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/array.cc +0 -0
  436. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/array.icc +0 -0
  437. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/branch.cc +0 -0
  438. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/branch.hh +0 -0
  439. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/branch/select-val.icc +0 -0
  440. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/branch/select-view.icc +0 -0
  441. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/cardinality.cc +0 -0
  442. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex.cc +0 -0
  443. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex.hh +0 -0
  444. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex/conv.cc +0 -0
  445. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex/conv.icc +0 -0
  446. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex/hull.cc +0 -0
  447. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/convex/hull.icc +0 -0
  448. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/distinct.cc +0 -0
  449. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/distinct.hh +0 -0
  450. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/distinct/atmostOne.cc +0 -0
  451. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/distinct/atmostOne.icc +0 -0
  452. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/dom.cc +0 -0
  453. data/ext/gecode-2.2.0/gecode/set/element.cc +135 -0
  454. data/ext/gecode-2.2.0/gecode/set/element.hh +233 -0
  455. data/ext/gecode-2.2.0/gecode/set/element/disjoint.cc +308 -0
  456. data/ext/gecode-2.2.0/gecode/set/element/disjoint.icc +75 -0
  457. data/ext/gecode-2.2.0/gecode/set/element/idxarray.hh +113 -0
  458. data/ext/gecode-2.2.0/gecode/set/element/idxarray.icc +155 -0
  459. data/ext/gecode-2.2.0/gecode/set/element/inter.icc +348 -0
  460. data/ext/gecode-2.2.0/gecode/set/element/union.icc +371 -0
  461. data/ext/gecode-2.2.0/gecode/set/element/unionConst.icc +334 -0
  462. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/exception.icc +0 -0
  463. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int.cc +0 -0
  464. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int.hh +0 -0
  465. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/card.icc +0 -0
  466. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/channel-bool.icc +0 -0
  467. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/channel-int.icc +0 -0
  468. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/match.icc +0 -0
  469. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/minmax.icc +0 -0
  470. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/int/weights.icc +0 -0
  471. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/limits.icc +0 -0
  472. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors-compiler.hh +0 -0
  473. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors.cc +0 -0
  474. data/ext/gecode-2.2.0/gecode/set/projectors.hh +438 -0
  475. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/compiler.cc +0 -0
  476. data/ext/gecode-2.2.0/gecode/set/projectors/formula.cc +312 -0
  477. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/formula.icc +0 -0
  478. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/projector-set.cc +0 -0
  479. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/projector-set.icc +0 -0
  480. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/projector.cc +0 -0
  481. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/projector.icc +0 -0
  482. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator.hh +0 -0
  483. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator/card.icc +0 -0
  484. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator/nary.icc +0 -0
  485. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator/re-nary.cc +0 -0
  486. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/propagator/re-nary.icc +0 -0
  487. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/set-expr.cc +0 -0
  488. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/projectors/set-expr.icc +0 -0
  489. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/propagator.icc +0 -0
  490. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op-const.cc +0 -0
  491. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op.cc +0 -0
  492. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op.hh +0 -0
  493. data/ext/gecode-2.2.0/gecode/set/rel-op/common.icc +613 -0
  494. data/ext/gecode-2.2.0/gecode/set/rel-op/inter.icc +452 -0
  495. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/partition.icc +0 -0
  496. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/post.icc +0 -0
  497. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/subofunion.icc +0 -0
  498. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/superofinter.icc +0 -0
  499. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel-op/union.icc +0 -0
  500. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel.cc +0 -0
  501. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel.hh +0 -0
  502. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/common.icc +0 -0
  503. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/eq.icc +0 -0
  504. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/nosubset.icc +0 -0
  505. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/nq.icc +0 -0
  506. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/re-eq.icc +0 -0
  507. data/ext/gecode-2.2.0/gecode/set/rel/re-subset.icc +174 -0
  508. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/rel/subset.icc +0 -0
  509. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence.cc +0 -0
  510. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence.hh +0 -0
  511. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/common.icc +0 -0
  512. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/seq-u.cc +0 -0
  513. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/seq-u.icc +0 -0
  514. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/seq.cc +0 -0
  515. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/sequence/seq.icc +0 -0
  516. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp.icc +0 -0
  517. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/delta.icc +0 -0
  518. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/integerset.cc +0 -0
  519. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/integerset.icc +0 -0
  520. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/iter.icc +0 -0
  521. data/ext/gecode-2.2.0/gecode/set/var-imp/set.cc +215 -0
  522. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/set.icc +0 -0
  523. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var-imp/set.vis +0 -0
  524. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/var/set.cc +0 -0
  525. data/ext/gecode-2.2.0/gecode/set/var/set.icc +303 -0
  526. data/ext/gecode-2.2.0/gecode/set/view.icc +1451 -0
  527. data/ext/gecode-2.2.0/gecode/set/view/complement.icc +614 -0
  528. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/const.icc +0 -0
  529. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/offset.icc +0 -0
  530. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/print.cc +0 -0
  531. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/set.icc +0 -0
  532. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/set/view/singleton.icc +0 -0
  533. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support.hh +0 -0
  534. data/ext/gecode-2.2.0/gecode/support/block-allocator.icc +159 -0
  535. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/AUTHORS +0 -0
  536. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/ChangeLog +0 -0
  537. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/NEWS +0 -0
  538. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/README +0 -0
  539. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bdd.h +0 -0
  540. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bddio.c +0 -0
  541. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bddop.c +0 -0
  542. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bddtree.h +0 -0
  543. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bvec.c +0 -0
  544. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/bvec.h +0 -0
  545. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/cache.c +0 -0
  546. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/cache.h +0 -0
  547. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/config.h +0 -0
  548. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/cppext.cc +0 -0
  549. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/fdd.c +0 -0
  550. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/fdd.h +0 -0
  551. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/imatrix.c +0 -0
  552. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/imatrix.h +0 -0
  553. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/kernel.c +0 -0
  554. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/kernel.h +0 -0
  555. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/pairs.c +0 -0
  556. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/prime.c +0 -0
  557. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/prime.h +0 -0
  558. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/reorder.c +0 -0
  559. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/buddy/tree.c +0 -0
  560. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/cast.icc +0 -0
  561. data/ext/gecode-2.2.0/gecode/support/config.icc.in +83 -0
  562. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/dynamic-array.icc +0 -0
  563. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/dynamic-stack.icc +0 -0
  564. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/exception.cc +0 -0
  565. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/exception.icc +0 -0
  566. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/macros.icc +0 -0
  567. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/map.icc +0 -0
  568. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/marked-pointer.icc +0 -0
  569. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/memory.icc +0 -0
  570. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/random.icc +0 -0
  571. data/ext/gecode-2.2.0/gecode/support/sentinel-stack.icc +138 -0
  572. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/sort.icc +0 -0
  573. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/static-pqueue.icc +0 -0
  574. data/ext/{gecode-2.1.1 → gecode-2.2.0}/gecode/support/static-stack.icc +0 -0
  575. data/ext/gecode-2.2.0/gecode/support/symbol.cc +241 -0
  576. data/ext/gecode-2.2.0/gecode/support/symbol.icc +134 -0
  577. data/ext/{gecode-2.1.1 → gecode-2.2.0}/install-sh +0 -0
  578. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/AppleHelpbookInfo.plist +0 -0
  579. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/allexamples.perl +0 -0
  580. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/Makefile.am +0 -0
  581. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/changelog +0 -0
  582. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/control +0 -0
  583. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/copyright +0 -0
  584. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/gecode.info +0 -0
  585. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/gecode.install +0 -0
  586. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/gecode.spec +0 -0
  587. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/debian/rules +0 -0
  588. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/back.png +0 -0
  589. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/footer.html +0 -0
  590. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/gecode-logo-100.png +0 -0
  591. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/header.html +0 -0
  592. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/doxygen/stylesheet.css +0 -0
  593. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/fixproperties.sh +0 -0
  594. data/ext/gecode-2.2.0/misc/gecode-gist.pc.in +45 -0
  595. data/ext/gecode-2.2.0/misc/gecode-minimodel.pc.in +45 -0
  596. data/ext/gecode-2.2.0/misc/gecode-search.pc.in +45 -0
  597. data/ext/gecode-2.2.0/misc/gecode-serialization.pc.in +45 -0
  598. data/ext/gecode-2.2.0/misc/gecode.pc.in +45 -0
  599. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/genchangelog.perl +0 -0
  600. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/genlcovmakefile.perl +0 -0
  601. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/genlicense.perl +0 -0
  602. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/genregistry.perl +0 -0
  603. data/ext/gecode-2.2.0/misc/genstatistics.perl +179 -0
  604. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/gentxtchangelog.perl +0 -0
  605. data/ext/gecode-2.2.0/misc/genvariables.perl +905 -0
  606. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/getrevision.perl +0 -0
  607. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/makedepend.perl +0 -0
  608. data/ext/{gecode-2.1.1 → gecode-2.2.0}/misc/svn-ignore.txt +0 -0
  609. data/ext/gecode-2.2.0/test/assign.cc +181 -0
  610. data/ext/gecode-2.2.0/test/assign.hh +93 -0
  611. data/ext/gecode-2.2.0/test/assign/bool.cc +61 -0
  612. data/ext/gecode-2.2.0/test/assign/int.cc +70 -0
  613. data/ext/gecode-2.2.0/test/branch.cc +563 -0
  614. data/ext/gecode-2.2.0/test/branch.hh +144 -0
  615. data/ext/gecode-2.2.0/test/branch/bool.cc +61 -0
  616. data/ext/gecode-2.2.0/test/branch/cpltset.cc +71 -0
  617. data/ext/gecode-2.2.0/test/branch/int.cc +70 -0
  618. data/ext/gecode-2.2.0/test/branch/set.cc +74 -0
  619. data/ext/gecode-2.2.0/test/cpltset.cc +568 -0
  620. data/ext/gecode-2.2.0/test/cpltset.hh +125 -0
  621. data/ext/gecode-2.2.0/test/cpltset/atmost.cc +155 -0
  622. data/ext/gecode-2.2.0/test/cpltset/cardinality.cc +138 -0
  623. data/ext/gecode-2.2.0/test/cpltset/dom.cc +137 -0
  624. data/ext/gecode-2.2.0/test/cpltset/partition.cc +210 -0
  625. data/ext/gecode-2.2.0/test/cpltset/rel.cc +158 -0
  626. data/ext/gecode-2.2.0/test/cpltset/select.cc +216 -0
  627. data/ext/gecode-2.2.0/test/int.cc +688 -0
  628. data/ext/gecode-2.2.0/test/int.hh +267 -0
  629. data/ext/gecode-2.2.0/test/int.icc +266 -0
  630. data/ext/gecode-2.2.0/test/int/arithmetic.cc +766 -0
  631. data/ext/gecode-2.2.0/test/int/basic.cc +77 -0
  632. data/ext/gecode-2.2.0/test/int/bool.cc +340 -0
  633. data/ext/gecode-2.2.0/test/int/channel.cc +238 -0
  634. data/ext/gecode-2.2.0/test/int/circuit.cc +100 -0
  635. data/ext/gecode-2.2.0/test/int/count.cc +357 -0
  636. data/ext/gecode-2.2.0/test/int/distinct.cc +248 -0
  637. data/ext/gecode-2.2.0/test/int/dom.cc +123 -0
  638. data/ext/gecode-2.2.0/test/int/element.cc +333 -0
  639. data/ext/gecode-2.2.0/test/int/extensional.cc +475 -0
  640. data/ext/gecode-2.2.0/test/int/gcc.cc +293 -0
  641. data/ext/gecode-2.2.0/test/int/linear.cc +383 -0
  642. data/ext/gecode-2.2.0/test/int/mm-arithmetic.cc +302 -0
  643. data/ext/gecode-2.2.0/test/int/mm-bool.cc +4342 -0
  644. data/ext/gecode-2.2.0/test/int/mm-count.cc +295 -0
  645. data/ext/gecode-2.2.0/test/int/mm-lin.cc +2035 -0
  646. data/ext/gecode-2.2.0/test/int/mm-rel.cc +136 -0
  647. data/ext/gecode-2.2.0/test/int/rel.cc +416 -0
  648. data/ext/gecode-2.2.0/test/int/scheduling.cc +276 -0
  649. data/ext/gecode-2.2.0/test/int/sorted.cc +165 -0
  650. data/ext/gecode-2.2.0/test/int/unshare.cc +109 -0
  651. data/ext/gecode-2.2.0/test/search.cc +618 -0
  652. data/ext/gecode-2.2.0/test/set.cc +753 -0
  653. data/ext/gecode-2.2.0/test/set.hh +286 -0
  654. data/ext/gecode-2.2.0/test/set.icc +108 -0
  655. data/ext/gecode-2.2.0/test/set/convex.cc +139 -0
  656. data/ext/gecode-2.2.0/test/set/distinct.cc +116 -0
  657. data/ext/gecode-2.2.0/test/set/dom.cc +292 -0
  658. data/ext/gecode-2.2.0/test/set/int.cc +473 -0
  659. data/ext/gecode-2.2.0/test/set/projection.cc +436 -0
  660. data/ext/gecode-2.2.0/test/set/rel-op-const.cc +368 -0
  661. data/ext/gecode-2.2.0/test/set/rel-op.cc +465 -0
  662. data/ext/gecode-2.2.0/test/set/rel.cc +125 -0
  663. data/ext/gecode-2.2.0/test/set/select.cc +299 -0
  664. data/ext/gecode-2.2.0/test/set/sequence.cc +125 -0
  665. data/ext/gecode-2.2.0/test/test.cc +287 -0
  666. data/ext/gecode-2.2.0/test/test.hh +175 -0
  667. data/ext/gecode-2.2.0/test/test.icc +93 -0
  668. data/ext/{gecode-2.1.1 → gecode-2.2.0}/variables.vsl +0 -0
  669. data/lib/gecoder/bindings.rb +7 -5
  670. data/lib/gecoder/bindings/bindings.rb +8 -8
  671. data/lib/gecoder/interface.rb +4 -2
  672. data/lib/gecoder/interface/binding_changes.rb +1 -1
  673. data/lib/gecoder/interface/branch.rb +1 -1
  674. data/lib/gecoder/interface/constraints/bool_enum_constraints.rb +4 -4
  675. data/lib/gecoder/interface/constraints/bool_var_constraints.rb +2 -2
  676. data/lib/gecoder/interface/constraints/extensional_regexp.rb +1 -1
  677. data/lib/gecoder/interface/constraints/fixnum_enum_constraints.rb +2 -2
  678. data/lib/gecoder/interface/constraints/int_enum/extensional.rb +5 -5
  679. data/lib/gecoder/interface/constraints/int_enum_constraints.rb +4 -4
  680. data/lib/gecoder/interface/constraints/int_var_constraints.rb +2 -2
  681. data/lib/gecoder/interface/constraints/selected_set/select.rb +8 -8
  682. data/lib/gecoder/interface/constraints/set_enum/element.rb +79 -0
  683. data/lib/gecoder/interface/constraints/set_enum_constraints.rb +5 -5
  684. data/lib/gecoder/interface/constraints/set_var_constraints.rb +2 -2
  685. data/lib/gecoder/interface/convenience.rb +99 -0
  686. data/lib/gecoder/interface/enum_wrapper.rb +1 -1
  687. data/lib/gecoder/interface/mixin.rb +486 -0
  688. data/lib/gecoder/interface/search.rb +23 -22
  689. data/lib/gecoder/version.rb +1 -1
  690. data/specs/branch.rb +5 -3
  691. data/specs/constraints/bool/boolean.rb +3 -1
  692. data/specs/constraints/bool/linear.rb +3 -1
  693. data/specs/constraints/bool_enum/bool_enum_relation.rb +3 -1
  694. data/specs/constraints/bool_enum/channel.rb +3 -1
  695. data/specs/constraints/fixnum_enum/element.rb +3 -1
  696. data/specs/constraints/int/arithmetic.rb +3 -1
  697. data/specs/constraints/int/channel.rb +3 -1
  698. data/specs/constraints/int/linear.rb +3 -1
  699. data/specs/constraints/int/linear_properties.rb +3 -1
  700. data/specs/constraints/int_enum/arithmetic.rb +3 -1
  701. data/specs/constraints/int_enum/channel.rb +3 -1
  702. data/specs/constraints/int_enum/count.rb +3 -1
  703. data/specs/constraints/int_enum/distinct.rb +3 -1
  704. data/specs/constraints/int_enum/element.rb +3 -1
  705. data/specs/constraints/int_enum/sort.rb +3 -1
  706. data/specs/constraints/property_helper.rb +10 -10
  707. data/specs/constraints/reification_sugar.rb +3 -1
  708. data/specs/constraints/selected_set/select.rb +6 -5
  709. data/specs/constraints/selected_set/select_properties.rb +12 -10
  710. data/specs/constraints/set/channel.rb +3 -1
  711. data/specs/constraints/set/domain.rb +4 -4
  712. data/specs/constraints/set/relation.rb +4 -4
  713. data/specs/constraints/set_enum/channel.rb +3 -1
  714. data/specs/constraints/set_enum/distinct.rb +3 -1
  715. data/specs/constraints/set_enum/element.rb +77 -0
  716. data/specs/enum_wrapper.rb +1 -1
  717. data/specs/mixin.rb +78 -0
  718. data/specs/model.rb +5 -5
  719. data/specs/search.rb +20 -14
  720. data/specs/selected_set.rb +3 -3
  721. data/specs/set_elements.rb +2 -2
  722. data/tasks/distribution.rake +25 -4
  723. metadata +739 -602
  724. data/example/money.rb +0 -36
  725. data/ext/gecode-2.1.1/Makefile.dep +0 -7622
  726. data/ext/gecode-2.1.1/Makefile.in +0 -1568
  727. data/ext/gecode-2.1.1/changelog.in +0 -2459
  728. data/ext/gecode-2.1.1/configure +0 -11631
  729. data/ext/gecode-2.1.1/configure.ac +0 -249
  730. data/ext/gecode-2.1.1/configure.ac.in +0 -245
  731. data/ext/gecode-2.1.1/contribs/qecode/Doxyfile +0 -263
  732. data/ext/gecode-2.1.1/contribs/qecode/FirstFailValueHeuristic.cc +0 -82
  733. data/ext/gecode-2.1.1/contribs/qecode/FirstFailValueHeuristic.hh +0 -37
  734. data/ext/gecode-2.1.1/contribs/qecode/Makefile.in.in +0 -162
  735. data/ext/gecode-2.1.1/contribs/qecode/NaiveValueHeuristics.cc +0 -172
  736. data/ext/gecode-2.1.1/contribs/qecode/NaiveValueHeuristics.hh +0 -63
  737. data/ext/gecode-2.1.1/contribs/qecode/SDFVariableHeuristic.cc +0 -37
  738. data/ext/gecode-2.1.1/contribs/qecode/SDFVariableHeuristic.hh +0 -35
  739. data/ext/gecode-2.1.1/contribs/qecode/configure +0 -2264
  740. data/ext/gecode-2.1.1/contribs/qecode/configure.ac +0 -23
  741. data/ext/gecode-2.1.1/contribs/qecode/examples/COMPILING +0 -13
  742. data/ext/gecode-2.1.1/contribs/qecode/examples/MatrixGame.cpp +0 -144
  743. data/ext/gecode-2.1.1/contribs/qecode/examples/NimFibo.cpp +0 -73
  744. data/ext/gecode-2.1.1/contribs/qecode/examples/stress_test.cpp +0 -179
  745. data/ext/gecode-2.1.1/contribs/qecode/extensivecomparator.cc +0 -34
  746. data/ext/gecode-2.1.1/contribs/qecode/extensivecomparator.hh +0 -46
  747. data/ext/gecode-2.1.1/contribs/qecode/implicative.cc +0 -595
  748. data/ext/gecode-2.1.1/contribs/qecode/implicative.hh +0 -184
  749. data/ext/gecode-2.1.1/contribs/qecode/myspace.hh +0 -69
  750. data/ext/gecode-2.1.1/contribs/qecode/qecore.cc +0 -145
  751. data/ext/gecode-2.1.1/contribs/qecode/qecore.hh +0 -247
  752. data/ext/gecode-2.1.1/contribs/qecode/qsolver.cc +0 -168
  753. data/ext/gecode-2.1.1/contribs/qecode/qsolver.hh +0 -73
  754. data/ext/gecode-2.1.1/contribs/qecode/valueHeuristic.hh +0 -91
  755. data/ext/gecode-2.1.1/contribs/qecode/warner.cc +0 -101
  756. data/ext/gecode-2.1.1/contribs/qecode/warner.hh +0 -83
  757. data/ext/gecode-2.1.1/doxygen/doxygen.hh.in +0 -1111
  758. data/ext/gecode-2.1.1/doxygen/reflection.hh +0 -417
  759. data/ext/gecode-2.1.1/gecode.m4 +0 -956
  760. data/ext/gecode-2.1.1/gecode/cpltset.hh +0 -797
  761. data/ext/gecode-2.1.1/gecode/gist/analysiscursor.cc +0 -115
  762. data/ext/gecode-2.1.1/gecode/gist/analysiscursor.hh +0 -77
  763. data/ext/gecode-2.1.1/gecode/gist/drawingcursor.cc +0 -245
  764. data/ext/gecode-2.1.1/gecode/gist/drawingcursor.hh +0 -101
  765. data/ext/gecode-2.1.1/gecode/gist/gecodelogo.icc +0 -522
  766. data/ext/gecode-2.1.1/gecode/gist/mainwindow.cc +0 -254
  767. data/ext/gecode-2.1.1/gecode/gist/mainwindow.hh +0 -86
  768. data/ext/gecode-2.1.1/gecode/gist/node.cc +0 -100
  769. data/ext/gecode-2.1.1/gecode/gist/node.hh +0 -89
  770. data/ext/gecode-2.1.1/gecode/gist/nodecursor.cc +0 -124
  771. data/ext/gecode-2.1.1/gecode/gist/nodecursor.hh +0 -122
  772. data/ext/gecode-2.1.1/gecode/gist/nodecursor.icc +0 -79
  773. data/ext/gecode-2.1.1/gecode/gist/postscript.cc +0 -543
  774. data/ext/gecode-2.1.1/gecode/gist/postscript.hh +0 -56
  775. data/ext/gecode-2.1.1/gecode/gist/preferences.cc +0 -110
  776. data/ext/gecode-2.1.1/gecode/gist/preferences.hh +0 -76
  777. data/ext/gecode-2.1.1/gecode/gist/reflectionhelpers.cc +0 -55
  778. data/ext/gecode-2.1.1/gecode/gist/reflectionhelpers.hh +0 -58
  779. data/ext/gecode-2.1.1/gecode/gist/shapelist.cc +0 -331
  780. data/ext/gecode-2.1.1/gecode/gist/shapelist.hh +0 -140
  781. data/ext/gecode-2.1.1/gecode/gist/spacenode.cc +0 -531
  782. data/ext/gecode-2.1.1/gecode/gist/spacenode.hh +0 -224
  783. data/ext/gecode-2.1.1/gecode/gist/textoutput.cc +0 -114
  784. data/ext/gecode-2.1.1/gecode/gist/treecanvas.cc +0 -1140
  785. data/ext/gecode-2.1.1/gecode/gist/treecanvas.hh +0 -324
  786. data/ext/gecode-2.1.1/gecode/gist/ui_addvisualisationdialog.hh +0 -163
  787. data/ext/gecode-2.1.1/gecode/gist/visualisation/intvaritem.cc +0 -175
  788. data/ext/gecode-2.1.1/gecode/gist/visualisation/intvaritem.hh +0 -71
  789. data/ext/gecode-2.1.1/gecode/gist/visualisation/setvaritem.cc +0 -219
  790. data/ext/gecode-2.1.1/gecode/gist/visualisation/setvaritem.hh +0 -73
  791. data/ext/gecode-2.1.1/gecode/gist/visualisation/vararrayitem.hh +0 -123
  792. data/ext/gecode-2.1.1/gecode/gist/visualnode.cc +0 -303
  793. data/ext/gecode-2.1.1/gecode/gist/visualnode.hh +0 -166
  794. data/ext/gecode-2.1.1/gecode/int.hh +0 -2035
  795. data/ext/gecode-2.1.1/gecode/int/arithmetic.cc +0 -136
  796. data/ext/gecode-2.1.1/gecode/int/arithmetic.hh +0 -440
  797. data/ext/gecode-2.1.1/gecode/int/arithmetic/abs.icc +0 -279
  798. data/ext/gecode-2.1.1/gecode/int/arithmetic/max.icc +0 -253
  799. data/ext/gecode-2.1.1/gecode/int/arithmetic/mult.icc +0 -522
  800. data/ext/gecode-2.1.1/gecode/int/arithmetic/sqr.icc +0 -218
  801. data/ext/gecode-2.1.1/gecode/int/arithmetic/sqrt.icc +0 -138
  802. data/ext/gecode-2.1.1/gecode/int/bool.cc +0 -642
  803. data/ext/gecode-2.1.1/gecode/int/bool/or.icc +0 -1000
  804. data/ext/gecode-2.1.1/gecode/int/branch.cc +0 -301
  805. data/ext/gecode-2.1.1/gecode/int/branch.hh +0 -576
  806. data/ext/gecode-2.1.1/gecode/int/branch/select-val.icc +0 -338
  807. data/ext/gecode-2.1.1/gecode/int/channel.cc +0 -114
  808. data/ext/gecode-2.1.1/gecode/int/channel.hh +0 -259
  809. data/ext/gecode-2.1.1/gecode/int/channel/dom.icc +0 -347
  810. data/ext/gecode-2.1.1/gecode/int/channel/val.icc +0 -276
  811. data/ext/gecode-2.1.1/gecode/int/circuit.hh +0 -175
  812. data/ext/gecode-2.1.1/gecode/int/circuit/base.icc +0 -271
  813. data/ext/gecode-2.1.1/gecode/int/circuit/val.icc +0 -122
  814. data/ext/gecode-2.1.1/gecode/int/count.hh +0 -487
  815. data/ext/gecode-2.1.1/gecode/int/count/int.icc +0 -619
  816. data/ext/gecode-2.1.1/gecode/int/count/rel.icc +0 -144
  817. data/ext/gecode-2.1.1/gecode/int/count/view.icc +0 -449
  818. data/ext/gecode-2.1.1/gecode/int/cumulatives.hh +0 -141
  819. data/ext/gecode-2.1.1/gecode/int/cumulatives/val.icc +0 -429
  820. data/ext/gecode-2.1.1/gecode/int/distinct.hh +0 -341
  821. data/ext/gecode-2.1.1/gecode/int/distinct/dom.icc +0 -750
  822. data/ext/gecode-2.1.1/gecode/int/distinct/ter-dom.icc +0 -136
  823. data/ext/gecode-2.1.1/gecode/int/element.hh +0 -239
  824. data/ext/gecode-2.1.1/gecode/int/element/int.icc +0 -441
  825. data/ext/gecode-2.1.1/gecode/int/element/view.icc +0 -584
  826. data/ext/gecode-2.1.1/gecode/int/exception.icc +0 -163
  827. data/ext/gecode-2.1.1/gecode/int/extensional.hh +0 -415
  828. data/ext/gecode-2.1.1/gecode/int/extensional/dfa.cc +0 -565
  829. data/ext/gecode-2.1.1/gecode/int/extensional/tuple-set.cc +0 -311
  830. data/ext/gecode-2.1.1/gecode/int/gcc.hh +0 -329
  831. data/ext/gecode-2.1.1/gecode/int/gcc/bnd.icc +0 -660
  832. data/ext/gecode-2.1.1/gecode/int/gcc/dom.icc +0 -531
  833. data/ext/gecode-2.1.1/gecode/int/gcc/val.icc +0 -400
  834. data/ext/gecode-2.1.1/gecode/int/int-set.cc +0 -153
  835. data/ext/gecode-2.1.1/gecode/int/int-set.icc +0 -191
  836. data/ext/gecode-2.1.1/gecode/int/linear-bool.cc +0 -220
  837. data/ext/gecode-2.1.1/gecode/int/linear-int.cc +0 -240
  838. data/ext/gecode-2.1.1/gecode/int/linear.hh +0 -1849
  839. data/ext/gecode-2.1.1/gecode/int/linear/bool-post.cc +0 -433
  840. data/ext/gecode-2.1.1/gecode/int/linear/int-bin.icc +0 -605
  841. data/ext/gecode-2.1.1/gecode/int/linear/int-dom.icc +0 -539
  842. data/ext/gecode-2.1.1/gecode/int/linear/int-post.cc +0 -493
  843. data/ext/gecode-2.1.1/gecode/int/rel.cc +0 -431
  844. data/ext/gecode-2.1.1/gecode/int/rel.hh +0 -657
  845. data/ext/gecode-2.1.1/gecode/int/rel/eq.icc +0 -848
  846. data/ext/gecode-2.1.1/gecode/int/rel/lex.icc +0 -248
  847. data/ext/gecode-2.1.1/gecode/int/rel/nq.icc +0 -269
  848. data/ext/gecode-2.1.1/gecode/int/sorted.cc +0 -91
  849. data/ext/gecode-2.1.1/gecode/int/sorted.hh +0 -117
  850. data/ext/gecode-2.1.1/gecode/int/sorted/matching.icc +0 -182
  851. data/ext/gecode-2.1.1/gecode/int/sorted/narrowing.icc +0 -257
  852. data/ext/gecode-2.1.1/gecode/int/sorted/order.icc +0 -208
  853. data/ext/gecode-2.1.1/gecode/int/sorted/propagate.icc +0 -669
  854. data/ext/gecode-2.1.1/gecode/int/sorted/sortsup.icc +0 -596
  855. data/ext/gecode-2.1.1/gecode/int/var-imp.icc +0 -745
  856. data/ext/gecode-2.1.1/gecode/int/var-imp/bool.cc +0 -104
  857. data/ext/gecode-2.1.1/gecode/int/var-imp/int.cc +0 -407
  858. data/ext/gecode-2.1.1/gecode/int/var/bool.icc +0 -126
  859. data/ext/gecode-2.1.1/gecode/int/var/int.icc +0 -151
  860. data/ext/gecode-2.1.1/gecode/int/view.icc +0 -1894
  861. data/ext/gecode-2.1.1/gecode/iter.hh +0 -90
  862. data/ext/gecode-2.1.1/gecode/iter/values-minus.icc +0 -130
  863. data/ext/gecode-2.1.1/gecode/kernel.hh +0 -182
  864. data/ext/gecode-2.1.1/gecode/kernel/branching.icc +0 -447
  865. data/ext/gecode-2.1.1/gecode/kernel/core.cc +0 -473
  866. data/ext/gecode-2.1.1/gecode/kernel/core.icc +0 -2295
  867. data/ext/gecode-2.1.1/gecode/kernel/memory-manager.icc +0 -458
  868. data/ext/gecode-2.1.1/gecode/kernel/reflection.cc +0 -921
  869. data/ext/gecode-2.1.1/gecode/kernel/reflection.icc +0 -1012
  870. data/ext/gecode-2.1.1/gecode/kernel/var-imp.icc +0 -433
  871. data/ext/gecode-2.1.1/gecode/kernel/var-map.cc +0 -269
  872. data/ext/gecode-2.1.1/gecode/kernel/var-map.icc +0 -227
  873. data/ext/gecode-2.1.1/gecode/kernel/var-traits.icc +0 -72
  874. data/ext/gecode-2.1.1/gecode/kernel/var-type.icc +0 -915
  875. data/ext/gecode-2.1.1/gecode/kernel/var.icc +0 -120
  876. data/ext/gecode-2.1.1/gecode/kernel/view.icc +0 -611
  877. data/ext/gecode-2.1.1/gecode/minimodel.hh +0 -1165
  878. data/ext/gecode-2.1.1/gecode/minimodel/arithmetic.cc +0 -179
  879. data/ext/gecode-2.1.1/gecode/search.hh +0 -752
  880. data/ext/gecode-2.1.1/gecode/search/reco-stack.icc +0 -237
  881. data/ext/gecode-2.1.1/gecode/serialization.hh +0 -149
  882. data/ext/gecode-2.1.1/gecode/serialization/boost.cc +0 -78
  883. data/ext/gecode-2.1.1/gecode/serialization/javascript.cc +0 -340
  884. data/ext/gecode-2.1.1/gecode/serialization/register.cc +0 -8142
  885. data/ext/gecode-2.1.1/gecode/set.hh +0 -970
  886. data/ext/gecode-2.1.1/gecode/set/projectors.hh +0 -438
  887. data/ext/gecode-2.1.1/gecode/set/projectors/formula.cc +0 -312
  888. data/ext/gecode-2.1.1/gecode/set/rel-op/common.icc +0 -557
  889. data/ext/gecode-2.1.1/gecode/set/rel-op/inter.icc +0 -409
  890. data/ext/gecode-2.1.1/gecode/set/rel/re-subset.icc +0 -172
  891. data/ext/gecode-2.1.1/gecode/set/select.cc +0 -135
  892. data/ext/gecode-2.1.1/gecode/set/select.hh +0 -233
  893. data/ext/gecode-2.1.1/gecode/set/select/disjoint.cc +0 -308
  894. data/ext/gecode-2.1.1/gecode/set/select/disjoint.icc +0 -75
  895. data/ext/gecode-2.1.1/gecode/set/select/idxarray.hh +0 -113
  896. data/ext/gecode-2.1.1/gecode/set/select/idxarray.icc +0 -155
  897. data/ext/gecode-2.1.1/gecode/set/select/inter.icc +0 -349
  898. data/ext/gecode-2.1.1/gecode/set/select/union.icc +0 -371
  899. data/ext/gecode-2.1.1/gecode/set/select/unionConst.icc +0 -334
  900. data/ext/gecode-2.1.1/gecode/set/var-imp/set.cc +0 -214
  901. data/ext/gecode-2.1.1/gecode/set/var/set.icc +0 -303
  902. data/ext/gecode-2.1.1/gecode/set/view.icc +0 -1503
  903. data/ext/gecode-2.1.1/gecode/set/view/complement.icc +0 -629
  904. data/ext/gecode-2.1.1/gecode/support/block-allocator.icc +0 -158
  905. data/ext/gecode-2.1.1/gecode/support/config.icc.in +0 -80
  906. data/ext/gecode-2.1.1/gecode/support/sentinel-stack.icc +0 -122
  907. data/ext/gecode-2.1.1/gecode/support/symbol.cc +0 -226
  908. data/ext/gecode-2.1.1/gecode/support/symbol.icc +0 -130
  909. data/ext/gecode-2.1.1/misc/gecode-gist.pc.in +0 -45
  910. data/ext/gecode-2.1.1/misc/gecode-minimodel.pc.in +0 -45
  911. data/ext/gecode-2.1.1/misc/gecode-search.pc.in +0 -45
  912. data/ext/gecode-2.1.1/misc/gecode-serialization.pc.in +0 -45
  913. data/ext/gecode-2.1.1/misc/gecode.pc.in +0 -45
  914. data/ext/gecode-2.1.1/misc/genstatistics.perl +0 -178
  915. data/ext/gecode-2.1.1/misc/genvariables.perl +0 -905
  916. data/lib/gecoder/interface/constraints/set_enum/select.rb +0 -79
  917. data/lib/gecoder/interface/model.rb +0 -453
  918. data/lib/gecoder/interface/model_sugar.rb +0 -84
  919. data/specs/constraints/set_enum/select.rb +0 -73
@@ -1,1111 +0,0 @@
1
- /*
2
- * Main authors:
3
- * Christian Schulte <schulte@gecode.org>
4
- * Guido Tack <tack@gecode.org>
5
- *
6
- * Copyright:
7
- * Christian Schulte, 2005
8
- * Guido Tack, 2005
9
- *
10
- * Last modified:
11
- * $Date: 2008-02-29 08:26:04 +0100 (Fri, 29 Feb 2008) $ by $Author: tack $
12
- * $Revision: 6360 $
13
- *
14
- * This file is part of Gecode, the generic constraint
15
- * development environment:
16
- * http://www.gecode.org
17
- *
18
- * Permission is hereby granted, free of charge, to any person obtaining
19
- * a copy of this software and associated documentation files (the
20
- * "Software"), to deal in the Software without restriction, including
21
- * without limitation the rights to use, copy, modify, merge, publish,
22
- * distribute, sublicense, and/or sell copies of the Software, and to
23
- * permit persons to whom the Software is furnished to do so, subject to
24
- * the following conditions:
25
- *
26
- * The above copyright notice and this permission notice shall be
27
- * included in all copies or substantial portions of the Software.
28
- *
29
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
30
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
31
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
32
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
33
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
34
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
35
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
36
- *
37
- */
38
-
39
- /*
40
- * No code, just contains the group definitions of the
41
- * Doxygen-generated documentation
42
- */
43
-
44
-
45
- /**
46
- * \defgroup Task Functionality by programming task
47
- */
48
-
49
- /**
50
- * \defgroup TaskModel Programming models
51
- * \ingroup Task
52
- */
53
-
54
- /**
55
- * \defgroup TaskModelScript Setting up scripts
56
- *
57
- * Scripts (or models) are programmed by inheriting from the class
58
- * Gecode::Space. For many examples see \ref Example.
59
- *
60
- * \ingroup TaskModel
61
- */
62
-
63
- /**
64
- * \defgroup TaskModelInt Using finite domain integers
65
- * \ingroup TaskModel
66
- */
67
-
68
- /**
69
- * \defgroup TaskModelIntVars Integer variables
70
- * \ingroup TaskModelInt
71
- */
72
-
73
- /**
74
- * \defgroup TaskModelSearch Search engines
75
- *
76
- * Defines search engines. All search engines (but Gecode::LDS, where
77
- * it is not needed) support recomputation. The behaviour of recomputation
78
- * is controlled by a passing a search option object (see the class
79
- * Gecode::Search::Options).
80
- *
81
- * Requires \code #include "gecode/search.hh" \endcode
82
- * \ingroup TaskModel
83
- */
84
-
85
- /**
86
- * \defgroup TaskModelSet Using finite integer sets
87
- * \ingroup TaskModel
88
- */
89
-
90
- /**
91
- * \defgroup TaskModelSetVars Set variables
92
- * \ingroup TaskModelSet
93
- */
94
-
95
- /**
96
- * \defgroup TaskModelCpltSet Using finite integer sets with complete domain representation
97
- * \ingroup TaskModel
98
- */
99
-
100
- /**
101
- * \defgroup TaskModelCpltSetVars Set variables with complete domain representation
102
- * \ingroup TaskModelCpltSet
103
- */
104
-
105
- /**
106
- * \defgroup TaskModelMiniModel Direct modelling
107
- * \ingroup TaskModel
108
- */
109
-
110
- /**
111
- * \defgroup TaskSearch Programming search engines
112
- * \ingroup Task
113
- */
114
-
115
- /**
116
- * \defgroup TaskActor Programming actors
117
- * \ingroup Task
118
- */
119
-
120
- /**
121
- * \defgroup TaskActorInt Programming integer actors
122
- * \ingroup TaskActor
123
- */
124
-
125
- /**
126
- * \defgroup TaskActorSet Programming set actors
127
- * \ingroup TaskActor
128
- */
129
-
130
- /**
131
- * \defgroup TaskActorCpltSet Programming CpltSet actors
132
- * \ingroup TaskActor
133
- */
134
-
135
- /**
136
- * \defgroup TaskVar Programming variables
137
- * \ingroup Task
138
- */
139
-
140
- /**
141
- * \defgroup TaskVarView Programming views for variables
142
- * \ingroup TaskVar
143
- */
144
-
145
- /**
146
- * \defgroup TaskTest Testing
147
- * \ingroup Task
148
- */
149
-
150
- /**
151
- * \defgroup TaskReflSer Reflection and serialization
152
- * \ingroup Task
153
- *
154
- * Reflection allows you to query a Space object for the propagators,
155
- * branchings, and variables that it contains.
156
- *
157
- * Serialization provides methods for producing a text or binary
158
- * representation of a space that can be used to recreate a copy of the space.
159
- */
160
-
161
- /**
162
- * \defgroup TaskReflection Reflection API
163
- *
164
- * The reflection API provides information about the propagators, branchings,
165
- * and variables in a space. More detailed, step-by-step information can be
166
- * found in the \ref PageReflection "reflection tutorial".
167
- *
168
- * Requires \code #include "gecode/kernel.hh" \endcode
169
- *
170
- * \ingroup TaskReflSer
171
- */
172
-
173
- #include "doxygen/reflection.hh"
174
-
175
- /**
176
- * \defgroup TaskSerialization Serialization
177
- *
178
- * The serialization API lets you produce text or binary representations of a
179
- * space, and recreate a copy of the original space from that representation.
180
- * It provides funcionality for creating variables and posting propagators in
181
- * a space using the specifications obtained through reflection.
182
- *
183
- * Requires \code #include "gecode/serialization.hh" \endcode
184
- *
185
- * \ingroup TaskReflSer
186
- */
187
-
188
- /**
189
- * \defgroup Func Common functionality
190
- */
191
-
192
- /**
193
- * \defgroup FuncMem Memory management
194
- * \ingroup Func
195
- */
196
-
197
- /**
198
- * \defgroup FuncThrow Gecode exceptions
199
- * \ingroup Func
200
- */
201
-
202
- /**
203
- * \defgroup FuncSupport Support algorithms and datastructures
204
- *
205
- * These are some common datastructures used in the implementation of
206
- * %Gecode. Maybe they can be also useful to others.
207
- *
208
- * In order to use them, one needs to include the appropriate header-file
209
- * as described in the class and function documentation.
210
- * \ingroup Func
211
- */
212
-
213
- /**
214
- * \defgroup FuncIter Range and value iterators
215
- *
216
- * Both range and value iterators have a rather simple interface
217
- * for controlling iteration (which deviates from what you might be
218
- * used to from other iterators).
219
- *
220
- * The application operator (if \c i is an iterator, it is invoked by \c i() )
221
- * tests whether an iterator has not yet reached
222
- * its end (in this case, \c true is returned). The prefix
223
- * increment operator (if \c i is an iterator, this is invoked as \c ++i)
224
- * moves the iterator to the next element (either next value or next range).
225
- *
226
- * Value iterators provide access to the value by the member function
227
- * \c val(). Range iterators provide access to the smallest, largest, and
228
- * width of the current range by \c min(), \c max(), and \c width()
229
- * respectively.
230
- *
231
- * Requires \code #include "gecode/iter.hh" \endcode
232
- * \ingroup Func
233
- */
234
-
235
- /**
236
- * \defgroup FuncIterRanges Range iterators
237
- *
238
- * A range iterator provides incremental access to a sequence of increasing
239
- * ranges.
240
- *
241
- * Requires \code #include "gecode/iter.hh" \endcode
242
- * \ingroup FuncIter
243
- */
244
-
245
- /**
246
- * \defgroup FuncIterRangesVirt Range iterators with virtual member functions
247
- *
248
- * A range iterator provides incremental access to a sequence of increasing
249
- * ranges. Iterators with virtual member functions have to be used when
250
- * they are combined dynamically, and the actual types hence cannot be
251
- * specified as template arguments.
252
- *
253
- * Requires \code #include "gecode/iter.hh" \endcode
254
- * \ingroup FuncIterRanges
255
- */
256
-
257
- /**
258
- * \defgroup FuncIterValues Value iterators
259
- *
260
- * A value iterator provides incremental access to a sequence of increasing
261
- * values.
262
- *
263
- * Requires \code #include "gecode/iter.hh" \endcode
264
- * \ingroup FuncIter
265
- */
266
-
267
- /**
268
- * \defgroup FuncIterValuesVirt Value iterators with virtual member functions
269
- *
270
- * A value iterator provides incremental access to a sequence of increasing
271
- * values. Iterators with virtual member functions have to be used when
272
- * they are combined dynamically, and the actual types hence cannot be
273
- * specified as template arguments.
274
- *
275
- * Requires \code #include "gecode/iter.hh" \endcode
276
- * \ingroup FuncIterValues
277
- */
278
-
279
- /**
280
- * \defgroup Other Other available functionality
281
- *
282
- */
283
-
284
- /**
285
- * \defgroup FuncIntProp Integer propagators
286
- *
287
- * This module contains a description of all predefined integer
288
- * propagators. They can be reused, for example, for rewriting
289
- * newly defined integer propagators into already available
290
- * propagators.
291
- * \ingroup Other
292
- */
293
-
294
- /**
295
- * \defgroup FuncIntSelView Integer view selection for branching
296
- *
297
- * Contains a description of view selection strategies on integer
298
- * views that can be used together with the generic view/value
299
- * branching class Gecode::ViewValBranching (argument \a ViewSel).
300
- *
301
- * All view selection classes require
302
- * \code #include "gecode/int/branch.hh" \endcode
303
- * \ingroup Other
304
- */
305
-
306
- /**
307
- * \defgroup FuncIntSelVal Integer value selection for branching
308
- *
309
- * Contains a description of value selection strategies on integer
310
- * views that can be used together with the generic view/value
311
- * branching class Gecode::ViewValBranching (argument \a ValSel).
312
- *
313
- * All value selection classes require
314
- * \code #include "gecode/int/branch.hh" \endcode
315
- * \ingroup Other
316
- */
317
-
318
- /**
319
- * \defgroup FuncSetProp Set propagators
320
- *
321
- * This module contains a description of all predefined finite set
322
- * propagators. They can be reused, for example, for rewriting
323
- * newly defined finite set propagators into already available
324
- * propagators.
325
- * \ingroup Other
326
- */
327
-
328
- /**
329
- * \defgroup FuncSetSelView Set view selection for branching
330
- *
331
- * Contains a description of view selection strategies on set
332
- * views that can be used together with the generic view/value
333
- * branching class Gecode::ViewValBranching (argument \a ViewSel).
334
- *
335
- * All view selection classes require
336
- * \code #include "gecode/set/branch.hh" \endcode
337
- * \ingroup Other
338
- */
339
-
340
- /**
341
- * \defgroup FuncSetSelVal Set value selection for branching
342
- *
343
- * Contains a description of value selection strategies on set
344
- * views that can be used together with the generic view/value
345
- * branching class Gecode::ViewValBranching (argument \a ValSel).
346
- *
347
- * All value selection classes require
348
- * \code #include "gecode/set/branch.hh" \endcode
349
- * \ingroup Other
350
- */
351
-
352
- /**
353
- * \defgroup FuncCpltSetProp CpltSet propagators
354
- *
355
- * This module contains a description of all predefined
356
- * propagators for CpltSet variables. They can be reused, for example, for
357
- * rewriting newly defined CpltSet propagators into already available
358
- * propagators.
359
- * \ingroup Other
360
- */
361
-
362
- /**
363
- * \defgroup FuncCpltSetSelView CpltSet view selection for branching
364
- *
365
- * Contains a description of view selection strategies on CpltSet
366
- * views that can be used together with the generic view/value
367
- * branching class Gecode::ViewValBranching (argument \a ViewSel).
368
- *
369
- * All view selection classes require
370
- * \code #include "gecode/cpltset/branch.hh" \endcode
371
- * \ingroup Other
372
- */
373
-
374
- /**
375
- * \defgroup FuncCpltSetSelVal CpltSet value selection for branching
376
- *
377
- * Contains a description of value selection strategies on CpltSet
378
- * views that can be used together with the generic view/value
379
- * branching class Gecode::ViewValBranching (argument \a ValSel).
380
- *
381
- * All value selection classes require
382
- * \code #include "gecode/cpltset/branch.hh" \endcode
383
- * \ingroup Other
384
- */
385
-
386
- /**
387
- * \defgroup Example Example scripts (models)
388
- *
389
- * All scripts are compiled into simple standalone programs. All
390
- * programs understand the several generic and problem-specific
391
- * commandline options. An overview of the options is available
392
- * by invoking the standalone programs with the <code>-help</code>
393
- * commandline option.
394
- *
395
- */
396
-
397
- /**
398
- * \defgroup ExProblem Scripts for problems
399
- * \ingroup Example
400
- *
401
- * These scripts are for small problems that exemplify how to model
402
- * with %Gecode.
403
- *
404
- */
405
-
406
- /**
407
- * \defgroup ExStress Scripts for stress tests
408
- * \ingroup Example
409
- *
410
- * These scripts are for stressing certain system features, typically
411
- * the implementation of a particular constraint.
412
- *
413
- */
414
-
415
- /*
416
- * Collect some definitions for which no reasonable place exists
417
- *
418
- */
419
-
420
- /**
421
- * \namespace Gecode::Support
422
- * \brief %Support algorithms and datastructures
423
- */
424
-
425
- /**
426
- * \mainpage Gecode Reference Documentation
427
- *
428
- * This document provides reference information about
429
- * <A HREF="http://www.gecode.org">%Gecode</A>.
430
- * The documentation is structured into three major groups:
431
- * getting started, common programming tasks, and
432
- * available functionality.
433
- *
434
- * This document corresponds to %Gecode version @VERSION@, please consult
435
- * the changelog for \ref SectionChangeList "recent changes".
436
- *
437
- * \section SecStart Getting started
438
- *
439
- * For your first steps with %Gecode, the following pages may be of interest:
440
- * - \ref PageComp
441
- * - \ref PageUsage
442
- * - \ref PageNotation
443
- * - \ref PageGlossary
444
- *
445
- * To get started with modelling in %Gecode, you may also want to have a look
446
- * at our \ref Example.
447
- *
448
- * \section SecByTask Programming tasks
449
- *
450
- * Documentation is available for the following tasks:
451
- * - \ref TaskModel
452
- * - \ref TaskSearch
453
- * - \ref TaskActor "Programming propagators and branchings"
454
- * - \ref TaskVar
455
- * - \ref TaskTest
456
- * - \ref TaskReflSer
457
- *
458
- * \section SecByFunc Available functionality
459
- *
460
- * The most important functionality is:
461
- * - \ref FuncMem
462
- * - \ref FuncThrow
463
- *
464
- * The complete functionality can be found \ref Func "here".
465
- *
466
- * The part \ref Other documents existing propagators, variable
467
- * implementations, and so on which serves as documentation of examples.
468
- *
469
- * \section SecIndex List and index content
470
- *
471
- * Additionally, the documentation also features the following parts:
472
- * - \ref PageLic
473
- * - \ref PageChange
474
- *
475
- * The following lists and indices are available
476
- * - \ref PageCodeStat
477
- * - <a class="el" href="modules.html">List of all modules</a>
478
- * - <a class="el" href="annotated.html">List of all classes including brief documentation</a>
479
- * - <a class="el" href="namespaces.html">List of all namespaces including brief documentation</a>
480
- * - <a class="el" href="files.html">List of all files</a>
481
- * - <a class="el" href="hierarchy.html">Class hierarchy</a>
482
- * - <a class="el" href="classes.html">Alphabetical class index</a>
483
- * - <a class="el" href="namespacemembers.html">Namespace members</a>
484
- * - <a class="el" href="functions.html">Class members</a>
485
- * - <a class="el" href="globals.html">File members</a>
486
- */
487
-
488
- /**
489
- * \page PageNotation Notational conventions
490
- *
491
- * Throughout this reference documentation we use some notational conventions
492
- * designed to keep the documentation concise yet understandable. Please
493
- * read the following carefully.
494
- *
495
- * \section NotationArray Array notation
496
- *
497
- * We allow ourselves to refer to the \f$i\f$-th element of an array \f$x\f$
498
- * by \f$x_i\f$. The size of an array \f$x\f$ (either provided by a member
499
- * function \c %size() or clear from context) is denoted \f$|x|\f$.
500
- *
501
- * \section NotationHome The home space
502
- *
503
- * Many functions and member functions take an argument \a home of
504
- * type \c Space*. The home space serves as manager to many
505
- * operations used by variables, views, propagators, spaces, and so
506
- * on. It provides
507
- * services such as failure management, propagation control,
508
- * memory management, and so on. To keep the documentation concise
509
- * the home space is not documented for functions
510
- * and member functions.
511
- *
512
- * \section NotationShare Sharing in update and copy
513
- *
514
- * In member functions that either copy or update an object during
515
- * cloning, an argument \a share of type \c bool is available. This
516
- * Boolean value controls whether during cloning the data structure at
517
- * hand will be shared among the newly created cloned space and the original
518
- * or whether two independent copies are created. Some functions (such
519
- * as \c copy for spaces (Gecode::Space) or \c copy for propagators
520
- * (Gecode::Propagator) also feature this argument. Here it is used
521
- * to pass on the Boolean value to other datastructures used inside spaces
522
- * or propagators.
523
- *
524
- * The actual value the \a share argument has is defined by the search
525
- * engine: when a search engine uses the \a clone member function of
526
- * a space it decides whether sharing is to be used in the cloning of
527
- * the space or not. If the search engine is single-threaded, it will
528
- * use full sharing (\a share will be true). Only if the search engine
529
- * uses concurrency or parallelism with more than a single thread,
530
- * it will pass false as value. This means that by not sharing data structures
531
- * among spaces which are to be used in different threads, all parts of
532
- * %Gecode but the actual search engine do not need to provide concurrency
533
- * control.
534
- *
535
- * As examples for data structures which are sensitive to sharing, consider
536
- * Gecode::SharedArray, Gecode::IntSet, and Gecode::DFA.
537
- */
538
-
539
- /**
540
- \page PageGlossary Brief glossary
541
-
542
- This page gives brief explanations about some of the most
543
- frequently occurring terms (currently limited to important
544
- entities manifest in the implementation) used in the %Gecode
545
- reference documentation.
546
-
547
- \section GlossaryActor Actor
548
-
549
- An actor is a branching (\ref GlossaryBranching), a propagator
550
- (\ref GlossaryPropagator), or an advisor (\ref
551
- GlossaryAdvisor). Actors provide common functionality such as
552
- member functions for copying during cloning, memory allocation,
553
- and so on. Actors are implemented by the class
554
- Gecode::Actor. More on programming actors can be found in the
555
- module \ref TaskActor.
556
-
557
- \section GlossaryBranching Branching
558
-
559
- A branching defines the shape of the search tree. Branchings are
560
- also known as labelings or distributors, and a branching creates
561
- a series of choice points. Branchings are implemented by the
562
- class Gecode::Branching. A common abstraction for defining
563
- branchings based on view and value selection is provided by the
564
- class Gecode::ViewValBranching.
565
-
566
- \section GlossaryBranchingDesc Branching description
567
-
568
- A branching description speeds up recomputation by providing
569
- batch recomputation. It is created by a branching (\ref
570
- GlossaryBranching) and allows to replay the effect of that
571
- branching without the need to first perform constraint
572
- propagation. The base-class for branching descriptions is
573
- Gecode::BranchingDesc. An example for a branching description
574
- that works together with branchings based on view and value
575
- selection is Gecode::PosValDesc.
576
-
577
- \section GlossarySpace Computation space
578
-
579
- A computation space (space for short) comprises all entities for
580
- a constraint problem to be solved, including all actors (\ref
581
- GlossaryActor) and variables (\ref GlossaryVariable). A space can
582
- be seen as corresponding to a node in the search tree. It
583
- organizes constraint propagation, the branching process,
584
- exploration, and memory management. Spaces are implemented by the
585
- class Gecode::Space. They provide functionality for \ref
586
- TaskModelScript, \ref TaskSearch, and \ref FuncMemSpace.
587
-
588
- \section GlossaryME Modification event
589
-
590
- A modification event describes how a view (\ref GlossaryView) or
591
- variable implementation (\ref GlossaryVarImp) is changed by an
592
- update operation performed on the view or variable. Each variable
593
- domain defines its own modification events (see \ref
594
- TaskActorIntMEPC and \ref TaskActorSetMEPC). However modification
595
- events that describe generic events such as failure, no
596
- modification, or assignment to a single value are predefined (see
597
- \ref TaskVarMEPC).
598
-
599
- \section GlossaryPropCond Propagation condition
600
-
601
- A propagation condition defines when a propagator requires to be
602
- re-executed. Re-execution is controlled by the modification events
603
- that occur on the variables the propagator depends on (see \ref
604
- GlossaryPropagator). Propagation conditions and the relation
605
- between propagation conditions and modification events depends on
606
- the variable domain (see \ref TaskActorIntMEPC and \ref
607
- TaskActorSetMEPC). However, the propagation conditions that
608
- states re-execution when a variable becomes assigned is generic
609
- (see \ref TaskVarMEPC).
610
-
611
- \section GlossaryPropagator Propagator
612
-
613
- A propagator implements a constraint (actually, a constraint can
614
- be implemented by a collection of propagators). Execution by a
615
- propagator is defined by its dependencies: the views (referring to
616
- some variables) together with their propagation conditions. A
617
- propagator is implemented by inheriting from the class
618
- Gecode::Propagator. Common abstractions for propagators are also
619
- available (see \ref TaskPropPat, \ref TaskPropRePat, and \ref
620
- TaskPropSetPat).
621
-
622
- \section GlossaryAdvisor Advisor
623
-
624
- An advisor supports a single propagator. An advisor is executed
625
- whenever the view it has subscribed to is modified. Execution of
626
- an advisor amounts to executing the advise member function of the
627
- advisor's propagator where the advisor and delta information
628
- (\ref GlossaryDelta) are passed as arguments. An advisor is
629
- implemented by inheriting from the class Gecode::Advisor.
630
-
631
- \section GlossaryDelta Delta information
632
-
633
- Delta information is implemented as an object which is a subclass
634
- of Gecode::Delta. A Delta object describes how the domain of a
635
- variable has been changed by an operation on the variable. Delta
636
- objects are passed together with advisors to the advise member
637
- function of a propagator.
638
-
639
- \section GlossaryMED Modification event delta
640
-
641
- A propagator maintains a delta of modification events for all
642
- variable types. A modification event delta is available to the
643
- propagate and cost member functions of a propagator and describes
644
- the modification events that have occurred since the last execution of a
645
- propagator. A modification event delta is highly abstract: it
646
- does not reveal for which variable a particular modification
647
- event occurred, it only reveals that a certain modification event
648
- has occurred for any variable of a given variable
649
- type. Modification events for a particular variable type can be
650
- extracted from a modification event delta through the respective
651
- view or variable implementation (see for example \ref
652
- TaskActorIntView or \ref TaskActorSetView).
653
-
654
- \section GlossaryVariable Variable
655
-
656
- A variable is used for modeling problems, be it for direct
657
- modeling or for modeling through some interface. A variable
658
- provides only those operations useful for modeling and excludes
659
- in particular operations that can modify the variable domain
660
- directly. A variable is implemented by a variable implementation
661
- (see below).
662
-
663
- \section GlossaryVarImp Variable implementation
664
-
665
- A variable implementation is implemented by inheriting from
666
- Gecode::Variable. It implements the variable domain and provides
667
- operations to access and modify the domain. Examples of variable
668
- implementations are Gecode::Int::IntVarImp and
669
- Gecode::Set::SetVarImp.
670
-
671
- \section GlossaryView View
672
-
673
- A view offers essentially the same interface as a variable
674
- implementation and allows both domain access and
675
- modification. Typically, several views exist for the same
676
- variable implementation to obtain several constraints from the
677
- same propagator. Examples of views are \ref TaskActorIntView and
678
- \ref TaskActorSetView.
679
-
680
- */
681
-
682
- /**
683
- * \page PageUsage Compiling and linking against Gecode
684
- *
685
- * \section SecUsageInclude Including header files
686
- *
687
- * Deciding which header files must be included when using %Gecode is
688
- * quite straightforward. There are the following header files for inclusion:
689
- * - gecode/support.hh must always included (support.hh header is
690
- * included from kernel.hh)
691
- * - gecode/kernel.hh must always be included (the header files below
692
- * also always include kernel.hh).
693
- * - gecode/search.hh must be included, if search engines are used
694
- * (see for example \ref TaskModelSearch).
695
- * - gecode/int.hh must be included, if any integer functionality is used
696
- * (see for example \ref TaskModelInt and \ref TaskActorInt).
697
- * - gecode/set.hh must be included, if any finite set functionality is used
698
- * (see for example \ref TaskModelSet and \ref TaskActorSet).
699
- * - gecode/cpltset.hh must be included, if any complete finite set
700
- * functionality is used
701
- * (see for example \ref TaskModelCpltSet and \ref TaskActorCpltSet).
702
- * - gecode/minimodel.hh must be included, if direct modelling support
703
- * is used (see for example \ref TaskModelMiniModel).
704
- * - gecode/serialization.hh must be included, if support for serialization
705
- * is used.
706
- *
707
- * Other functionality is available through a set of header files. For example
708
- * to access the implementation of particular propagators, a particular header
709
- * file must be included. The header file to be included is always mentioned
710
- * in the documentation of the class or function.
711
- *
712
- * \section SecUsageLink Linking libraries
713
- *
714
- * Setting the exact name for a library on a particular platform aside,
715
- * inclusion of header files basically coincides with against which
716
- * library must be linked. That is:
717
- * - If gecode/support.hh is included, linking againg the support library is
718
- * required.
719
- * - If gecode/kernel.hh is included, linking against the kernel library is
720
- * required.
721
- * - If gecode/search.hh is included, linking against the search library is
722
- * required.
723
- * - If gecode/int.hh is included, linking against the integer library is
724
- * required.
725
- * - If gecode/set.hh is included, linking against the set library is
726
- * required.
727
- * - If gecode/cpltset.hh is included, linking against the cpltset library is
728
- * required.
729
- * - If gecode/minimodel.hh is included, linking against the minimodel
730
- * library is required.
731
- * - If gecode/serialization.hh is included, linking against the
732
- * serialization library is required.
733
- *
734
- * The functionality in \ref FuncIter requires no
735
- * library for linking. Reusing integer or set propagators of course
736
- * require the integer or set library.
737
- *
738
- * If there is a difference between library and DLL (such as on Windows)
739
- * linking must be done against the appropriate library and the
740
- * corresponding DLL must be available for execution (such as in the
741
- * PATH environment variable).
742
- *
743
- * The libraries contain code that is executed at link time (for registering
744
- * part of the reflection functionality). If you create static libraries,
745
- * this code will not be linked into your executable as it is not directly
746
- * referenced. You will have to tell your linker to include all symbols from
747
- * the library (e.g. using -Wl,--whole-archive on Linux). Please refer to your
748
- * linker documentation.
749
- *
750
- * \section SecUsageLibraries Library names
751
- *
752
- * \subsection SULA Windows with Visual Studio
753
- *
754
- * - Support library and DLL: GecodeSupport.lib and GecodeSupport.dll
755
- * - Kernel library and DLL: GecodeKernel.lib and GecodeKernel.dll
756
- * - Search library and DLL: GecodeSearch.lib and GecodeSearch.dll
757
- * - Integer library and DLL: GecodeInt.lib and GecodeInt.dll
758
- * - Set library and DLL: GecodeSet.lib and GecodeSet.dll
759
- * - CpltSet library and DLL: GecodeCpltSet.lib and GecodeCpltSet.dll
760
- * - Minimodel library and DLL: GecodeMiniModel.lib and GecodeMiniModel.dll
761
- * - Serialization library and DLL: GecodeSerialization.lib and
762
- * GecodeSerialization.dll
763
- *
764
- * \subsection SULB Unix (Linux, MacOS X)
765
- *
766
- * Depending on whether %Gecode was compiled as a static or as a dynamic
767
- * library, different filename suffixes are used on different Unix platforms.
768
- * All library names follow the following scheme:
769
- *
770
- * - Support library: libgecodesupport.&lt;EXT&gt;
771
- * - Kernel library: libgecodekernel.&lt;EXT&gt;
772
- * - Search library: libgecodesearch.&lt;EXT&gt;
773
- * - Integer library: libgecodeint.&lt;EXT&gt;
774
- * - Set library: libgecodeset.&lt;EXT&gt;
775
- * - CpltSet library: libgecodecpltset.&lt;EXT&gt;
776
- * - Minimodel library: libgecodeminimodel.&lt;EXT&gt;
777
- * - Serialization library: libgecodeserialization.&lt;EXT&gt;
778
- *
779
- * where &lt;EXT&gt; depends on the library type and platform:
780
- *
781
- * - libgecode[...].a for static libaries on all Unix flavors
782
- * - libgecode[...].so for shared libraries on Linux
783
- * - libgecode[...].dylib for shared libraries on MacOS X
784
- *
785
- * You can use for example
786
- *
787
- * <code>gcc -L$GPREFIX/lib -lgecodekernel</code>
788
- *
789
- * to link the kernel library, if the libraries are found in
790
- * <code>$GPREFIX/lib</code>.
791
- */
792
-
793
- /**
794
- * \page PageComp Compiling and installing Gecode
795
- *
796
- * The %Gecode library, including examples and documentation, can be built
797
- * on all recent versions of Windows, Linux, and MacOS X. Porting to other
798
- * Unix flavors should be easy, if any change is necessary at all.
799
- *
800
- * \section Prerequisites
801
- *
802
- * In order to compile %Gecode, you need a standard Unix toolchain including
803
- * the following programs:
804
- *
805
- * - a bash-compatible shell
806
- * - GNU make
807
- * - sed
808
- * - cp
809
- * - diff
810
- * - tar
811
- * - perl
812
- *
813
- * These are available in all standard installations of Linux. On MacOS X,
814
- * you need to install the Apple developer tools. For
815
- * Windows, we require the
816
- * <a href="http://www.cygwin.com/">Cygwin environment</a> that provides
817
- * all necessary tools.
818
- *
819
- * We currently support
820
- * - the Microsoft Visual C++ compilers for Windows. The Microsoft
821
- * Visual C++ 2005 Express Edition is available free of charge from
822
- * <a href="http://msdn.microsoft.com/vstudio/express/visualc/">the MSDN
823
- * web pages</a>.
824
- * - the GNU Compiler Collection (gcc) for Windows and Unix flavors such as
825
- * Linux and MacOS X. The GNU gcc is open source software and available
826
- * from <a href="http://gcc.gnu.org/">the GCC home page</a>. It is included
827
- * in all Linux distributions and the Apple MacOS X developer tools.
828
- * %Gecode requires at least version 3.4 of gcc. We recommend using version
829
- * 4.2 or higher. Very unfortunately, the parser used in versions of gcc
830
- * before 3.4 is broken and hence cannot compile %Gecode.
831
- *
832
- * The Intel C++ compiler is currently not supported.
833
- *
834
- * \section CompConf Configuring the sources
835
- *
836
- * %Gecode uses GNU autoconf to acquire information about the system it is
837
- * compiled on. Typically, you need to run the <code>configure</code>
838
- * script in the toplevel directory.
839
- *
840
- * To setup %Gecode for your particular system, you may need to add one or
841
- * more of the following options to <code>configure</code>:
842
- *
843
- * - When using the Microsoft Visual C++ compiler, add
844
- * <code>CC=cl CXX=cl</code> to your
845
- * invocation of <code>configure</code>
846
- * - To install %Gecode somewhere else than the default
847
- * <code>/usr/local</code>, use the <code>--prefix=[...]</code> switch
848
- * - You can enable and disable the individual modules %Gecode consists of
849
- * using <code>--enable-[MODULE]</code> and <code>--disable-[MODULE]</code>
850
- *
851
- * You can get a list of all supported configuration options by calling
852
- * <code>configure</code> with the <code>--help</code> switch.
853
- *
854
- * \subsection CompConfExamples Example configurations
855
- *
856
- * To compile %Gecode on a <b>Windows machine using the Microsoft compiler</b>, use
857
- *
858
- * <code>./configure CC=cl CXX=cl</code>
859
- *
860
- * To compile only the %Gecode library <b>without examples</b> on a Unix machine, use
861
- *
862
- * <code>./configure --disable-examples</code>
863
- *
864
- * To compile on a <b>Unix machine</b> using a different than the default
865
- * <code>gcc</code> compiler, and install under <code>/opt/gecode</code>, use
866
- *
867
- * <code>./configure --prefix=/opt/gecode CC=gcc-4.0 CXX=g++-4.0</code>
868
- *
869
- * To compile a <b>debug build</b> on Unix, turning on all assertions and not
870
- * inlining anything, use
871
- *
872
- * <code>./configure --enable-debug</code>
873
- *
874
- * To compile on <b>Cygwin</b>, but linking against the <b>Windows libraries</b> instead
875
- * of the Cygwin libraries, use
876
- *
877
- * <code>./configure CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin"</code>
878
- * Note that we only support building static libraries on Cygwin.
879
- *
880
- * To compile on a system using a different than the default compiler,
881
- * and a <code>/bin/sh</code> that is not bash compatible (e.g. a
882
- * <b>Solaris machine</b>), use
883
- *
884
- * <code>./configure --with-host-os=linux \ </code><br>
885
- * <code>&nbsp;&nbsp;&nbsp;CC="gcc-4.0" CXX="g++-4.0" \ </code><br>
886
- * <code>&nbsp;&nbsp;&nbsp;SHELL="/bin/bash"</code><br>
887
- * <code>make SHELL="/bin/bash"</code>
888
- *
889
- * You can compile as <b>"universal binary" on a Mac OS
890
- * machine</b>. Configure with
891
- *
892
- * <code>./configure --with-architectures=i386,ppc</code>
893
- *
894
- * For building universal binaries on a PowerPC machine, you have to supply
895
- * the path to the universal SDK (which is the default on Intel based Macs):
896
- *
897
- * <code>./configure --with-architectures=i386,ppc</code>
898
- * <code>&nbsp;&nbsp;&nbsp;--with-sdk=/Developer/SDKs/MacOSX10.4u.sdk</code>
899
- *
900
- * \subsection CompConfUsr Passing options for compilation
901
- *
902
- * Additional options for compilation can be passed to the compiler
903
- * from the make commandline via the variable <code>CXXUSR</code>. For
904
- * example, to pass to gcc the additional option "-mtune=i686" the following
905
- * can be used:
906
- *
907
- * <code>make CXXUSR="-mtune=i686"</code>
908
- *
909
- * \subsection CompConfSepDir Compiling in a separate directory
910
- *
911
- * The %Gecode library can be built in a separate directory. This is useful
912
- * if you do not want to clutter the source tree with all the object files
913
- * and libraries.
914
- *
915
- * Configuring %Gecode in a separate directory is easy. Assume that the
916
- * sources can be found in directory <code>$GSOURCEDIR</code>, change to
917
- * the directory where you want to compile %Gecode and call
918
- *
919
- * <code>$GSOURCEDIR/configure [options]</code>
920
- *
921
- * This will generate all necessary files in the new build directory.
922
- *
923
- * \section CompComp Compiling the sources
924
- *
925
- * After successful configuration, simply invoking
926
- *
927
- * <code>make</code>
928
- *
929
- * in the toplevel %Gecode directory will compile the whole library.
930
- *
931
- * \section CompExamples Running the examples
932
- *
933
- * After compiling the examples, they can be run directly from the command
934
- * line. For instance, try the %Golomb Rulers Problem:
935
- *
936
- * <code>./examples/golomb</code>
937
- *
938
- * or (when running Windows):
939
- *
940
- * <code>./examples/golomb.exe</code>
941
- *
942
- * On some platforms, you may need to set environment variables like
943
- * <code>LD_LIBRARY_PATH</code> (Linux) or <code>DYLD_LIBRARY_PATH</code>
944
- * (Mac OS) to the toplevel compile directory (where the dynamic libraries
945
- * are placed after compilation).
946
- *
947
- * For more information on example scripts see \ref Example.
948
- *
949
- * \section Installation Installation
950
- *
951
- * After a successful compilation, you can install the %Gecode library
952
- * and all header files necessary for compiling against it by invoking
953
- *
954
- * <code>make install</code>
955
- *
956
- * in the build directory.
957
- *
958
- * \section DepMngmt Dependency management
959
- *
960
- * The dependencies between source files are not handled automatically. If you
961
- * are using a Gecode version from our subversion repository or if you
962
- * modified any of the source files, you will have to call
963
- * <code>make depend</code> before compilation in order to determine the
964
- * source dependencies.
965
- *
966
- * Dependency management is only needed for recompiling Gecode after changing
967
- * something. In an unmodified version (or after a <code>make clean</code>)
968
- * all files are compiled anyway.
969
- *
970
- * \section UnsupPlatfrms Compiling for unsupported platforms
971
- *
972
- * If you want to try compiling Gecode on a platform that we do not
973
- * mention, you can override the platform tests during
974
- * <code>configure</code>. There are two options to specify the type of
975
- * platform:
976
- *
977
- * - <code>--with-host-os=[linux|darwin|windows]</code>
978
- * - <code>--with-compiler-vendor=[gnu|microsoft]</code>
979
- *
980
- * Using the first option, you can state that your platform should behave like
981
- * Linux, Darwin (which is actually BSD), or Windows. This affects mainly
982
- * the filenames and the tools used to generate shared and static libraries.
983
- *
984
- * The second option says
985
- * that your compiler can be used very much like the gnu compiler
986
- * <code>gcc</code>, or the Microsoft compiler <code>cl</code>.
987
- * Please let us know of any successfull attempt at
988
- * compiling Gecode on other platforms.
989
- *
990
- * \section MakeTargets Useful Makefile targets
991
- *
992
- * The main %Gecode Makefile supports the following useful targets:
993
- *
994
- * - <code>all</code> compiles all parts of the library that were enabled
995
- * during <code>configure</code>, and the examples if
996
- * enabled
997
- * - <code>install</code> installs library, headers and examples (if enabled)
998
- * into the <code>prefix</code> given at
999
- * <code>configure</code>
1000
- * - <code>clean</code> removes object files
1001
- * - <code>veryclean</code> removes object files, libraries, and all files
1002
- + generated during <code>make</code>
1003
- * - <code>distclean</code> removes object files, libraries, and all
1004
- * generated files
1005
- * - <code>depend</code> generates dependencies between source files
1006
- * - <code>test</code> compiles the test suite
1007
- * - <code>doc</code> generates this reference documentation using doxygen
1008
- * - <code>installdoc</code> installs the documentation
1009
- * - <code>dist</code> creates a source distribution as a tgz archive, not
1010
- * including the contributions found in the <code>contribs</code> directory
1011
- * - <code>distdir</code> creates a source distribution in a directory, not
1012
- * including the contributions found in the <code>contribs</code> directory
1013
- * - <code>distdoc</code> creates tgz and zip archives of the documentation
1014
- * - <code>distzip</code> creates a binary distribution as a zip archive
1015
- * - <code>disttgz</code> creates a binary distribution as a tgz archive
1016
- *
1017
- * \section CompileGist Compilation with Gist
1018
- *
1019
- * The %Gecode Interactive Search Tool (Gist) is a graphical search engine for
1020
- * %Gecode, built on top of the
1021
- * <a href="http://trolltech.com/products/qt">Qt GUI toolkit</a>.
1022
- *
1023
- * In order to compile %Gecode with Gist, you need an installation of the Qt
1024
- * library including the development header files. The source code for Qt is
1025
- * <a href="http://trolltech.com/downloads/opensource">available from
1026
- * Trolltech under the GPL license.</a>
1027
- *
1028
- * <b>
1029
- * Please note that if you want to develop closed-source software with %Gecode
1030
- * and Gist, you will need to get a commercial license for Qt from Trolltech!
1031
- * </b>
1032
- *
1033
- * If you are developing on Windows using the Microsoft Visual C++ compiler,
1034
- * make sure to compile the Qt library with the same compiler (this is
1035
- * possible with Qt version 4.3.2, even if the download page does not say so).
1036
- *
1037
- * If the <code>qmake</code> tool is in your shell path, all you need to do to
1038
- * enable Gist is to configure %Gecode with the switch
1039
- * <code>--enable-gist</code>.
1040
- */
1041
-
1042
-
1043
- /**
1044
- * \page PageHowToChange_2 How to Change from Gecode 1.3.1 to Gecode 2.0.x
1045
- *
1046
-
1047
- As Gecode 2.0.0 is a major revision of Gecode, your programs that are written
1048
- for Gecode 1.3.1 are likely to require some modifications before they work
1049
- again. All modifications are straightforward, though.
1050
-
1051
- This short summary shows how to adapt your models and linker invocation, for
1052
- changes to propagator implementations, etc, please consult the changelog.
1053
-
1054
- \section SecChange2IntBool IntVar and BoolVar
1055
-
1056
- Boolean variables (BoolVar) are not any longer integer variables
1057
- (IntVar). The same holds for variable arrays (BoolVarArray,
1058
- IntVarArray). So, you can not mix Boolean and integer variables
1059
- in the same array (use two different arrays) and you can not cast
1060
- between them. If you want to link the value of a BoolVar to the
1061
- value of an IntVar you have to use a \ref TaskModelIntChannel
1062
- "channel constraint". Posting constraints remains unchanged, as
1063
- all constraints offer two overloaded versions (one for IntVar,
1064
- one for BoolVar).
1065
-
1066
- \section SecChange2Regular Regular constraint
1067
-
1068
- The regular constraint has been renamed to extensional (after
1069
- all, it is an extensionally specified constraint). The old name
1070
- is still available in the MiniModel module.
1071
-
1072
- If you want to use regular expressions, you have to add
1073
- \code #include "gecode/int/minimodel.hh" \endcode
1074
- to your file as they moved to the MiniModel module.
1075
-
1076
- \section SecChange2Bool Boolean constraints
1077
-
1078
- In order to make the interface to Boolean constraints more
1079
- regular and similar to set constraints, Boolean constraints are
1080
- available as rel constraints. That is, instead of
1081
- \code bool_and(home, x, y, z); \endcode
1082
- you have to write
1083
- \code rel(home, x, BOT_AND, y, z); \endcode
1084
- Likewise, for arrays you have to write
1085
- \code rel(home, BOT_AND, x, y); \endcode
1086
- instead of
1087
- \code bool_and(home, x, y); \endcode
1088
- More information is available \ref TaskModelIntRelBool "here".
1089
-
1090
- \section SecChange2Branching Branching
1091
-
1092
- Values and types for selecting how to branch have been made uniform.
1093
- Replace BVAL_* by INT_VAL_*, BVAR_* by INT_VAR_*, and so on.
1094
-
1095
- \section SecChange2GCC Global cardinality constraint
1096
-
1097
- The interface for the global cardinality constraint has been
1098
- simplified. The constraint is now called count. Please check the
1099
- documentation for \ref TaskModelIntCard "details".
1100
-
1101
- \section SecChange2Sorted Sortedness constraint
1102
-
1103
- The sortedness constraint has been renamed to sorted.
1104
-
1105
- \section Linking
1106
-
1107
- Some generic functionality has been put into its own library (\code
1108
- libgecodesupport \endcode on Unix systems, \code GecodeSupport.dll \endcode on
1109
- Windows). You have to link against this library now.
1110
-
1111
- */