gecoder-with-gecode 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -0,0 +1,45 @@
1
+ # Package Information for pkg-config
2
+
3
+ # Main authors:
4
+ # Guido Tack <tack@gecode.org>
5
+ #
6
+ # Copyright:
7
+ # Guido Tack, 2005
8
+ #
9
+ # Last modified:
10
+ # $Date: 2008-07-11 13:50:21 +0200 (Fri, 11 Jul 2008) $ by $Author: tack $
11
+ # $Revision: 7363 $
12
+ #
13
+ # This file is part of Gecode, the generic constraint
14
+ # development environment:
15
+ # http://www.gecode.org
16
+ #
17
+ # Permission is hereby granted, free of charge, to any person obtaining
18
+ # a copy of this software and associated documentation files (the
19
+ # "Software"), to deal in the Software without restriction, including
20
+ # without limitation the rights to use, copy, modify, merge, publish,
21
+ # distribute, sublicense, and/or sell copies of the Software, and to
22
+ # permit persons to whom the Software is furnished to do so, subject to
23
+ # the following conditions:
24
+ #
25
+ # The above copyright notice and this permission notice shall be
26
+ # included in all copies or substantial portions of the Software.
27
+ #
28
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
+
36
+ prefix=@cygpathprefix@
37
+ exec_prefix=@exec_prefix@
38
+ libdir=@libdir@
39
+ includedir=@includedir@
40
+
41
+ Name: Gecode Minimodel
42
+ Description: Generic Constraint Development Environment Minimodel
43
+ Version: @VERSION@
44
+ Libs: @MINUSLDIR@ @LINKLIBDIR@@LINKPREFIX@@MM@@USERSUFFIX@@LINKSUFFIX@ @LINKLIBDIR@@LINKPREFIX@@KERNEL@@USERSUFFIX@@LINKSUFFIX@ @LINKLIBDIR@@LINKPREFIX@@SUPPORT@@USERSUFFIX@@LINKSUFFIX@
45
+ Cflags: -I${includedir} @PKG_CONFIG_CXXFLAGS@
@@ -0,0 +1,45 @@
1
+ # Package Information for pkg-config
2
+
3
+ # Main authors:
4
+ # Guido Tack <tack@gecode.org>
5
+ #
6
+ # Copyright:
7
+ # Guido Tack, 2005
8
+ #
9
+ # Last modified:
10
+ # $Date: 2008-07-11 13:50:21 +0200 (Fri, 11 Jul 2008) $ by $Author: tack $
11
+ # $Revision: 7363 $
12
+ #
13
+ # This file is part of Gecode, the generic constraint
14
+ # development environment:
15
+ # http://www.gecode.org
16
+ #
17
+ # Permission is hereby granted, free of charge, to any person obtaining
18
+ # a copy of this software and associated documentation files (the
19
+ # "Software"), to deal in the Software without restriction, including
20
+ # without limitation the rights to use, copy, modify, merge, publish,
21
+ # distribute, sublicense, and/or sell copies of the Software, and to
22
+ # permit persons to whom the Software is furnished to do so, subject to
23
+ # the following conditions:
24
+ #
25
+ # The above copyright notice and this permission notice shall be
26
+ # included in all copies or substantial portions of the Software.
27
+ #
28
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
+
36
+ prefix=@cygpathprefix@
37
+ exec_prefix=@exec_prefix@
38
+ libdir=@libdir@
39
+ includedir=@includedir@
40
+
41
+ Name: Gecode Search Engines
42
+ Description: Generic Constraint Development Environment Search Engines
43
+ Version: @VERSION@
44
+ Libs: @MINUSLDIR@ @LINKLIBDIR@@LINKPREFIX@@SUPPORT@@USERSUFFIX@@LINKSUFFIX@ @LINKLIBDIR@@LINKPREFIX@@KERNEL@@USERSUFFIX@@LINKSUFFIX@ @LINKLIBDIR@@LINKPREFIX@@SEARCH@@USERSUFFIX@@LINKSUFFIX@
45
+ Cflags: -I${includedir} @PKG_CONFIG_CXXFLAGS@
@@ -0,0 +1,45 @@
1
+ # Package Information for pkg-config
2
+
3
+ # Main authors:
4
+ # Guido Tack <tack@gecode.org>
5
+ #
6
+ # Copyright:
7
+ # Guido Tack, 2005
8
+ #
9
+ # Last modified:
10
+ # $Date: 2008-07-11 13:50:21 +0200 (Fri, 11 Jul 2008) $ by $Author: tack $
11
+ # $Revision: 7363 $
12
+ #
13
+ # This file is part of Gecode, the generic constraint
14
+ # development environment:
15
+ # http://www.gecode.org
16
+ #
17
+ # Permission is hereby granted, free of charge, to any person obtaining
18
+ # a copy of this software and associated documentation files (the
19
+ # "Software"), to deal in the Software without restriction, including
20
+ # without limitation the rights to use, copy, modify, merge, publish,
21
+ # distribute, sublicense, and/or sell copies of the Software, and to
22
+ # permit persons to whom the Software is furnished to do so, subject to
23
+ # the following conditions:
24
+ #
25
+ # The above copyright notice and this permission notice shall be
26
+ # included in all copies or substantial portions of the Software.
27
+ #
28
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
+
36
+ prefix=@cygpathprefix@
37
+ exec_prefix=@exec_prefix@
38
+ libdir=@libdir@
39
+ includedir=@includedir@
40
+
41
+ Name: Gecode Serialization
42
+ Description: Generic Constraint Development Environment Minimodel
43
+ Version: @VERSION@
44
+ Libs: @MINUSLDIR@ @LINKLIBDIR@@LINKPREFIX@@SUPPORT@@USERSUFFIX@@LINKSUFFIX@ @LINKLIBDIR@@LINKPREFIX@@KERNEL@@USERSUFFIX@@LINKSUFFIX@ @LINKLIBDIR@@LINKPREFIX@@SER@@USERSUFFIX@@LINKSUFFIX@
45
+ Cflags: -I${includedir} @PKG_CONFIG_CXXFLAGS@
@@ -0,0 +1,45 @@
1
+ # Package Information for pkg-config
2
+
3
+ # Main authors:
4
+ # Guido Tack <tack@gecode.org>
5
+ #
6
+ # Copyright:
7
+ # Guido Tack, 2005
8
+ #
9
+ # Last modified:
10
+ # $Date: 2008-07-11 13:50:21 +0200 (Fri, 11 Jul 2008) $ by $Author: tack $
11
+ # $Revision: 7363 $
12
+ #
13
+ # This file is part of Gecode, the generic constraint
14
+ # development environment:
15
+ # http://www.gecode.org
16
+ #
17
+ # Permission is hereby granted, free of charge, to any person obtaining
18
+ # a copy of this software and associated documentation files (the
19
+ # "Software"), to deal in the Software without restriction, including
20
+ # without limitation the rights to use, copy, modify, merge, publish,
21
+ # distribute, sublicense, and/or sell copies of the Software, and to
22
+ # permit persons to whom the Software is furnished to do so, subject to
23
+ # the following conditions:
24
+ #
25
+ # The above copyright notice and this permission notice shall be
26
+ # included in all copies or substantial portions of the Software.
27
+ #
28
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
+
36
+ prefix=@cygpathprefix@
37
+ exec_prefix=@exec_prefix@
38
+ libdir=@libdir@
39
+ includedir=@includedir@
40
+
41
+ Name: Gecode
42
+ Description: Generic Constraint Development Environment
43
+ Version: @VERSION@
44
+ Libs: @MINUSLDIR@ @LINKCPLTSET@ @LINKSET@ @LINKINT@ @LINKLIBDIR@@LINKPREFIX@@KERNEL@@USERSUFFIX@@LINKSUFFIX@ @LINKLIBDIR@@LINKPREFIX@@SUPPORT@@USERSUFFIX@@LINKSUFFIX@
45
+ Cflags: -I${includedir} @PKG_CONFIG_CXXFLAGS@
@@ -0,0 +1,179 @@
1
+ #!/usr/bin/perl
2
+ #
3
+ # Main authors:
4
+ # Christian Schulte <schulte@gecode.org>
5
+ #
6
+ # Copyright:
7
+ # Christian Schulte, 2005
8
+ #
9
+ # Last modified:
10
+ # $Date: 2008-07-11 09:38:30 +0200 (Fri, 11 Jul 2008) $ by $Author: tack $
11
+ # $Revision: 7296 $
12
+ #
13
+ # This file is part of Gecode, the generic constraint
14
+ # development environment:
15
+ # http://www.gecode.org
16
+ #
17
+ # Permission is hereby granted, free of charge, to any person obtaining
18
+ # a copy of this software and associated documentation files (the
19
+ # "Software"), to deal in the Software without restriction, including
20
+ # without limitation the rights to use, copy, modify, merge, publish,
21
+ # distribute, sublicense, and/or sell copies of the Software, and to
22
+ # permit persons to whom the Software is furnished to do so, subject to
23
+ # the following conditions:
24
+ #
25
+ # The above copyright notice and this permission notice shall be
26
+ # included in all copies or substantial portions of the Software.
27
+ #
28
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
+ #
36
+ #
37
+
38
+ #
39
+ # Get statistics for all files
40
+ #
41
+
42
+ $i = 0;
43
+
44
+ while ($file = @ARGV[$i++]) {
45
+ open(FILE,"<$file");
46
+ my $module = "UNKNOWN";
47
+ my $cat = "UNKNOWN";
48
+ my $n_blank;
49
+ my $n_comment;
50
+ my $n_code;
51
+ my $n_class;
52
+ while ($l = <FILE>) {
53
+ if ($l =~ /\/\/ STATISTICS: ([A-Za-z]+)-([A-Za-z]+)/) {
54
+ $module = $1;
55
+ $cat = $2;
56
+ }
57
+ if ($l =~ /^[ \t]*$/) {
58
+ $n_blank += 1;
59
+ } elsif ($l =~ /^[ \t]*\/\//) {
60
+ $n_comment += 1;
61
+ } elsif ($l =~ /\/\*/) {
62
+ $n_comment += 1;
63
+ while (!($l =~ /\*\//) && ($l = <FILE>)) {
64
+ $n_comment += 1;
65
+ }
66
+ } else {
67
+ $n_code += 1;
68
+ }
69
+ if ($l =~ /class [A-Za-z_][A-Za-z0-9_]*.*\{/) {
70
+ $n_class += 1;
71
+ }
72
+ }
73
+ if ($module eq "UNKNOWN") {
74
+ print "UNKNOWN: $file\n";
75
+ exit 1;
76
+ }
77
+ $m{$module} = 1;
78
+ $c{$cat} = 1;
79
+ $class{"$module-$cat"} += $n_class;
80
+ $comment{"$module-$cat"} += $n_comment;
81
+ $blank{"$module-$cat"} += $n_blank;
82
+ $code{"$module-$cat"} += $n_code;
83
+ close FILE;
84
+ }
85
+
86
+ @modorder = ("kernel","search","int","set","cpltset","minimodel",
87
+ "serialization", "iter","support","example","test","dds");
88
+
89
+ @catorder = ("core","var","prop","branch","post","search",
90
+ "int","set","cpltset","minimodel","stress","any","other");
91
+ $i = 0;
92
+
93
+ $modclear{"kernel"} = "Kernel";
94
+ $modclear{"search"} = "Search engines";
95
+ $modclear{"int"} = "Finite domain integers";
96
+ $modclear{"set"} = "Finite integer sets";
97
+ $modclear{"cpltset"} =
98
+ "Finite integer sets with complete domain representation";
99
+ $modclear{"minimodel"} = "Minimal modelling support";
100
+ $modclear{"serialization"} = "Serialization support";
101
+ $modclear{"iter"} = "Range and value iterators";
102
+ $modclear{"support"} = "Support algorithms and datastructures";
103
+ $modclear{"example"} = "\%Example scripts";
104
+ $modclear{"test"} = "Systematic tests";
105
+ $modclear{"dds"} = "Decomposition during search";
106
+
107
+
108
+ $catclear{"core"} = "Core functionality";
109
+ $catclear{"var"} = "Variables, views, and variable implementations";
110
+ $catclear{"prop"} = "Propagators";
111
+ $catclear{"branch"} = "Branchings";
112
+ $catclear{"search"} = "Search engines";
113
+ $catclear{"post"} = "Posting propagators and branchings";
114
+ $catclear{"any"} = "All";
115
+ $catclear{"other"} = "Miscellaneous";
116
+ $catclear{"int"} = "Finite domain integers";
117
+ $catclear{"set"} = "Finite integer sets";
118
+ $catclear{"cpltset"} =
119
+ "Finite integer sets with complete domain representation";
120
+ $catclear{"minimodel"} = "Minimal modelling support";
121
+ $catclear{"stress"} = "System stress";
122
+
123
+ print <<EOF
124
+ /**
125
+ \\page PageCodeStat Gecode code statistics
126
+
127
+ The following approximate breakdown into the different parts of %Gecode
128
+ gives some statistics about the amount of code and documentation
129
+ contained in the code (as comments) where blank lines are excluded.
130
+
131
+ The abbreviation "loc" means "lines of code" and "lod" means "lines of
132
+ documentation".
133
+
134
+ EOF
135
+ ;
136
+
137
+
138
+ $an_code = 0;
139
+ $an_comment = 0;
140
+ $an_class = 0;
141
+
142
+ foreach $module (@modorder) {
143
+ print " - " . $modclear{$module} . ": ";
144
+ $mn_code = 0;
145
+ $mn_comment = 0;
146
+ $mn_class = 0;
147
+ $n_cat = 0;
148
+ $doc = "";
149
+ foreach $cat (@catorder) {
150
+ $k = "$module-$cat";
151
+ if ($code{$k}) {
152
+ $n_cat += 1;
153
+ $doc = $doc . " - " . $catclear{$cat} . ": ";
154
+ $mn_code += $code{$k};
155
+ $mn_comment += $comment{$k};
156
+ $mn_class += $class{$k};
157
+ $doc = $doc . $class{$k} . " classes, ";
158
+ $doc = $doc . $code{$k} . " loc, ";
159
+ $doc = $doc . $comment{$k} . " lod\n";
160
+ }
161
+ }
162
+ print $mn_class . " classes, " . $mn_code . " loc, " . $mn_comment . " lod\n";
163
+ if ($n_cat > 1) {
164
+ print $doc;
165
+ }
166
+ $an_code += $mn_code;
167
+ $an_comment += $mn_comment;
168
+ $an_class += $mn_class;
169
+ }
170
+
171
+
172
+ print <<EOF
173
+
174
+ The grand total: $an_class classes, $an_code loc, $an_comment lod
175
+
176
+ */
177
+ EOF
178
+ ;
179
+
@@ -0,0 +1,905 @@
1
+ #!/usr/bin/perl
2
+ #
3
+ # Main authors:
4
+ # Christian Schulte <schulte@gecode.org>
5
+ #
6
+ # Copyright:
7
+ # Christian Schulte, 2007
8
+ #
9
+ # Last modified:
10
+ # $Date: 2008-07-11 10:13:16 +0200 (Fri, 11 Jul 2008) $ by $Author: tack $
11
+ # $Revision: 7314 $
12
+ #
13
+ # This file is part of Gecode, the generic constraint
14
+ # development environment:
15
+ # http://www.gecode.org
16
+ #
17
+ # Permission is hereby granted, free of charge, to any person obtaining
18
+ # a copy of this software and associated documentation files (the
19
+ # "Software"), to deal in the Software without restriction, including
20
+ # without limitation the rights to use, copy, modify, merge, publish,
21
+ # distribute, sublicense, and/or sell copies of the Software, and to
22
+ # permit persons to whom the Software is furnished to do so, subject to
23
+ # the following conditions:
24
+ #
25
+ # The above copyright notice and this permission notice shall be
26
+ # included in all copies or substantial portions of the Software.
27
+ #
28
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
+ #
36
+ #
37
+
38
+ use File::Basename;
39
+
40
+ while (($arg = $ARGV[$i]) && ($arg =~ /^-/)) {
41
+ $i++;
42
+ if ($arg eq "-header") {
43
+ $gen_header = 1;
44
+ } elsif ($arg eq "-typeicc") {
45
+ $gen_typeicc = 1;
46
+ } elsif ($arg eq "-typecc") {
47
+ $gen_typecc = 1;
48
+ }
49
+ }
50
+
51
+ $varfile = $ARGV[$i];
52
+
53
+ my ($filename, $directory, $suffix) = fileparse($varfile);
54
+
55
+ open VARFILE, $varfile;
56
+
57
+ $n_files = 0;
58
+ while ($l = <VARFILE>) {
59
+ if ($l =~ /^File:\s*([^ \t\r\n]+)/io) {
60
+ $files[$n_files] = $1;
61
+ $n_files++;
62
+ }
63
+ }
64
+ close VARFILE;
65
+
66
+ print <<EOF
67
+ /*
68
+ * CAUTION:
69
+ * This file has been automatically generated. Do not edit,
70
+ * edit the specification file "variable.vsl" and the following
71
+ * files instead:
72
+ EOF
73
+ ;
74
+
75
+ for ($f=0; $f<$n_files; $f++) {
76
+ print " * - $files[$f]\n";
77
+ }
78
+
79
+ print <<EOF
80
+ *
81
+ * This file contains generated code fragments which are
82
+ * copyrighted as follows:
83
+ *
84
+ * Main author:
85
+ * Christian Schulte <schulte\@gecode.org>
86
+ *
87
+ * Copyright:
88
+ * Christian Schulte, 2007
89
+ *
90
+ * The generated code fragments are part of Gecode, the generic
91
+ * constraint development environment:
92
+ * http://www.gecode.org
93
+ *
94
+ * Permission is hereby granted, free of charge, to any person obtaining
95
+ * a copy of this software and associated documentation files (the
96
+ * "Software"), to deal in the Software without restriction, including
97
+ * without limitation the rights to use, copy, modify, merge, publish,
98
+ * distribute, sublicense, and/or sell copies of the Software, and to
99
+ * permit persons to whom the Software is furnished to do so, subject to
100
+ * the following conditions:
101
+ *
102
+ * The above copyright notice and this permission notice shall be
103
+ * included in all copies or substantial portions of the Software.
104
+ *
105
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
106
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
107
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
108
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
109
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
110
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
111
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
112
+ *
113
+ */
114
+
115
+ EOF
116
+ ;
117
+
118
+ for ($f=0; $f<$n_files; $f++) {
119
+ open (FILE, $directory.$files[$f]) || die "Could not open ".$files[$f];
120
+
121
+ ## General values
122
+ $name[$f] = "";
123
+ $vti[$f] = "";
124
+ $ifdef[$f] = "";
125
+ $endif[$f] = "";
126
+ $dispose[$f] = 0;
127
+
128
+ ##
129
+ ## Headers and footers
130
+ ##
131
+ $mehdr[$f] = ""; # Header text for modification events
132
+ $meftr[$f] = ""; # Footer text for modification events
133
+
134
+ $pchdr[$f] = ""; # Header text for propagation conditions
135
+ $pcftr[$f] = ""; # Footer text for propagation conditions
136
+
137
+ ##
138
+ ## Real stuff
139
+ ##
140
+
141
+ # $mec[$f] : combination table
142
+ # $men[$f] : name table
143
+ # $meh[$f] : header table
144
+ $me_n[$f] = 0; # running number of modification events
145
+ $me_subscribe[$f] = "";
146
+
147
+ # $pcn[$f] : name table
148
+ # $pch[$f] : header table
149
+ $pc_n[$f] = 0; # running number of propagation conditions
150
+
151
+
152
+ $free_bits[$f] = 0;
153
+
154
+ while ($l = <FILE>) {
155
+ LINE:
156
+ next if ($l =~ /^\#/);
157
+ last if ($l =~ /^\[End\]/io);
158
+
159
+ if ($l =~ /^\[General\]/io) {
160
+ while (($l = <FILE>) && !($l =~ /^\[/)) {
161
+ next if ($l =~ /^\#/);
162
+ if ($l =~ /^Name:\s*(\w+)/io) {
163
+ $name[$f] = $1;
164
+ $vti[$f] = uc($name[$f]);
165
+ } elsif ($l =~ /^Ifdef:\s*(\w+)/io) {
166
+ $ifdef[$f] = "#ifdef $1\n";
167
+ $endif[$f] = "#endif\n";
168
+ } elsif ($l =~ /^Dispose:\s*true/io) {
169
+ $dispose[$f] = 1;
170
+ } elsif ($l =~ /^Namespace:\s*([^ \t\r\n]+)/io) {
171
+ $namespace[$f] = $1;
172
+ } elsif ($l =~ /^Bits:\s*([^ \t\r\n]+)/io) {
173
+ $free_bits[$f] = $1+0;
174
+ }
175
+ }
176
+ goto LINE;
177
+ } elsif ($l =~ /^\[ModEventHeader\]/io) {
178
+ while (($l = <FILE>) && !($l =~ /^\[/)) {
179
+ next if ($l =~ /^\#/);
180
+ $mehdr[$f] = $mehdr[$f] . $l;
181
+ }
182
+ goto LINE;
183
+ } elsif ($l =~ /^\[ModEvent\]/io) {
184
+ $n = "";
185
+ $h = "";
186
+
187
+ while (($l = <FILE>) && !($l =~ /^\[/)) {
188
+ next if ($l =~ /^\#/);
189
+ if ($l =~ /^Name:\s*(\w+)\s*=\s*(\w+)/io) {
190
+ # Found a special modification event
191
+ $lhs = $1; $rhs = $2;
192
+ if (!($rhs eq "FAILED") && !($rhs eq "NONE") &&
193
+ !($rhs eq "ASSIGNED") && !($rhs eq "SUBSCRIBE")) {
194
+ die "Unknown special modification event: $rhs\n";
195
+ }
196
+ if ($rhs eq "SUBSCRIBE") {
197
+ $me_subscribe[$f] = "ME_$vti[$f]_$lhs";
198
+ } else {
199
+ $mespecial{$f}{$lhs} = $rhs;
200
+ if ($rhs eq "ASSIGNED") {
201
+ $me_assigned[$f] = "ME_$vti[$f]_$lhs";
202
+ } elsif ($rhs eq "FAILED") {
203
+ $me_failed[$f] = "ME_$vti[$f]_$lhs";
204
+ } els
205
+ }
206
+ $n = $lhs;
207
+ } elsif ($l =~ /^Name:\s*(\w+)/io) {
208
+ # Found a normal modification event
209
+ $n = $1;
210
+ } elsif ($l =~ /^Combine:\s*(.+)/io) {
211
+ # Found combination information
212
+ $combines = $1;
213
+ while ($combines =~ /(\w+)\s*=(\w+)/g) {
214
+ $mec{$f}{$n}{$1} = $2;
215
+ $mec{$f}{$1}{$n} = $2;
216
+ }
217
+ } else {
218
+ $h = $h . $l;
219
+ }
220
+ }
221
+ $men[$f][$me_n[$f]] = $n;
222
+ $meh[$f][$me_n[$f]] = $h;
223
+ $me_n[$f]++;
224
+ $mec{$f}{"NONE"}{$n} = $n;
225
+ $mec{$f}{$n}{"NONE"} = $n;
226
+ goto LINE;
227
+ } elsif ($l =~ /^\[ModEventFooter\]/io) {
228
+ while (($l = <FILE>) && !($l =~ /^\[/)) {
229
+ next if ($l =~ /^\#/);
230
+ $meftr[$f] = $meftr[$f] . $l;
231
+ }
232
+ goto LINE;
233
+ } elsif ($l =~ /^\[PropCondHeader\]/io) {
234
+ while (($l = <FILE>) && !($l =~ /^\[/)) {
235
+ next if ($l =~ /^\#/);
236
+ $pchdr[$f] = $pchdr[$f] . $l;
237
+ }
238
+ goto LINE;
239
+ } elsif ($l =~ /^\[PropCond\]/io) {
240
+ $n = "";
241
+ $h = "";
242
+
243
+ while (($l = <FILE>) && !($l =~ /^\[/)) {
244
+ next if ($l =~ /^\#/);
245
+ if ($l =~ /^Name:\s*(\w+)\s*=\s*(\w+)/io) {
246
+ # Found a special propagation condition
247
+ $lhs = $1; $rhs = $2;
248
+ if (!($rhs eq "ASSIGNED")) {
249
+ die "Unknown special propagation condition: $rhs\n";
250
+ }
251
+ $pcspecial{$f}{$lhs} = $rhs;
252
+ if ($rhs eq "ASSIGNED") {
253
+ $pc_assigned[$f] = "PC_$vti[$f]_$lhs";
254
+ }
255
+ $n = $lhs;
256
+ } elsif ($l =~ /^Name:\s*(\w+)/io) {
257
+ # Found a normal modification event
258
+ $n = $1;
259
+ } elsif ($l =~ /^ModEvents:\s*(.+)/io) {
260
+ # Found relation to modification events
261
+ $events = $1;
262
+ while ($events =~ /(\w+)/g) {
263
+ $mepc{$f}{$1}{$n} = 1;
264
+ }
265
+ } else {
266
+ $h = $h . $l;
267
+ }
268
+ }
269
+ $pcn[$f][$pc_n[$f]] = $n;
270
+ $pch[$f][$pc_n[$f]] = $h;
271
+ $pc_n[$f]++;
272
+ goto LINE;
273
+ } elsif ($l =~ /^\[PropCondFooter\]/io) {
274
+ while (($l = <FILE>) && !($l =~ /^\[/)) {
275
+ next if ($l =~ /^\#/);
276
+ $pcftr[$f] = $pcftr[$f] . $l;
277
+ }
278
+ goto LINE;
279
+ }
280
+
281
+ }
282
+ close FILE;
283
+
284
+
285
+ $maxpc[$f] = "PC_$vti[$f]_" . $pcn[$f][$pc_n[$f]-1];
286
+ $class[$f] = "$name[$f]VarImpBase";
287
+ $conf[$f] = "$name[$f]VarImpConf";
288
+ $base[$f] = "Gecode::VarImp<$namespace[$f]::$conf[$f]>";
289
+ # Generate namespace header and footer
290
+ foreach $ns (split('::',$namespace[$f])) {
291
+ $hdr[$f] = "$hdr[$f]namespace $ns { ";
292
+ $ftr[$f] = "$ftr[$f]}";
293
+ }
294
+ $hdr[$f] = "$hdr[$f]\n";
295
+ $ftr[$f] = "$ftr[$f]\n";
296
+
297
+ ## Check whether there is only one real event
298
+ if ($me_n[$f] == 3) {
299
+ $me_subscribe[$f] = $me_assigned[$f];
300
+ }
301
+
302
+ $o = 2;
303
+ for ($i=0; $i<$me_n[$f]; $i++) {
304
+ $n = $men[$f][$i];
305
+ if ($mespecial{$f}{$n} eq "NONE") {
306
+ $val2me[$f][0] = $n;
307
+ } elsif ($mespecial{$f}{$n} eq "ASSIGNED") {
308
+ $val2me[$f][1] = $n;
309
+ } elsif (!$mespecial{$f}{$n}) {
310
+ $val2me[$f][$o] = $n; $o++;
311
+ }
312
+ }
313
+ $me_max[$f] = "ME_$vti[$f]_" . $val2me[$f][$o-1] . "+1";
314
+ $me_max_n[$f] = $o;
315
+
316
+ $len = 0;
317
+ for ($i=0; $i<$me_max_n[$f];$i++) {
318
+ $n = $val2me[$f][$i];
319
+ $me_a{$f}{$n} = "ME_$vti[$f]_$n";
320
+ if (length($me_a{$f}{$n}) > $len) {
321
+ $len = length($me_a{$f}{$n});
322
+ }
323
+ }
324
+ for ($i=0; $i<$me_max_n[$f]; $i++) {
325
+ $n = $val2me[$f][$i];
326
+ while ($len > length($me_a{$f}{$n})) {
327
+ $me_a{$f}{$n} = "$me_a{$f}{$n} ";
328
+ }
329
+ }
330
+
331
+ for ($b=1; (1 << $b) < $me_max_n[$f]; $b++) {}
332
+ $bits[$f] = $b;
333
+ }
334
+
335
+ if ($gen_typeicc) {
336
+ for ($f = 0; $f<$n_files; $f++) {
337
+ print $ifdef[$f];
338
+ print $hdr[$f];
339
+ print $mehdr[$f];
340
+ $o = 1;
341
+ for ($i=0; $i<$me_n[$f]; $i++) {
342
+ $n = $men[$f][$i];
343
+ print $meh[$f][$i];
344
+ print " const Gecode::ModEvent ME_" . $vti[$f] . "_${n} = ";
345
+ if ($mespecial{$f}{$n}) {
346
+ print "Gecode::ME_GEN_" . $mespecial{$f}{$n};
347
+ } else {
348
+ print "Gecode::ME_GEN_ASSIGNED + " . $o;
349
+ $o++;
350
+ }
351
+ print ";\n";
352
+ }
353
+
354
+ print $meftr[$f];
355
+ print $pchdr[$f];
356
+
357
+ print " /// Propagation condition to be ignored (convenience)\n";
358
+ print " const Gecode::PropCond PC_$vti[$f]_NONE = Gecode::PC_GEN_NONE;\n";
359
+ $o = 1;
360
+ for ($i=0; $i<$pc_n[$f]; $i++) {
361
+ $n = $pcn[$f][$i];
362
+ print $pch[$f][$i];
363
+ print " const Gecode::PropCond PC_$vti[$f]_${n} = ";
364
+ if ($pcspecial{$f}{$n}) {
365
+ $pc_assigned[$f] = "PC_$vti[$f]_${n}";
366
+ print "Gecode::PC_GEN_" . $pcspecial{$f}{$n};
367
+ } else {
368
+ print "Gecode::PC_GEN_ASSIGNED + " . $o;
369
+ $o++;
370
+ }
371
+ print ";\n";
372
+ }
373
+ print $pcftr[$f];
374
+ print $ftr[$f];
375
+ print $endif[$f];
376
+ }
377
+
378
+
379
+ for ($f = 0; $f<$n_files; $f++) {
380
+ print $ifdef[$f];
381
+ if ($dispose[$f]) {
382
+ print "\n#ifndef GECODE_HAS_VAR_DISPOSE\n";
383
+ print "#define GECODE_HAS_VAR_DISPOSE 1\n";
384
+ print "#endif\n\n";
385
+ }
386
+ print $hdr[$f];
387
+ print " /// Configuration for $name[$f]-variable implementations\n";
388
+ print " class $conf[$f] {\n";
389
+ print " public:\n";
390
+ print " /// Index for cloning\n";
391
+ print " static const int idx_c = ";
392
+ if ($f == 0) {
393
+ print "0;\n";
394
+ } else {
395
+ print "$namespace[$f-1]::$conf[$f-1]::idx_c+1;\n";
396
+ }
397
+ print " /// Index for disposal\n";
398
+ print " static const int idx_d = ";
399
+ if ($dispose[$f]) {
400
+ if ($f == 0) {
401
+ print "0;\n";
402
+ } else {
403
+ print "$namespace[$f-1]::$conf[$f-1]::idx_d+1;\n";
404
+ }
405
+ } else {
406
+ if ($f == 0) {
407
+ print "-1;\n";
408
+ } else {
409
+ print "$namespace[$f-1]::$conf[$f-1]::idx_d;\n";
410
+ }
411
+ }
412
+ print " /// Maximal propagation condition\n";
413
+ print " static const Gecode::PropCond pc_max = $maxpc[$f];\n";
414
+ print " /// Freely available bits\n";
415
+ print " static const int free_bits = $free_bits[$f];\n";
416
+ print " /// Start of bits for modification event delta\n";
417
+ print " static const int med_fst = ";
418
+ if ($f == 0) {
419
+ print "0;\n";
420
+ } else {
421
+ print "$namespace[$f-1]::$conf[$f-1]::med_lst;\n";
422
+ }
423
+ print " /// End of bits for modification event delta\n";
424
+ print " static const int med_lst = med_fst + $bits[$f];\n";
425
+ print " /// Bitmask for modification event delta\n";
426
+ print " static const int med_mask = ((1 << $bits[$f]) - 1) << med_fst;\n";
427
+ print " /// Combine modification events \\a me1 and \\a me2\n";
428
+ print " static Gecode::ModEvent me_combine(Gecode::ModEvent me1, Gecode::ModEvent me2);\n";
429
+ print " /// Update modification even delta \\a med by \\a me, return true on change\n";
430
+ print " static bool med_update(Gecode::ModEventDelta& med, Gecode::ModEvent me);\n";
431
+ print " /// Variable type identifier for reflection\n";
432
+ print " static GECODE_KERNEL_EXPORT const Gecode::Support::Symbol vti;\n";
433
+ print " };\n";
434
+ print $ftr[$f];
435
+ if (!($ifdef[$f] eq "")) {
436
+ print "#else\n";
437
+ print $hdr[$f];
438
+ print " /// Dummy configuration for $name[$f]-variable implementations\n";
439
+ print " class $conf[$f] {\n";
440
+ print " public:\n";
441
+ print " /// Index for cloning\n";
442
+ print " static const int idx_c = ";
443
+ if ($f == 0) {
444
+ print "-1;\n";
445
+ } else {
446
+ print "$namespace[$f-1]::$conf[$f-1]::idx_c;\n";
447
+ }
448
+ print " /// Index for disposal\n";
449
+ print " static const int idx_d = ";
450
+ if ($f == 0) {
451
+ print "-1;\n";
452
+ } else {
453
+ print "$namespace[$f-1]::$conf[$f-1]::idx_d;\n";
454
+ }
455
+ print " /// End of bits for modification event delta\n";
456
+ print " static const int med_lst = ";
457
+ if ($f == 0) {
458
+ print "0;\n";
459
+ } else {
460
+ print "$namespace[$f-1]::$conf[$f-1]::med_lst;\n";
461
+ }
462
+ print " };\n";
463
+ print $ftr[$f];
464
+ }
465
+ print $endif[$f];
466
+ }
467
+ print "\n";
468
+ print "namespace Gecode {\n\n";
469
+ print " /// Configuration for all variable implementations\n";
470
+ print " class AllVarConf {\n";
471
+ print " public:\n";
472
+ print " /// Index for cloning\n";
473
+ print " static const int idx_c = $namespace[$n_files-1]::$conf[$n_files-1]::idx_c+1;\n";
474
+ print " /// Index for dispose\n";
475
+ print " static const int idx_d = $namespace[$n_files-1]::$conf[$n_files-1]::idx_d+1;\n";
476
+ print " /// Combine modification event delta \\a med1 with \\a med2\n";
477
+ print " static ModEventDelta med_combine(ModEventDelta med1, ModEventDelta med2);\n";
478
+ print " };\n\n}\n\n";
479
+ for ($f = 0; $f<$n_files; $f++) {
480
+ print $ifdef[$f];
481
+ print $hdr[$f];
482
+ print " forceinline Gecode::ModEvent\n";
483
+ print " $conf[$f]::me_combine(Gecode::ModEvent me1, Gecode::ModEvent me2) {\n";
484
+
485
+ if ($me_max_n[$f] == 2) {
486
+ print " return me1 | me2;\n";
487
+ } elsif ($me_max_n[$f] <= 4) {
488
+ print " static const Gecode::ModEvent me_c = (\n";
489
+
490
+ for ($i=0; $i<$me_max_n[$f];$i++) {
491
+ $n1 = $val2me[$f][$i];
492
+ print " (\n";
493
+ for ($j=0; $j<$me_max_n[$f];$j++) {
494
+ $n2 = $val2me[$f][$j];
495
+ $n3 = $mec{$f}{$n1}{$n2};
496
+ $shift = (($i << 3) + ($j << 1));
497
+ if ($shift < 10) {
498
+ $shift = " $shift";
499
+ }
500
+ print " ($me_a{$f}{$n3} << $shift)";
501
+ if ($j+1 == $me_max_n[$f]) {
502
+ print " ";
503
+ } else {
504
+ print " | ";
505
+ }
506
+ print " // [$me_a{$f}{$n1}][$me_a{$f}{$n2}]\n";
507
+ }
508
+ if ($i+1 == $me_max_n[$f]) {
509
+ print " )\n";
510
+ } else {
511
+ print " ) |\n";
512
+ }
513
+ }
514
+ print " );\n";
515
+ print " return ((me_c >> (me2 << 3)) >> (me1 << 1)) & 3;\n";
516
+ } else {
517
+ print " static const Gecode::ModEvent me_c[$me_max[$f]][$me_max[$f]] = {\n";
518
+ for ($i=0; $i<$me_max_n[$f];$i++) {
519
+ $n1 = $val2me[$f][$i];
520
+ print " {\n";
521
+ for ($j=0; $j<$me_max_n[$f];$j++) {
522
+ $n2 = $val2me[$f][$j];
523
+ $n3 = $mec{$f}{$n1}{$n2};
524
+ print " $me_a{$f}{$n3}";
525
+ if ($j+1 == $me_max_n[$f]) {
526
+ print " ";
527
+ } else {
528
+ print ",";
529
+ }
530
+ print " // [$me_a{$f}{$n1}][$me_a{$f}{$n2}]\n";
531
+ }
532
+ print " }";
533
+ if ($i+1 == $me_max_n[$f]) {
534
+ print "\n";
535
+ } else {
536
+ print ",\n";
537
+ }
538
+ }
539
+ print " };\n";
540
+ print " return me_c[me1][me2];\n";
541
+ }
542
+ print " }\n";
543
+ print " forceinline bool\n";
544
+ print " $conf[$f]::med_update(Gecode::ModEventDelta& med, Gecode::ModEvent me) {\n";
545
+
546
+ print " switch (me) {\n";
547
+ if ($me_max_n[$f] == 2) {
548
+ $ME_NONE = "ME_$vti[$f]_NONE";
549
+ if ($val2me[$f][0] eq "NONE") {
550
+ $ME_ASSIGNED = "ME_$vti[$f]_$val2me[$f][1]";
551
+ } else {
552
+ $ME_ASSIGNED = "ME_$vti[$f]_$val2me[$f][0]";
553
+ }
554
+ print " case $ME_NONE:\n";
555
+ print " return false;\n";
556
+ print " case $ME_ASSIGNED:\n";
557
+ print " if ((med & ($ME_ASSIGNED << med_fst)) != 0)\n";
558
+ print " return false;\n";
559
+ print " med |= $ME_ASSIGNED << med_fst;\n";
560
+ print " break;\n";
561
+ } else {
562
+ $lvti = lc($vti[$f]);
563
+ for ($i=0; $i<$me_max_n[$f];$i++) {
564
+ $n1 = $val2me[$f][$i];
565
+ $weak = 1;
566
+ for ($j=0; $j<$me_max_n[$f];$j++) {
567
+ $n2 = $val2me[$f][$j];
568
+ if (!($n2 eq "NONE") && !($n2 eq $n1) &&
569
+ !($mec{$f}{$n1}{$n2} eq $n2)) {
570
+ $weak = 0;
571
+ }
572
+ }
573
+ print " case ME_$vti[$f]_$n1:\n";
574
+ if ($n1 eq "NONE") {
575
+ print " return false;\n";
576
+ } elsif ($mespecial{$f}{$n1} eq "ASSIGNED") {
577
+ print " {\n";
578
+ print " Gecode::ModEventDelta med_$lvti = med & med_mask;\n";
579
+ print " if (med_$lvti == (ME_$vti[$f]_$n1 << med_fst))\n";
580
+ print " return false;\n";
581
+ print " med ^= med_$lvti;\n";
582
+ print " med ^= ME_$vti[$f]_$n1 << med_fst;\n";
583
+ print " break;\n";
584
+ print " }\n";
585
+ } elsif ($weak) {
586
+ print " {\n";
587
+ print " Gecode::ModEventDelta med_$lvti = med & med_mask;\n";
588
+ print " if (med_$lvti != 0)\n";
589
+ print " return false;\n";
590
+ print " med |= ME_$vti[$f]_$n1 << med_fst;\n";
591
+ print " break;\n";
592
+ print " }\n";
593
+ } else {
594
+ print " {\n";
595
+ if ($me_max_n[$f] <= 8) {
596
+ print " static const Gecode::ModEvent me_c = (\n";
597
+ for ($j=0; $j<$me_max_n[$f];$j++) {
598
+ $n2 = $val2me[$f][$j];
599
+ $n3 = $mec{$f}{$n1}{$n2};
600
+ $shift = $j << 2;
601
+ if ($shift < 10) {
602
+ $shift = " $shift";
603
+ }
604
+ print " (($me_a{$f}{$n2} ^ $me_a{$f}{$n3}) << $shift)";
605
+ if ($j+1 != $me_max_n[$f]) {
606
+ print " |\n";
607
+ }
608
+ }
609
+ print "\n );\n";
610
+ print " Gecode::ModEvent me_o = (med & med_mask) >> med_fst;\n";
611
+ print " Gecode::ModEvent me_n = (me_c >> (me_o << 2)) & (med_mask >> med_fst);\n";
612
+ print " if (me_n == 0)\n";
613
+ print " return false;\n";
614
+ print " med ^= me_n << med_fst;\n";
615
+ print " break;\n";
616
+ } else {
617
+ print " static const Gecode::ModEventDelta me_c[$me_max[$f]] = {\n";
618
+ for ($j=0; $j<$me_max_n[$f];$j++) {
619
+ $n2 = $val2me[$f][$j];
620
+ $n3 = $mec{$f}{$n1}{$n2};
621
+ print " ($me_a{$f}{$n2} ^ $me_a{$f}{$n3}) << med_fst";
622
+ if ($j+1 != $me_max_n[$f]) {
623
+ print ",\n";
624
+ }
625
+ }
626
+ print "\n };\n";
627
+ print " Gecode::ModEvent me_o = (med & med_mask) >> med_fst;\n";
628
+ print " Gecode::ModEventDelta med_n = me_c[me_o];\n";
629
+ print " if (med_n == 0)\n";
630
+ print " return false;\n";
631
+ print " med ^= med_n;\n";
632
+ print " break;\n";
633
+ }
634
+ print " }\n";
635
+ }
636
+ }
637
+ }
638
+ print " default: GECODE_NEVER;\n";
639
+ print " }\n";
640
+ print " return true;\n";
641
+ print " }\n\n";
642
+ print $ftr[$f];
643
+ print $endif[$f];
644
+ }
645
+ print "namespace Gecode {\n";
646
+ print " forceinline ModEventDelta\n";
647
+ print " AllVarConf::med_combine(ModEventDelta med1, ModEventDelta med2) {\n";
648
+ for ($f = 0; $f<$n_files; $f++) {
649
+ $vic = "$namespace[$f]::$conf[$f]";
650
+ print $ifdef[$f];
651
+ print " (void) ${vic}::med_update(med1,(med2 & ${vic}::med_mask) >> ${vic}::med_fst);\n";
652
+ print $endif[$f];
653
+ }
654
+ print " return med1;\n";
655
+ print " }\n}\n\n";
656
+ }
657
+
658
+ if ($gen_typecc) {
659
+ print "#include \"gecode/kernel.hh\"\n";
660
+ print "\n";
661
+ for ($f = 0; $f<$n_files; $f++) {
662
+ print $ifdef[$f];
663
+ print $hdr[$f];
664
+ print " const Gecode::Support::Symbol $conf[$f]::vti = \"$name[$f]\";\n";
665
+ print $ftr[$f];
666
+ print $endif[$f];
667
+ }
668
+ print "\n";
669
+ }
670
+
671
+ if ($gen_header) {
672
+ for ($f = 0; $f<$n_files; $f++) {
673
+ print $ifdef[$f];
674
+ print $hdr[$f];
675
+ print " /// Base-class for $name[$f]-variable implementations\n";
676
+ print " class $class[$f] : public $base[$f] {\n";
677
+ if ($dispose[$f]) {
678
+ print <<EOF
679
+ private:
680
+ /// Link to next variable, used for disposal
681
+ $class[$f]* _next_d;
682
+ EOF
683
+ ;
684
+ }
685
+
686
+ print <<EOF
687
+ protected:
688
+ /// Constructor for cloning \\a x
689
+ $class[$f](Gecode::Space* home, bool share, $class[$f]\& x);
690
+ public:
691
+ /// Constructor for creating static instance of variable
692
+ $class[$f](void);
693
+ /// Constructor for creating variable
694
+ $class[$f](Gecode::Space* home);
695
+ /// \\name Dependencies
696
+ //\@{
697
+ /** \\brief Subscribe propagator \\a p with propagation condition \\a pc
698
+ *
699
+ * In case \\a schedule is false, the propagator is just subscribed but
700
+ * not scheduled for execution (this must be used when creating
701
+ * subscriptions during propagation).
702
+ *
703
+ * In case the variable is assigned (that is, \\a assigned is
704
+ * true), the subscribing propagator is scheduled for execution.
705
+ * Otherwise, the propagator subscribes and is scheduled for execution
706
+ * with modification event \\a me provided that \\a pc is different
707
+ * from \\a $pc_assigned[$f].
708
+ */
709
+ void subscribe(Gecode::Space* home, Gecode::Propagator* p, Gecode::PropCond pc, bool assigned, bool schedule);
710
+ /// Subscribe advisor \\a a if \\a assigned is false.
711
+ void subscribe(Gecode::Space* home, Gecode::Advisor* a, bool assigned);
712
+ /// Notify that variable implementation has been modified with modification event \\a me and delta information \\a d
713
+ Gecode::ModEvent notify(Gecode::Space* home, Gecode::ModEvent me, Gecode::Delta* d);
714
+ //\@}
715
+ EOF
716
+ ;
717
+
718
+ if ($dispose[$f]) {
719
+ print <<EOF
720
+ /// Return link to next variable to be disposed
721
+ $class[$f]* next_d(void) const;
722
+ EOF
723
+ ;
724
+ }
725
+
726
+ print <<EOF
727
+ };
728
+ EOF
729
+ ;
730
+
731
+ print $ftr[$f];
732
+ print $endif[$f];
733
+
734
+
735
+ }
736
+
737
+ for ($f = 0; $f<$n_files; $f++) {
738
+ print $ifdef[$f];
739
+ print $hdr[$f];
740
+
741
+ if ($dispose[$f]) {
742
+ print <<EOF
743
+
744
+ forceinline
745
+ $class[$f]::$class[$f](void) {}
746
+
747
+ forceinline
748
+ $class[$f]::$class[$f](Gecode::Space* home)
749
+ : $base[$f](home) {
750
+ _next_d = static_cast<$class[$f]*>(vars_d(home)); vars_d(home,this);
751
+ }
752
+
753
+ forceinline
754
+ $class[$f]::$class[$f](Gecode::Space* home, bool share, $class[$f]\& x)
755
+ : $base[$f](home,share,x) {
756
+ _next_d = static_cast<$class[$f]*>(vars_d(home)); vars_d(home,this);
757
+ }
758
+
759
+ forceinline $class[$f]*
760
+ $class[$f]::next_d(void) const {
761
+ return _next_d;
762
+ }
763
+
764
+ EOF
765
+ ;
766
+ } else {
767
+ print <<EOF
768
+
769
+ forceinline
770
+ $class[$f]::$class[$f](void) {}
771
+
772
+ forceinline
773
+ $class[$f]::$class[$f](Gecode::Space* home)
774
+ : $base[$f](home) {}
775
+
776
+ forceinline
777
+ $class[$f]::$class[$f](Gecode::Space* home, bool share, $class[$f]\& x)
778
+ : $base[$f](home,share,x) {}
779
+ EOF
780
+ ;
781
+ }
782
+ print <<EOF
783
+
784
+ forceinline void
785
+ $class[$f]::subscribe(Gecode::Space* home, Gecode::Propagator* p, Gecode::PropCond pc, bool assigned, bool schedule) {
786
+ $base[$f]::subscribe(home,p,pc,assigned,$me_subscribe[$f],schedule);
787
+ }
788
+ forceinline void
789
+ $class[$f]::subscribe(Gecode::Space* home, Gecode::Advisor* a, bool assigned) {
790
+ $base[$f]::subscribe(home,a,assigned);
791
+ }
792
+
793
+ EOF
794
+ ;
795
+
796
+ if ($me_max_n[$f] == 2) {
797
+ print <<EOF
798
+ forceinline Gecode::ModEvent
799
+ $class[$f]::notify(Gecode::Space* home, Gecode::ModEvent, Gecode::Delta* d) {
800
+ schedule(home,$pc_assigned[$f],$pc_assigned[$f],$me_assigned[$f]);
801
+ if (!$base[$f]::advise(home,$me_assigned[$f],d))
802
+ return $me_failed[$f];
803
+ cancel(home);
804
+ return $me_assigned[$f];
805
+ }
806
+
807
+ EOF
808
+ ;
809
+ } else {
810
+ print <<EOF
811
+ forceinline Gecode::ModEvent
812
+ $class[$f]::notify(Gecode::Space* home, Gecode::ModEvent me, Gecode::Delta* d) {
813
+ switch (me) {
814
+ EOF
815
+ ;
816
+
817
+ for ($i=0; $i<$pc_n[$f]; $i++) {
818
+ if ($pcspecial{$f}{$pcn[$f][$i]} eq "ASSIGNED") {
819
+ $val2pc[$f][0] = $pcn[$f][$i];
820
+ }
821
+ }
822
+ $o = 1;
823
+ for ($i=0; $i<$pc_n[$f]; $i++) {
824
+ if (!($pcspecial{$f}{$pcn[$f][$i]} eq "ASSIGNED")) {
825
+ $val2pc[$f][$o] = $pcn[$f][$i]; $o++;
826
+ }
827
+ }
828
+
829
+ for ($i=0; $i<$me_n[$f]; $i++) {
830
+ $n = $men[$f][$i];
831
+ if (!($mespecial{$f}{$n} eq "NONE") && !($mespecial{$f}{$n} eq "FAILED")) {
832
+ print " case ME_$vti[$f]_$n:\n";
833
+ print " // Conditions: ";
834
+ $fst = 1;
835
+ for ($j=0; $j<$pc_n[$f]; $j++) {
836
+ if ($mepc{$f}{$men[$f][$i]}{$pcn[$f][$j]}) {
837
+ if ($fst) {
838
+ $fst = 0;
839
+ } else {
840
+ print ", ";
841
+ }
842
+ print $pcn[$f][$j];
843
+ }
844
+ }
845
+ print "\n";
846
+ for ($j=0; $j<$pc_n[$f]; $j++) {
847
+ if ($mepc{$f}{$men[$f][$i]}{$val2pc[$f][$j]}) {
848
+ # Found initial entry (plus one for stopping)
849
+ print " schedule(home,PC_$vti[$f]_" . $val2pc[$f][$j] . ",";
850
+ # Look for all connected entries
851
+ while ($mepc{$f}{$men[$f][$i]}{$val2pc[$f][$j+1]}) {
852
+ $j++;
853
+ }
854
+ # Found last entry
855
+ print "PC_$vti[$f]_" . $val2pc[$f][$j] . ",ME_$vti[$f]_$n);\n";
856
+ }
857
+ }
858
+ print " if (!$base[$f]::advise(home,ME_$vti[$f]_$n,d))\n";
859
+ print " return $me_failed[$f];\n";
860
+ if ($mespecial{$f}{$n} eq "ASSIGNED") {
861
+ print " cancel(home);\n";
862
+ }
863
+ print " break;\n";
864
+ }
865
+ }
866
+
867
+
868
+ print <<EOF
869
+ default: GECODE_NEVER;
870
+ }
871
+ return me;
872
+ }
873
+
874
+ EOF
875
+ ;
876
+ }
877
+ print $ftr[$f];
878
+ print $endif[$f];
879
+ }
880
+
881
+ print <<EOF
882
+ namespace Gecode {
883
+
884
+ forceinline void
885
+ Space::update(ActorLink** sub) {
886
+ EOF
887
+ ;
888
+
889
+ for ($f = 0; $f<$n_files; $f++) {
890
+ print $ifdef[$f];
891
+ print " $base[$f]::update(this,sub);\n";
892
+ print $endif[$f];
893
+ }
894
+
895
+ print <<EOF
896
+ }
897
+ }
898
+ EOF
899
+ ;
900
+
901
+
902
+
903
+ }
904
+
905
+ print "// STATISTICS: kernel-var\n";