gecoder-with-gecode 0.7.1 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1063) hide show
  1. data/CHANGES +7 -0
  2. data/README +10 -1
  3. data/ext/extconf.rb +24 -7
  4. data/ext/gecode-2.1.1/LICENSE +25 -0
  5. data/ext/gecode-2.1.1/Makefile.contribs +86 -0
  6. data/ext/gecode-2.1.1/Makefile.dep +7622 -0
  7. data/ext/gecode-2.1.1/Makefile.in +1568 -0
  8. data/ext/gecode-2.1.1/changelog.in +2459 -0
  9. data/ext/gecode-2.1.1/configure +11631 -0
  10. data/ext/gecode-2.1.1/configure.ac +249 -0
  11. data/ext/gecode-2.1.1/configure.ac.in +245 -0
  12. data/ext/{gecode-1.3.1 → gecode-2.1.1}/contribs/README +0 -0
  13. data/ext/gecode-2.1.1/contribs/qecode/Doxyfile +263 -0
  14. data/ext/gecode-2.1.1/contribs/qecode/FirstFailValueHeuristic.cc +82 -0
  15. data/ext/gecode-2.1.1/contribs/qecode/FirstFailValueHeuristic.hh +37 -0
  16. data/ext/gecode-2.1.1/contribs/qecode/Makefile.in.in +162 -0
  17. data/ext/gecode-2.1.1/contribs/qecode/NaiveValueHeuristics.cc +172 -0
  18. data/ext/gecode-2.1.1/contribs/qecode/NaiveValueHeuristics.hh +63 -0
  19. data/ext/gecode-2.1.1/contribs/qecode/SDFVariableHeuristic.cc +37 -0
  20. data/ext/gecode-2.1.1/contribs/qecode/SDFVariableHeuristic.hh +35 -0
  21. data/ext/gecode-2.1.1/contribs/qecode/configure +2264 -0
  22. data/ext/gecode-2.1.1/contribs/qecode/configure.ac +23 -0
  23. data/ext/gecode-2.1.1/contribs/qecode/examples/COMPILING +13 -0
  24. data/ext/gecode-2.1.1/contribs/qecode/examples/MatrixGame.cpp +144 -0
  25. data/ext/gecode-2.1.1/contribs/qecode/examples/NimFibo.cpp +73 -0
  26. data/ext/gecode-2.1.1/contribs/qecode/examples/stress_test.cpp +179 -0
  27. data/ext/gecode-2.1.1/contribs/qecode/extensivecomparator.cc +34 -0
  28. data/ext/gecode-2.1.1/contribs/qecode/extensivecomparator.hh +46 -0
  29. data/ext/gecode-2.1.1/contribs/qecode/heap.cc +151 -0
  30. data/ext/gecode-2.1.1/contribs/qecode/implicative.cc +595 -0
  31. data/ext/gecode-2.1.1/contribs/qecode/implicative.hh +184 -0
  32. data/ext/gecode-2.1.1/contribs/qecode/myDom.cc +39 -0
  33. data/ext/gecode-2.1.1/contribs/qecode/myspace.cc +69 -0
  34. data/ext/gecode-2.1.1/contribs/qecode/myspace.hh +69 -0
  35. data/ext/gecode-2.1.1/contribs/qecode/qecode.hh +56 -0
  36. data/ext/gecode-2.1.1/contribs/qecode/qecore.cc +145 -0
  37. data/ext/gecode-2.1.1/contribs/qecode/qecore.hh +247 -0
  38. data/ext/gecode-2.1.1/contribs/qecode/qsolver.cc +168 -0
  39. data/ext/gecode-2.1.1/contribs/qecode/qsolver.hh +73 -0
  40. data/ext/gecode-2.1.1/contribs/qecode/shortdesc.ac +1 -0
  41. data/ext/gecode-2.1.1/contribs/qecode/valueHeuristic.hh +91 -0
  42. data/ext/gecode-2.1.1/contribs/qecode/vartype.hh +31 -0
  43. data/ext/gecode-2.1.1/contribs/qecode/warner.cc +101 -0
  44. data/ext/gecode-2.1.1/contribs/qecode/warner.hh +83 -0
  45. data/ext/gecode-2.1.1/doxygen/doxygen.conf.in +1270 -0
  46. data/ext/gecode-2.1.1/doxygen/doxygen.hh.in +1111 -0
  47. data/ext/gecode-2.1.1/doxygen/reflection.hh +417 -0
  48. data/ext/gecode-2.1.1/gecode.m4 +956 -0
  49. data/ext/gecode-2.1.1/gecode/cpltset.hh +797 -0
  50. data/ext/gecode-2.1.1/gecode/cpltset/array.cc +121 -0
  51. data/ext/gecode-2.1.1/gecode/cpltset/array.icc +81 -0
  52. data/ext/gecode-2.1.1/gecode/cpltset/bddmanager.cc +59 -0
  53. data/ext/gecode-2.1.1/gecode/cpltset/bddmanager.icc +448 -0
  54. data/ext/gecode-2.1.1/gecode/cpltset/branch.cc +68 -0
  55. data/ext/gecode-2.1.1/gecode/cpltset/branch.hh +208 -0
  56. data/ext/gecode-2.1.1/gecode/cpltset/branch/select-val.icc +167 -0
  57. data/ext/gecode-2.1.1/gecode/cpltset/branch/select-view.icc +143 -0
  58. data/ext/gecode-2.1.1/gecode/cpltset/constraints/atmost.cc +472 -0
  59. data/ext/gecode-2.1.1/gecode/cpltset/constraints/cardinality.cc +69 -0
  60. data/ext/gecode-2.1.1/gecode/cpltset/constraints/distinct.cc +83 -0
  61. data/ext/gecode-2.1.1/gecode/cpltset/constraints/dom.cc +147 -0
  62. data/ext/gecode-2.1.1/gecode/cpltset/constraints/partition.cc +383 -0
  63. data/ext/gecode-2.1.1/gecode/cpltset/constraints/rangeroots.cc +466 -0
  64. data/ext/gecode-2.1.1/gecode/cpltset/constraints/rel.cc +530 -0
  65. data/ext/gecode-2.1.1/gecode/cpltset/constraints/select.cc +126 -0
  66. data/ext/gecode-2.1.1/gecode/cpltset/constraints/singleton.cc +55 -0
  67. data/ext/gecode-2.1.1/gecode/cpltset/exception.icc +172 -0
  68. data/ext/gecode-2.1.1/gecode/cpltset/propagators.hh +335 -0
  69. data/ext/gecode-2.1.1/gecode/cpltset/propagators/binary.icc +260 -0
  70. data/ext/gecode-2.1.1/gecode/cpltset/propagators/nary.icc +210 -0
  71. data/ext/gecode-2.1.1/gecode/cpltset/propagators/naryone.icc +165 -0
  72. data/ext/gecode-2.1.1/gecode/cpltset/propagators/narytwo.icc +191 -0
  73. data/ext/gecode-2.1.1/gecode/cpltset/propagators/singleton.icc +130 -0
  74. data/ext/gecode-2.1.1/gecode/cpltset/propagators/unary.icc +132 -0
  75. data/ext/gecode-2.1.1/gecode/cpltset/support.cc +673 -0
  76. data/ext/gecode-2.1.1/gecode/cpltset/support.icc +696 -0
  77. data/ext/gecode-2.1.1/gecode/cpltset/var-imp.icc +487 -0
  78. data/ext/gecode-2.1.1/gecode/cpltset/var-imp/cpltset.cc +926 -0
  79. data/ext/gecode-2.1.1/gecode/cpltset/var-imp/cpltset.icc +687 -0
  80. data/ext/gecode-2.1.1/gecode/cpltset/var-imp/cpltset.vis +86 -0
  81. data/ext/gecode-2.1.1/gecode/cpltset/var/cpltset.cc +101 -0
  82. data/ext/gecode-2.1.1/gecode/cpltset/var/cpltset.icc +219 -0
  83. data/ext/gecode-2.1.1/gecode/cpltset/view.icc +231 -0
  84. data/ext/gecode-2.1.1/gecode/cpltset/view/cpltset.icc +420 -0
  85. data/ext/gecode-2.1.1/gecode/cpltset/view/print.cc +166 -0
  86. data/ext/gecode-2.1.1/gecode/gist.hh +162 -0
  87. data/ext/gecode-2.1.1/gecode/gist/addchild.cc +191 -0
  88. data/ext/gecode-2.1.1/gecode/gist/addchild.hh +76 -0
  89. data/ext/gecode-2.1.1/gecode/gist/addvisualisationdialog.cc +139 -0
  90. data/ext/gecode-2.1.1/gecode/gist/addvisualisationdialog.hh +78 -0
  91. data/ext/gecode-2.1.1/gecode/gist/analysiscursor.cc +115 -0
  92. data/ext/gecode-2.1.1/gecode/gist/analysiscursor.hh +77 -0
  93. data/ext/gecode-2.1.1/gecode/gist/better.hh +59 -0
  94. data/ext/gecode-2.1.1/gecode/gist/config.cc +61 -0
  95. data/ext/gecode-2.1.1/gecode/gist/config.hh +62 -0
  96. data/ext/gecode-2.1.1/gecode/gist/drawingcursor.cc +245 -0
  97. data/ext/gecode-2.1.1/gecode/gist/drawingcursor.hh +101 -0
  98. data/ext/gecode-2.1.1/gecode/gist/gecodelogo.icc +522 -0
  99. data/ext/gecode-2.1.1/gecode/gist/gist.cc +129 -0
  100. data/ext/gecode-2.1.1/gecode/gist/gist.icc +76 -0
  101. data/ext/gecode-2.1.1/gecode/gist/mainwindow.cc +254 -0
  102. data/ext/gecode-2.1.1/gecode/gist/mainwindow.hh +86 -0
  103. data/ext/gecode-2.1.1/gecode/gist/node.cc +100 -0
  104. data/ext/gecode-2.1.1/gecode/gist/node.hh +89 -0
  105. data/ext/gecode-2.1.1/gecode/gist/nodecursor.cc +124 -0
  106. data/ext/gecode-2.1.1/gecode/gist/nodecursor.hh +122 -0
  107. data/ext/gecode-2.1.1/gecode/gist/nodecursor.icc +79 -0
  108. data/ext/gecode-2.1.1/gecode/gist/nodevisitor.hh +91 -0
  109. data/ext/gecode-2.1.1/gecode/gist/nodevisitor.icc +112 -0
  110. data/ext/gecode-2.1.1/gecode/gist/postscript.cc +543 -0
  111. data/ext/gecode-2.1.1/gecode/gist/postscript.hh +56 -0
  112. data/ext/gecode-2.1.1/gecode/gist/preferences.cc +110 -0
  113. data/ext/gecode-2.1.1/gecode/gist/preferences.hh +76 -0
  114. data/ext/gecode-2.1.1/gecode/gist/reflectionhelpers.cc +55 -0
  115. data/ext/gecode-2.1.1/gecode/gist/reflectionhelpers.hh +58 -0
  116. data/ext/gecode-2.1.1/gecode/gist/shapelist.cc +331 -0
  117. data/ext/gecode-2.1.1/gecode/gist/shapelist.hh +140 -0
  118. data/ext/gecode-2.1.1/gecode/gist/spacenode.cc +531 -0
  119. data/ext/gecode-2.1.1/gecode/gist/spacenode.hh +224 -0
  120. data/ext/gecode-2.1.1/gecode/gist/test.cc +78 -0
  121. data/ext/gecode-2.1.1/gecode/gist/textoutput.cc +114 -0
  122. data/ext/gecode-2.1.1/gecode/gist/textoutput.hh +67 -0
  123. data/ext/gecode-2.1.1/gecode/gist/treecanvas.cc +1140 -0
  124. data/ext/gecode-2.1.1/gecode/gist/treecanvas.hh +324 -0
  125. data/ext/gecode-2.1.1/gecode/gist/ui_addchild.hh +163 -0
  126. data/ext/gecode-2.1.1/gecode/gist/ui_addvisualisationdialog.hh +163 -0
  127. data/ext/gecode-2.1.1/gecode/gist/visualisation/intvaritem.cc +175 -0
  128. data/ext/gecode-2.1.1/gecode/gist/visualisation/intvaritem.hh +71 -0
  129. data/ext/gecode-2.1.1/gecode/gist/visualisation/setvaritem.cc +219 -0
  130. data/ext/gecode-2.1.1/gecode/gist/visualisation/setvaritem.hh +73 -0
  131. data/ext/gecode-2.1.1/gecode/gist/visualisation/vararrayitem.hh +123 -0
  132. data/ext/gecode-2.1.1/gecode/gist/visualisation/vararrayview.cc +146 -0
  133. data/ext/gecode-2.1.1/gecode/gist/visualisation/vararrayview.hh +96 -0
  134. data/ext/gecode-2.1.1/gecode/gist/visualisation/vararrayviewt.hh +105 -0
  135. data/ext/gecode-2.1.1/gecode/gist/visualisation/varitem.cc +68 -0
  136. data/ext/gecode-2.1.1/gecode/gist/visualisation/varitem.hh +67 -0
  137. data/ext/gecode-2.1.1/gecode/gist/visualnode.cc +303 -0
  138. data/ext/gecode-2.1.1/gecode/gist/visualnode.hh +166 -0
  139. data/ext/gecode-2.1.1/gecode/int.hh +2035 -0
  140. data/ext/gecode-2.1.1/gecode/int/arithmetic.cc +136 -0
  141. data/ext/gecode-2.1.1/gecode/int/arithmetic.hh +440 -0
  142. data/ext/gecode-2.1.1/gecode/int/arithmetic/abs.icc +279 -0
  143. data/ext/gecode-2.1.1/gecode/int/arithmetic/max.icc +253 -0
  144. data/ext/gecode-2.1.1/gecode/int/arithmetic/mult.icc +522 -0
  145. data/ext/gecode-2.1.1/gecode/int/arithmetic/sqr.icc +218 -0
  146. data/ext/gecode-2.1.1/gecode/int/arithmetic/sqrt.icc +138 -0
  147. data/ext/gecode-2.1.1/gecode/int/array.cc +74 -0
  148. data/ext/gecode-2.1.1/gecode/int/array.icc +115 -0
  149. data/ext/gecode-2.1.1/gecode/int/bool.cc +642 -0
  150. data/ext/gecode-2.1.1/gecode/int/bool.hh +487 -0
  151. data/ext/gecode-2.1.1/gecode/int/bool/base.icc +156 -0
  152. data/ext/gecode-2.1.1/gecode/int/bool/eq.icc +239 -0
  153. data/ext/gecode-2.1.1/gecode/int/bool/eqv.icc +179 -0
  154. data/ext/gecode-2.1.1/gecode/int/bool/lq.icc +147 -0
  155. data/ext/gecode-2.1.1/gecode/int/bool/or.icc +1000 -0
  156. data/ext/gecode-2.1.1/gecode/int/branch.cc +301 -0
  157. data/ext/gecode-2.1.1/gecode/int/branch.hh +576 -0
  158. data/ext/gecode-2.1.1/gecode/int/branch/select-val.icc +338 -0
  159. data/ext/gecode-2.1.1/gecode/int/branch/select-view.icc +421 -0
  160. data/ext/gecode-2.1.1/gecode/int/channel.cc +114 -0
  161. data/ext/gecode-2.1.1/gecode/int/channel.hh +259 -0
  162. data/ext/gecode-2.1.1/gecode/int/channel/base.icc +86 -0
  163. data/ext/gecode-2.1.1/gecode/int/channel/dom.icc +347 -0
  164. data/ext/gecode-2.1.1/gecode/int/channel/link-multi.cc +231 -0
  165. data/ext/gecode-2.1.1/gecode/int/channel/link-multi.icc +70 -0
  166. data/ext/gecode-2.1.1/gecode/int/channel/link-single.cc +97 -0
  167. data/ext/gecode-2.1.1/gecode/int/channel/link-single.icc +71 -0
  168. data/ext/gecode-2.1.1/gecode/int/channel/val.icc +276 -0
  169. data/ext/gecode-2.1.1/gecode/int/circuit.cc +63 -0
  170. data/ext/gecode-2.1.1/gecode/int/circuit.hh +175 -0
  171. data/ext/gecode-2.1.1/gecode/int/circuit/base.icc +271 -0
  172. data/ext/gecode-2.1.1/gecode/int/circuit/dom.icc +146 -0
  173. data/ext/gecode-2.1.1/gecode/int/circuit/val.icc +122 -0
  174. data/ext/gecode-2.1.1/gecode/int/count.cc +310 -0
  175. data/ext/gecode-2.1.1/gecode/int/count.hh +487 -0
  176. data/ext/gecode-2.1.1/gecode/int/count/int.icc +619 -0
  177. data/ext/gecode-2.1.1/gecode/int/count/rel.icc +144 -0
  178. data/ext/gecode-2.1.1/gecode/int/count/view.icc +449 -0
  179. data/ext/gecode-2.1.1/gecode/int/cumulatives.cc +226 -0
  180. data/ext/gecode-2.1.1/gecode/int/cumulatives.hh +141 -0
  181. data/ext/gecode-2.1.1/gecode/int/cumulatives/val.icc +429 -0
  182. data/ext/gecode-2.1.1/gecode/int/distinct.cc +108 -0
  183. data/ext/gecode-2.1.1/gecode/int/distinct.hh +341 -0
  184. data/ext/gecode-2.1.1/gecode/int/distinct/bilink.icc +89 -0
  185. data/ext/gecode-2.1.1/gecode/int/distinct/bnd.icc +378 -0
  186. data/ext/gecode-2.1.1/gecode/int/distinct/combptr.icc +78 -0
  187. data/ext/gecode-2.1.1/gecode/int/distinct/dom.icc +750 -0
  188. data/ext/gecode-2.1.1/gecode/int/distinct/edge.icc +118 -0
  189. data/ext/gecode-2.1.1/gecode/int/distinct/node.icc +147 -0
  190. data/ext/gecode-2.1.1/gecode/int/distinct/ter-dom.icc +136 -0
  191. data/ext/gecode-2.1.1/gecode/int/distinct/val.icc +209 -0
  192. data/ext/gecode-2.1.1/gecode/int/dom.cc +116 -0
  193. data/ext/gecode-2.1.1/gecode/int/dom.hh +134 -0
  194. data/ext/gecode-2.1.1/gecode/int/dom/range.icc +129 -0
  195. data/ext/gecode-2.1.1/gecode/int/dom/spec.icc +151 -0
  196. data/ext/gecode-2.1.1/gecode/int/element.cc +156 -0
  197. data/ext/gecode-2.1.1/gecode/int/element.hh +239 -0
  198. data/ext/gecode-2.1.1/gecode/int/element/int.icc +441 -0
  199. data/ext/gecode-2.1.1/gecode/int/element/view.icc +584 -0
  200. data/ext/gecode-2.1.1/gecode/int/exception.icc +163 -0
  201. data/ext/gecode-2.1.1/gecode/int/extensional.cc +138 -0
  202. data/ext/gecode-2.1.1/gecode/int/extensional.hh +415 -0
  203. data/ext/gecode-2.1.1/gecode/int/extensional/base.icc +160 -0
  204. data/ext/gecode-2.1.1/gecode/int/extensional/basic.icc +166 -0
  205. data/ext/gecode-2.1.1/gecode/int/extensional/bitset.icc +113 -0
  206. data/ext/gecode-2.1.1/gecode/int/extensional/dfa.cc +565 -0
  207. data/ext/gecode-2.1.1/gecode/int/extensional/dfa.icc +241 -0
  208. data/ext/gecode-2.1.1/gecode/int/extensional/incremental.icc +393 -0
  209. data/ext/gecode-2.1.1/gecode/int/extensional/layered-graph.icc +604 -0
  210. data/ext/gecode-2.1.1/gecode/int/extensional/tuple-set.cc +311 -0
  211. data/ext/gecode-2.1.1/gecode/int/extensional/tuple-set.icc +207 -0
  212. data/ext/gecode-2.1.1/gecode/int/gcc.cc +374 -0
  213. data/ext/gecode-2.1.1/gecode/int/gcc.hh +329 -0
  214. data/ext/gecode-2.1.1/gecode/int/gcc/bnd.icc +660 -0
  215. data/ext/gecode-2.1.1/gecode/int/gcc/dom.icc +531 -0
  216. data/ext/gecode-2.1.1/gecode/int/gcc/gccbndsup.icc +780 -0
  217. data/ext/gecode-2.1.1/gecode/int/gcc/graphsup.icc +2422 -0
  218. data/ext/gecode-2.1.1/gecode/int/gcc/lbc.icc +391 -0
  219. data/ext/gecode-2.1.1/gecode/int/gcc/occur.icc +829 -0
  220. data/ext/gecode-2.1.1/gecode/int/gcc/ubc.icc +255 -0
  221. data/ext/gecode-2.1.1/gecode/int/gcc/val.icc +400 -0
  222. data/ext/gecode-2.1.1/gecode/int/int-set.cc +153 -0
  223. data/ext/gecode-2.1.1/gecode/int/int-set.icc +191 -0
  224. data/ext/gecode-2.1.1/gecode/int/limits.icc +54 -0
  225. data/ext/gecode-2.1.1/gecode/int/linear-bool.cc +220 -0
  226. data/ext/gecode-2.1.1/gecode/int/linear-int.cc +240 -0
  227. data/ext/gecode-2.1.1/gecode/int/linear.hh +1849 -0
  228. data/ext/gecode-2.1.1/gecode/int/linear/bool-int.icc +791 -0
  229. data/ext/gecode-2.1.1/gecode/int/linear/bool-post.cc +433 -0
  230. data/ext/gecode-2.1.1/gecode/int/linear/bool-scale.icc +854 -0
  231. data/ext/gecode-2.1.1/gecode/int/linear/bool-view.icc +399 -0
  232. data/ext/gecode-2.1.1/gecode/int/linear/int-bin.icc +605 -0
  233. data/ext/gecode-2.1.1/gecode/int/linear/int-dom.icc +539 -0
  234. data/ext/gecode-2.1.1/gecode/int/linear/int-nary.icc +1004 -0
  235. data/ext/gecode-2.1.1/gecode/int/linear/int-noview.icc +385 -0
  236. data/ext/gecode-2.1.1/gecode/int/linear/int-post.cc +493 -0
  237. data/ext/gecode-2.1.1/gecode/int/linear/int-ter.icc +357 -0
  238. data/ext/gecode-2.1.1/gecode/int/linear/post.icc +146 -0
  239. data/ext/gecode-2.1.1/gecode/int/propagator.icc +240 -0
  240. data/ext/gecode-2.1.1/gecode/int/rel.cc +431 -0
  241. data/ext/gecode-2.1.1/gecode/int/rel.hh +657 -0
  242. data/ext/gecode-2.1.1/gecode/int/rel/eq.icc +848 -0
  243. data/ext/gecode-2.1.1/gecode/int/rel/lex.icc +248 -0
  244. data/ext/gecode-2.1.1/gecode/int/rel/lq-le.icc +352 -0
  245. data/ext/gecode-2.1.1/gecode/int/rel/nq.icc +269 -0
  246. data/ext/gecode-2.1.1/gecode/int/sorted.cc +91 -0
  247. data/ext/gecode-2.1.1/gecode/int/sorted.hh +117 -0
  248. data/ext/gecode-2.1.1/gecode/int/sorted/matching.icc +182 -0
  249. data/ext/gecode-2.1.1/gecode/int/sorted/narrowing.icc +257 -0
  250. data/ext/gecode-2.1.1/gecode/int/sorted/order.icc +208 -0
  251. data/ext/gecode-2.1.1/gecode/int/sorted/propagate.icc +669 -0
  252. data/ext/gecode-2.1.1/gecode/int/sorted/sortsup.icc +596 -0
  253. data/ext/gecode-2.1.1/gecode/int/unshare.cc +148 -0
  254. data/ext/gecode-2.1.1/gecode/int/var-imp.icc +745 -0
  255. data/ext/gecode-2.1.1/gecode/int/var-imp/bool.cc +104 -0
  256. data/ext/gecode-2.1.1/gecode/int/var-imp/bool.icc +423 -0
  257. data/ext/gecode-2.1.1/gecode/int/var-imp/bool.vis +69 -0
  258. data/ext/gecode-2.1.1/gecode/int/var-imp/delta.icc +64 -0
  259. data/ext/gecode-2.1.1/gecode/int/var-imp/int.cc +407 -0
  260. data/ext/gecode-2.1.1/gecode/int/var-imp/int.icc +1004 -0
  261. data/ext/gecode-2.1.1/gecode/int/var-imp/int.vis +195 -0
  262. data/ext/gecode-2.1.1/gecode/int/var/bool.cc +72 -0
  263. data/ext/gecode-2.1.1/gecode/int/var/bool.icc +126 -0
  264. data/ext/gecode-2.1.1/gecode/int/var/int.cc +79 -0
  265. data/ext/gecode-2.1.1/gecode/int/var/int.icc +151 -0
  266. data/ext/gecode-2.1.1/gecode/int/view.icc +1894 -0
  267. data/ext/gecode-2.1.1/gecode/int/view/bool.icc +598 -0
  268. data/ext/gecode-2.1.1/gecode/int/view/constint.icc +392 -0
  269. data/ext/gecode-2.1.1/gecode/int/view/int.icc +301 -0
  270. data/ext/gecode-2.1.1/gecode/int/view/iter.icc +65 -0
  271. data/ext/gecode-2.1.1/gecode/int/view/minus.icc +372 -0
  272. data/ext/gecode-2.1.1/gecode/int/view/offset.icc +362 -0
  273. data/ext/gecode-2.1.1/gecode/int/view/print.cc +133 -0
  274. data/ext/gecode-2.1.1/gecode/int/view/rtest.icc +231 -0
  275. data/ext/gecode-2.1.1/gecode/int/view/scale.icc +456 -0
  276. data/ext/gecode-2.1.1/gecode/int/view/zero.icc +384 -0
  277. data/ext/gecode-2.1.1/gecode/iter.hh +90 -0
  278. data/ext/gecode-2.1.1/gecode/iter/ranges-add.icc +144 -0
  279. data/ext/gecode-2.1.1/gecode/iter/ranges-append.icc +222 -0
  280. data/ext/gecode-2.1.1/gecode/iter/ranges-array.icc +138 -0
  281. data/ext/gecode-2.1.1/gecode/iter/ranges-cache.icc +337 -0
  282. data/ext/gecode-2.1.1/gecode/iter/ranges-compl.icc +220 -0
  283. data/ext/gecode-2.1.1/gecode/iter/ranges-diff.icc +142 -0
  284. data/ext/gecode-2.1.1/gecode/iter/ranges-empty.icc +111 -0
  285. data/ext/gecode-2.1.1/gecode/iter/ranges-inter.icc +216 -0
  286. data/ext/gecode-2.1.1/gecode/iter/ranges-minmax.icc +118 -0
  287. data/ext/gecode-2.1.1/gecode/iter/ranges-minus.icc +150 -0
  288. data/ext/gecode-2.1.1/gecode/iter/ranges-offset.icc +127 -0
  289. data/ext/gecode-2.1.1/gecode/iter/ranges-operations.icc +157 -0
  290. data/ext/gecode-2.1.1/gecode/iter/ranges-scale.icc +238 -0
  291. data/ext/gecode-2.1.1/gecode/iter/ranges-singleton-append.icc +111 -0
  292. data/ext/gecode-2.1.1/gecode/iter/ranges-singleton.icc +86 -0
  293. data/ext/gecode-2.1.1/gecode/iter/ranges-size.icc +146 -0
  294. data/ext/gecode-2.1.1/gecode/iter/ranges-union.icc +224 -0
  295. data/ext/gecode-2.1.1/gecode/iter/ranges-values.icc +140 -0
  296. data/ext/gecode-2.1.1/gecode/iter/values-array.icc +119 -0
  297. data/ext/gecode-2.1.1/gecode/iter/values-minus.icc +130 -0
  298. data/ext/gecode-2.1.1/gecode/iter/values-offset.icc +113 -0
  299. data/ext/gecode-2.1.1/gecode/iter/values-ranges.icc +106 -0
  300. data/ext/gecode-2.1.1/gecode/iter/values-singleton.icc +109 -0
  301. data/ext/gecode-2.1.1/gecode/iter/values-unique.icc +118 -0
  302. data/ext/gecode-2.1.1/gecode/iter/virtual-ranges-compl.icc +261 -0
  303. data/ext/gecode-2.1.1/gecode/iter/virtual-ranges-inter.icc +241 -0
  304. data/ext/gecode-2.1.1/gecode/iter/virtual-ranges-union.icc +249 -0
  305. data/ext/gecode-2.1.1/gecode/iter/virtual-ranges.icc +140 -0
  306. data/ext/gecode-2.1.1/gecode/kernel.hh +182 -0
  307. data/ext/gecode-2.1.1/gecode/kernel/advisor.icc +104 -0
  308. data/ext/gecode-2.1.1/gecode/kernel/array.icc +1232 -0
  309. data/ext/gecode-2.1.1/gecode/kernel/branching.icc +447 -0
  310. data/ext/gecode-2.1.1/gecode/kernel/core.cc +473 -0
  311. data/ext/gecode-2.1.1/gecode/kernel/core.icc +2295 -0
  312. data/ext/gecode-2.1.1/gecode/kernel/exception.icc +101 -0
  313. data/ext/gecode-2.1.1/gecode/kernel/macros.icc +117 -0
  314. data/ext/gecode-2.1.1/gecode/kernel/memory-manager.cc +57 -0
  315. data/ext/gecode-2.1.1/gecode/kernel/memory-manager.icc +458 -0
  316. data/ext/gecode-2.1.1/gecode/kernel/modevent.icc +69 -0
  317. data/ext/gecode-2.1.1/gecode/kernel/propagator.icc +845 -0
  318. data/ext/gecode-2.1.1/gecode/kernel/reflection.cc +921 -0
  319. data/ext/gecode-2.1.1/gecode/kernel/reflection.icc +1012 -0
  320. data/ext/gecode-2.1.1/gecode/kernel/shared-array.icc +286 -0
  321. data/ext/gecode-2.1.1/gecode/kernel/var-imp.icc +433 -0
  322. data/ext/gecode-2.1.1/gecode/kernel/var-map.cc +269 -0
  323. data/ext/gecode-2.1.1/gecode/kernel/var-map.icc +227 -0
  324. data/ext/gecode-2.1.1/gecode/kernel/var-traits.icc +72 -0
  325. data/ext/gecode-2.1.1/gecode/kernel/var-type.cc +68 -0
  326. data/ext/gecode-2.1.1/gecode/kernel/var-type.icc +915 -0
  327. data/ext/gecode-2.1.1/gecode/kernel/var.icc +120 -0
  328. data/ext/gecode-2.1.1/gecode/kernel/view.icc +611 -0
  329. data/ext/gecode-2.1.1/gecode/minimodel.hh +1165 -0
  330. data/ext/gecode-2.1.1/gecode/minimodel/arithmetic.cc +179 -0
  331. data/ext/gecode-2.1.1/gecode/minimodel/bool-expr.cc +327 -0
  332. data/ext/gecode-2.1.1/gecode/minimodel/bool-expr.icc +131 -0
  333. data/ext/gecode-2.1.1/gecode/minimodel/bool-rel.icc +83 -0
  334. data/ext/gecode-2.1.1/gecode/minimodel/exception.icc +84 -0
  335. data/ext/gecode-2.1.1/gecode/minimodel/lin-expr.icc +374 -0
  336. data/ext/gecode-2.1.1/gecode/minimodel/lin-rel.icc +324 -0
  337. data/ext/gecode-2.1.1/gecode/minimodel/matrix.icc +144 -0
  338. data/ext/gecode-2.1.1/gecode/minimodel/reg.cc +823 -0
  339. data/ext/gecode-2.1.1/gecode/search.hh +752 -0
  340. data/ext/gecode-2.1.1/gecode/search/bab.cc +169 -0
  341. data/ext/gecode-2.1.1/gecode/search/bab.icc +117 -0
  342. data/ext/gecode-2.1.1/gecode/search/dfs.cc +79 -0
  343. data/ext/gecode-2.1.1/gecode/search/dfs.icc +169 -0
  344. data/ext/gecode-2.1.1/gecode/search/engine-ctrl.icc +131 -0
  345. data/ext/gecode-2.1.1/gecode/search/lds.cc +265 -0
  346. data/ext/gecode-2.1.1/gecode/search/lds.icc +73 -0
  347. data/ext/gecode-2.1.1/gecode/search/options.cc +46 -0
  348. data/ext/gecode-2.1.1/gecode/search/options.icc +46 -0
  349. data/ext/gecode-2.1.1/gecode/search/reco-stack.icc +237 -0
  350. data/ext/gecode-2.1.1/gecode/search/restart.icc +99 -0
  351. data/ext/gecode-2.1.1/gecode/search/statistics.icc +46 -0
  352. data/ext/gecode-2.1.1/gecode/search/stop.cc +74 -0
  353. data/ext/gecode-2.1.1/gecode/search/stop.icc +116 -0
  354. data/ext/gecode-2.1.1/gecode/serialization.hh +149 -0
  355. data/ext/gecode-2.1.1/gecode/serialization/boost.cc +78 -0
  356. data/ext/gecode-2.1.1/gecode/serialization/boost.icc +381 -0
  357. data/ext/gecode-2.1.1/gecode/serialization/flatzinc.cc +372 -0
  358. data/ext/gecode-2.1.1/gecode/serialization/javascript.cc +340 -0
  359. data/ext/gecode-2.1.1/gecode/serialization/javascript.hh +69 -0
  360. data/ext/gecode-2.1.1/gecode/serialization/register.cc +8142 -0
  361. data/ext/gecode-2.1.1/gecode/set.hh +970 -0
  362. data/ext/gecode-2.1.1/gecode/set/array.cc +114 -0
  363. data/ext/gecode-2.1.1/gecode/set/array.icc +77 -0
  364. data/ext/gecode-2.1.1/gecode/set/branch.cc +78 -0
  365. data/ext/gecode-2.1.1/gecode/set/branch.hh +213 -0
  366. data/ext/gecode-2.1.1/gecode/set/branch/select-val.icc +132 -0
  367. data/ext/gecode-2.1.1/gecode/set/branch/select-view.icc +148 -0
  368. data/ext/gecode-2.1.1/gecode/set/cardinality.cc +65 -0
  369. data/ext/gecode-2.1.1/gecode/set/convex.cc +59 -0
  370. data/ext/gecode-2.1.1/gecode/set/convex.hh +126 -0
  371. data/ext/gecode-2.1.1/gecode/set/convex/conv.cc +118 -0
  372. data/ext/gecode-2.1.1/gecode/set/convex/conv.icc +67 -0
  373. data/ext/gecode-2.1.1/gecode/set/convex/hull.cc +140 -0
  374. data/ext/gecode-2.1.1/gecode/set/convex/hull.icc +68 -0
  375. data/ext/gecode-2.1.1/gecode/set/distinct.cc +56 -0
  376. data/ext/gecode-2.1.1/gecode/set/distinct.hh +90 -0
  377. data/ext/gecode-2.1.1/gecode/set/distinct/atmostOne.cc +192 -0
  378. data/ext/gecode-2.1.1/gecode/set/distinct/atmostOne.icc +66 -0
  379. data/ext/gecode-2.1.1/gecode/set/dom.cc +232 -0
  380. data/ext/gecode-2.1.1/gecode/set/exception.icc +135 -0
  381. data/ext/gecode-2.1.1/gecode/set/int.cc +177 -0
  382. data/ext/gecode-2.1.1/gecode/set/int.hh +391 -0
  383. data/ext/gecode-2.1.1/gecode/set/int/card.icc +116 -0
  384. data/ext/gecode-2.1.1/gecode/set/int/channel-bool.icc +303 -0
  385. data/ext/gecode-2.1.1/gecode/set/int/channel-int.icc +174 -0
  386. data/ext/gecode-2.1.1/gecode/set/int/match.icc +224 -0
  387. data/ext/gecode-2.1.1/gecode/set/int/minmax.icc +228 -0
  388. data/ext/gecode-2.1.1/gecode/set/int/weights.icc +370 -0
  389. data/ext/gecode-2.1.1/gecode/set/limits.icc +62 -0
  390. data/ext/gecode-2.1.1/gecode/set/projectors-compiler.hh +164 -0
  391. data/ext/gecode-2.1.1/gecode/set/projectors.cc +143 -0
  392. data/ext/gecode-2.1.1/gecode/set/projectors.hh +438 -0
  393. data/ext/gecode-2.1.1/gecode/set/projectors/compiler.cc +859 -0
  394. data/ext/gecode-2.1.1/gecode/set/projectors/formula.cc +312 -0
  395. data/ext/gecode-2.1.1/gecode/set/projectors/formula.icc +66 -0
  396. data/ext/gecode-2.1.1/gecode/set/projectors/projector-set.cc +91 -0
  397. data/ext/gecode-2.1.1/gecode/set/projectors/projector-set.icc +85 -0
  398. data/ext/gecode-2.1.1/gecode/set/projectors/projector.cc +147 -0
  399. data/ext/gecode-2.1.1/gecode/set/projectors/projector.icc +98 -0
  400. data/ext/gecode-2.1.1/gecode/set/projectors/propagator.hh +168 -0
  401. data/ext/gecode-2.1.1/gecode/set/projectors/propagator/card.icc +128 -0
  402. data/ext/gecode-2.1.1/gecode/set/projectors/propagator/nary.icc +144 -0
  403. data/ext/gecode-2.1.1/gecode/set/projectors/propagator/re-nary.cc +100 -0
  404. data/ext/gecode-2.1.1/gecode/set/projectors/propagator/re-nary.icc +71 -0
  405. data/ext/gecode-2.1.1/gecode/set/projectors/set-expr.cc +339 -0
  406. data/ext/gecode-2.1.1/gecode/set/projectors/set-expr.icc +237 -0
  407. data/ext/gecode-2.1.1/gecode/set/propagator.icc +125 -0
  408. data/ext/gecode-2.1.1/gecode/set/rel-op-const.cc +332 -0
  409. data/ext/gecode-2.1.1/gecode/set/rel-op.cc +197 -0
  410. data/ext/gecode-2.1.1/gecode/set/rel-op.hh +353 -0
  411. data/ext/gecode-2.1.1/gecode/set/rel-op/common.icc +557 -0
  412. data/ext/gecode-2.1.1/gecode/set/rel-op/inter.icc +409 -0
  413. data/ext/gecode-2.1.1/gecode/set/rel-op/partition.icc +202 -0
  414. data/ext/gecode-2.1.1/gecode/set/rel-op/post.icc +223 -0
  415. data/ext/gecode-2.1.1/gecode/set/rel-op/subofunion.icc +192 -0
  416. data/ext/gecode-2.1.1/gecode/set/rel-op/superofinter.icc +193 -0
  417. data/ext/gecode-2.1.1/gecode/set/rel-op/union.icc +383 -0
  418. data/ext/gecode-2.1.1/gecode/set/rel.cc +258 -0
  419. data/ext/gecode-2.1.1/gecode/set/rel.hh +321 -0
  420. data/ext/gecode-2.1.1/gecode/set/rel/common.icc +125 -0
  421. data/ext/gecode-2.1.1/gecode/set/rel/eq.icc +139 -0
  422. data/ext/gecode-2.1.1/gecode/set/rel/nosubset.icc +128 -0
  423. data/ext/gecode-2.1.1/gecode/set/rel/nq.icc +208 -0
  424. data/ext/gecode-2.1.1/gecode/set/rel/re-eq.icc +179 -0
  425. data/ext/gecode-2.1.1/gecode/set/rel/re-subset.icc +172 -0
  426. data/ext/gecode-2.1.1/gecode/set/rel/subset.icc +119 -0
  427. data/ext/gecode-2.1.1/gecode/set/select.cc +135 -0
  428. data/ext/gecode-2.1.1/gecode/set/select.hh +233 -0
  429. data/ext/gecode-2.1.1/gecode/set/select/disjoint.cc +308 -0
  430. data/ext/gecode-2.1.1/gecode/set/select/disjoint.icc +75 -0
  431. data/ext/gecode-2.1.1/gecode/set/select/idxarray.hh +113 -0
  432. data/ext/gecode-2.1.1/gecode/set/select/idxarray.icc +155 -0
  433. data/ext/gecode-2.1.1/gecode/set/select/inter.icc +349 -0
  434. data/ext/gecode-2.1.1/gecode/set/select/union.icc +371 -0
  435. data/ext/gecode-2.1.1/gecode/set/select/unionConst.icc +334 -0
  436. data/ext/gecode-2.1.1/gecode/set/sequence.cc +69 -0
  437. data/ext/gecode-2.1.1/gecode/set/sequence.hh +134 -0
  438. data/ext/gecode-2.1.1/gecode/set/sequence/common.icc +99 -0
  439. data/ext/gecode-2.1.1/gecode/set/sequence/seq-u.cc +176 -0
  440. data/ext/gecode-2.1.1/gecode/set/sequence/seq-u.icc +79 -0
  441. data/ext/gecode-2.1.1/gecode/set/sequence/seq.cc +94 -0
  442. data/ext/gecode-2.1.1/gecode/set/sequence/seq.icc +69 -0
  443. data/ext/gecode-2.1.1/gecode/set/var-imp.icc +737 -0
  444. data/ext/gecode-2.1.1/gecode/set/var-imp/delta.icc +78 -0
  445. data/ext/gecode-2.1.1/gecode/set/var-imp/integerset.cc +349 -0
  446. data/ext/gecode-2.1.1/gecode/set/var-imp/integerset.icc +484 -0
  447. data/ext/gecode-2.1.1/gecode/set/var-imp/iter.icc +63 -0
  448. data/ext/gecode-2.1.1/gecode/set/var-imp/set.cc +214 -0
  449. data/ext/gecode-2.1.1/gecode/set/var-imp/set.icc +532 -0
  450. data/ext/gecode-2.1.1/gecode/set/var-imp/set.vis +190 -0
  451. data/ext/gecode-2.1.1/gecode/set/var/set.cc +105 -0
  452. data/ext/gecode-2.1.1/gecode/set/var/set.icc +303 -0
  453. data/ext/gecode-2.1.1/gecode/set/view.icc +1503 -0
  454. data/ext/gecode-2.1.1/gecode/set/view/complement.icc +629 -0
  455. data/ext/gecode-2.1.1/gecode/set/view/const.icc +907 -0
  456. data/ext/gecode-2.1.1/gecode/set/view/offset.icc +497 -0
  457. data/ext/gecode-2.1.1/gecode/set/view/print.cc +141 -0
  458. data/ext/gecode-2.1.1/gecode/set/view/set.icc +275 -0
  459. data/ext/gecode-2.1.1/gecode/set/view/singleton.icc +438 -0
  460. data/ext/gecode-2.1.1/gecode/support.hh +110 -0
  461. data/ext/gecode-2.1.1/gecode/support/block-allocator.icc +158 -0
  462. data/ext/gecode-2.1.1/gecode/support/buddy/AUTHORS +11 -0
  463. data/ext/gecode-2.1.1/gecode/support/buddy/ChangeLog +218 -0
  464. data/ext/gecode-2.1.1/gecode/support/buddy/NEWS +200 -0
  465. data/ext/gecode-2.1.1/gecode/support/buddy/README +128 -0
  466. data/ext/gecode-2.1.1/gecode/support/buddy/bdd.h +939 -0
  467. data/ext/gecode-2.1.1/gecode/support/buddy/bddio.c +596 -0
  468. data/ext/gecode-2.1.1/gecode/support/buddy/bddop.c +2848 -0
  469. data/ext/gecode-2.1.1/gecode/support/buddy/bddtree.h +62 -0
  470. data/ext/gecode-2.1.1/gecode/support/buddy/bvec.c +1354 -0
  471. data/ext/gecode-2.1.1/gecode/support/buddy/bvec.h +298 -0
  472. data/ext/gecode-2.1.1/gecode/support/buddy/cache.c +104 -0
  473. data/ext/gecode-2.1.1/gecode/support/buddy/cache.h +72 -0
  474. data/ext/gecode-2.1.1/gecode/support/buddy/config.h +20 -0
  475. data/ext/gecode-2.1.1/gecode/support/buddy/cppext.cc +626 -0
  476. data/ext/gecode-2.1.1/gecode/support/buddy/fdd.c +1079 -0
  477. data/ext/gecode-2.1.1/gecode/support/buddy/fdd.h +175 -0
  478. data/ext/gecode-2.1.1/gecode/support/buddy/imatrix.c +151 -0
  479. data/ext/gecode-2.1.1/gecode/support/buddy/imatrix.h +61 -0
  480. data/ext/gecode-2.1.1/gecode/support/buddy/kernel.c +1555 -0
  481. data/ext/gecode-2.1.1/gecode/support/buddy/kernel.h +244 -0
  482. data/ext/gecode-2.1.1/gecode/support/buddy/pairs.c +336 -0
  483. data/ext/gecode-2.1.1/gecode/support/buddy/prime.c +322 -0
  484. data/ext/gecode-2.1.1/gecode/support/buddy/prime.h +50 -0
  485. data/ext/gecode-2.1.1/gecode/support/buddy/reorder.c +2345 -0
  486. data/ext/gecode-2.1.1/gecode/support/buddy/tree.c +224 -0
  487. data/ext/gecode-2.1.1/gecode/support/cast.icc +52 -0
  488. data/ext/gecode-2.1.1/gecode/support/config.icc.in +80 -0
  489. data/ext/gecode-2.1.1/gecode/support/dynamic-array.icc +138 -0
  490. data/ext/gecode-2.1.1/gecode/support/dynamic-stack.icc +167 -0
  491. data/ext/gecode-2.1.1/gecode/support/exception.cc +65 -0
  492. data/ext/gecode-2.1.1/gecode/support/exception.icc +82 -0
  493. data/ext/gecode-2.1.1/gecode/support/macros.icc +103 -0
  494. data/ext/gecode-2.1.1/gecode/support/map.icc +207 -0
  495. data/ext/gecode-2.1.1/gecode/support/marked-pointer.icc +66 -0
  496. data/ext/gecode-2.1.1/gecode/support/memory.icc +220 -0
  497. data/ext/gecode-2.1.1/gecode/support/random.icc +121 -0
  498. data/ext/gecode-2.1.1/gecode/support/sentinel-stack.icc +122 -0
  499. data/ext/gecode-2.1.1/gecode/support/sort.icc +210 -0
  500. data/ext/gecode-2.1.1/gecode/support/static-pqueue.icc +242 -0
  501. data/ext/gecode-2.1.1/gecode/support/static-stack.icc +125 -0
  502. data/ext/gecode-2.1.1/gecode/support/symbol.cc +226 -0
  503. data/ext/gecode-2.1.1/gecode/support/symbol.icc +130 -0
  504. data/ext/{gecode-1.3.1 → gecode-2.1.1}/install-sh +0 -0
  505. data/ext/gecode-2.1.1/misc/AppleHelpbookInfo.plist +26 -0
  506. data/ext/gecode-2.1.1/misc/allexamples.perl +60 -0
  507. data/ext/gecode-2.1.1/misc/debian/Makefile.am +44 -0
  508. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/debian/changelog +0 -0
  509. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/debian/control +0 -0
  510. data/ext/gecode-2.1.1/misc/debian/copyright +30 -0
  511. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/debian/gecode.info +0 -0
  512. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/debian/gecode.install +0 -0
  513. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/debian/gecode.spec +0 -0
  514. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/debian/rules +0 -0
  515. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/doxygen/back.png +0 -0
  516. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/doxygen/footer.html +0 -0
  517. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/doxygen/gecode-logo-100.png +0 -0
  518. data/ext/{gecode-1.3.1 → gecode-2.1.1}/misc/doxygen/header.html +0 -0
  519. data/ext/gecode-2.1.1/misc/doxygen/stylesheet.css +464 -0
  520. data/ext/gecode-2.1.1/misc/fixproperties.sh +77 -0
  521. data/ext/gecode-2.1.1/misc/gecode-gist.pc.in +45 -0
  522. data/ext/gecode-2.1.1/misc/gecode-minimodel.pc.in +45 -0
  523. data/ext/gecode-2.1.1/misc/gecode-search.pc.in +45 -0
  524. data/ext/gecode-2.1.1/misc/gecode-serialization.pc.in +45 -0
  525. data/ext/gecode-2.1.1/misc/gecode.pc.in +45 -0
  526. data/ext/gecode-2.1.1/misc/genchangelog.perl +208 -0
  527. data/ext/gecode-2.1.1/misc/genlcovmakefile.perl +148 -0
  528. data/ext/gecode-2.1.1/misc/genlicense.perl +121 -0
  529. data/ext/gecode-2.1.1/misc/genregistry.perl +468 -0
  530. data/ext/gecode-2.1.1/misc/genstatistics.perl +178 -0
  531. data/ext/gecode-2.1.1/misc/gentxtchangelog.perl +192 -0
  532. data/ext/gecode-2.1.1/misc/genvariables.perl +905 -0
  533. data/ext/gecode-2.1.1/misc/getrevision.perl +47 -0
  534. data/ext/gecode-2.1.1/misc/makedepend.perl +85 -0
  535. data/ext/gecode-2.1.1/misc/svn-ignore.txt +15 -0
  536. data/ext/gecode-2.1.1/variables.vsl +50 -0
  537. data/ext/missing.cpp +1 -1
  538. data/ext/missing.h +1 -1
  539. data/ext/vararray.h +4 -4
  540. data/lib/gecoder/bindings.rb +21 -1
  541. data/lib/gecoder/bindings/bindings.rb +408 -731
  542. data/lib/gecoder/interface/binding_changes.rb +1 -1
  543. data/lib/gecoder/interface/branch.rb +25 -25
  544. data/lib/gecoder/interface/constraints.rb +47 -4
  545. data/lib/gecoder/interface/constraints/bool/boolean.rb +18 -16
  546. data/lib/gecoder/interface/constraints/bool_enum/boolean.rb +13 -11
  547. data/lib/gecoder/interface/constraints/int/arithmetic.rb +5 -4
  548. data/lib/gecoder/interface/constraints/int/domain.rb +8 -9
  549. data/lib/gecoder/interface/constraints/int/linear.rb +10 -8
  550. data/lib/gecoder/interface/constraints/int_enum/arithmetic.rb +4 -4
  551. data/lib/gecoder/interface/constraints/int_enum/channel.rb +2 -2
  552. data/lib/gecoder/interface/constraints/int_enum/count.rb +4 -5
  553. data/lib/gecoder/interface/constraints/int_enum/distinct.rb +7 -2
  554. data/lib/gecoder/interface/constraints/int_enum/element.rb +2 -2
  555. data/lib/gecoder/interface/constraints/int_enum/equality.rb +6 -3
  556. data/lib/gecoder/interface/constraints/int_enum/sort.rb +17 -5
  557. data/lib/gecoder/interface/constraints/set_enum/distinct.rb +0 -36
  558. data/lib/gecoder/interface/constraints/set_var_constraints.rb +5 -0
  559. data/lib/gecoder/interface/model.rb +3 -3
  560. data/lib/gecoder/interface/search.rb +5 -4
  561. data/lib/gecoder/version.rb +1 -1
  562. data/specs/branch.rb +27 -27
  563. data/specs/constraints/arithmetic.rb +48 -30
  564. data/specs/constraints/bool_enum.rb +39 -19
  565. data/specs/constraints/boolean.rb +10 -10
  566. data/specs/constraints/cardinality.rb +12 -9
  567. data/specs/constraints/channel.rb +6 -6
  568. data/specs/constraints/connection.rb +22 -26
  569. data/specs/constraints/constraint_helper.rb +125 -41
  570. data/specs/constraints/count.rb +22 -15
  571. data/specs/constraints/distinct.rb +10 -64
  572. data/specs/constraints/element.rb +14 -12
  573. data/specs/constraints/equality.rb +4 -4
  574. data/specs/constraints/int_domain.rb +8 -7
  575. data/specs/constraints/int_relation.rb +12 -8
  576. data/specs/constraints/linear.rb +4 -4
  577. data/specs/constraints/reification_sugar.rb +22 -4
  578. data/specs/constraints/selection.rb +2 -2
  579. data/specs/constraints/set_domain.rb +7 -3
  580. data/specs/constraints/set_operation.rb +2 -2
  581. data/specs/constraints/set_relation.rb +2 -6
  582. data/specs/constraints/sort.rb +20 -16
  583. data/specs/distribution.rb +14 -0
  584. data/specs/model.rb +4 -4
  585. data/tasks/dependencies.txt +21 -0
  586. data/tasks/distribution.rake +49 -14
  587. data/vendor/rust/include/rust_checks.hh +2 -1
  588. data/vendor/rust/include/rust_conversions.hh +2 -2
  589. data/vendor/rust/rust/attribute.rb +2 -2
  590. data/vendor/rust/rust/class.rb +2 -2
  591. data/vendor/rust/rust/cxxclass.rb +0 -2
  592. data/vendor/rust/rust/function.rb +2 -2
  593. data/vendor/rust/rust/templates/AttributeDefinition.rusttpl +1 -1
  594. data/vendor/rust/rust/templates/StandaloneClassDeclarations.rusttpl +1 -1
  595. data/vendor/rust/rust/templates/VariableFunctionCall.rusttpl +1 -1
  596. data/vendor/rust/rust/type.rb +1 -1
  597. metadata +599 -542
  598. data/ext/gecode-1.3.1/LICENSE +0 -34
  599. data/ext/gecode-1.3.1/Makefile.contribs +0 -71
  600. data/ext/gecode-1.3.1/Makefile.dep +0 -3928
  601. data/ext/gecode-1.3.1/Makefile.in +0 -966
  602. data/ext/gecode-1.3.1/changelog.in +0 -1065
  603. data/ext/gecode-1.3.1/configure +0 -8590
  604. data/ext/gecode-1.3.1/configure.ac +0 -179
  605. data/ext/gecode-1.3.1/configure.ac.in +0 -175
  606. data/ext/gecode-1.3.1/contribs/graph/INSTALL +0 -53
  607. data/ext/gecode-1.3.1/contribs/graph/LICENSE +0 -11
  608. data/ext/gecode-1.3.1/contribs/graph/Makefile +0 -167
  609. data/ext/gecode-1.3.1/contribs/graph/Makefile.in.in +0 -169
  610. data/ext/gecode-1.3.1/contribs/graph/TODO +0 -28
  611. data/ext/gecode-1.3.1/contribs/graph/binarysimple.hh +0 -82
  612. data/ext/gecode-1.3.1/contribs/graph/binarysimple.icc +0 -186
  613. data/ext/gecode-1.3.1/contribs/graph/branch/branch.icc +0 -257
  614. data/ext/gecode-1.3.1/contribs/graph/configure +0 -2160
  615. data/ext/gecode-1.3.1/contribs/graph/configure.ac +0 -33
  616. data/ext/gecode-1.3.1/contribs/graph/doxygen.conf +0 -1226
  617. data/ext/gecode-1.3.1/contribs/graph/doxygen.hh +0 -132
  618. data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-basic.cc +0 -94
  619. data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-complement.cc +0 -104
  620. data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-instUB.cc +0 -105
  621. data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-path.cc +0 -92
  622. data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-path2.cc +0 -273
  623. data/ext/gecode-1.3.1/contribs/graph/examples/cpgraph-pathcost.cc +0 -311
  624. data/ext/gecode-1.3.1/contribs/graph/examples/g1.txt +0 -1
  625. data/ext/gecode-1.3.1/contribs/graph/examples/g2.txt +0 -1
  626. data/ext/gecode-1.3.1/contribs/graph/graph.hh +0 -51
  627. data/ext/gecode-1.3.1/contribs/graph/graphutils.h +0 -46
  628. data/ext/gecode-1.3.1/contribs/graph/graphutils.icc +0 -140
  629. data/ext/gecode-1.3.1/contribs/graph/misc/doxygen/footer.html +0 -1
  630. data/ext/gecode-1.3.1/contribs/graph/path.hh +0 -116
  631. data/ext/gecode-1.3.1/contribs/graph/path.icc +0 -64
  632. data/ext/gecode-1.3.1/contribs/graph/path/path.icc +0 -139
  633. data/ext/gecode-1.3.1/contribs/graph/path/pathdegree.icc +0 -133
  634. data/ext/gecode-1.3.1/contribs/graph/path/pathgraphs.icc +0 -341
  635. data/ext/gecode-1.3.1/contribs/graph/shortdesc.ac +0 -1
  636. data/ext/gecode-1.3.1/contribs/graph/stlutility.icc +0 -105
  637. data/ext/gecode-1.3.1/contribs/graph/var.icc +0 -106
  638. data/ext/gecode-1.3.1/contribs/graph/view.icc +0 -373
  639. data/ext/gecode-1.3.1/contribs/graph/view/arcnode.cc +0 -162
  640. data/ext/gecode-1.3.1/contribs/graph/view/arcnode.hh +0 -78
  641. data/ext/gecode-1.3.1/contribs/graph/view/boundsgraphs.icc +0 -349
  642. data/ext/gecode-1.3.1/contribs/graph/view/constant.icc +0 -148
  643. data/ext/gecode-1.3.1/contribs/graph/view/iter.icc +0 -337
  644. data/ext/gecode-1.3.1/contribs/graph/view/nodearcsets.icc +0 -493
  645. data/ext/gecode-1.3.1/contribs/graph/view/nodeset.icc +0 -60
  646. data/ext/gecode-1.3.1/contribs/graph/view/outadjsets.icc +0 -600
  647. data/ext/gecode-1.3.1/contribs/graph/view/prop.icc +0 -135
  648. data/ext/gecode-1.3.1/contribs/map/COMPILING +0 -68
  649. data/ext/gecode-1.3.1/contribs/map/LICENSE +0 -11
  650. data/ext/gecode-1.3.1/contribs/map/Makefile.in.in +0 -173
  651. data/ext/gecode-1.3.1/contribs/map/configure +0 -2285
  652. data/ext/gecode-1.3.1/contribs/map/configure.ac +0 -32
  653. data/ext/gecode-1.3.1/contribs/map/constraints.hh +0 -46
  654. data/ext/gecode-1.3.1/contribs/map/constraints.icc +0 -84
  655. data/ext/gecode-1.3.1/contribs/map/doxygen.conf +0 -1229
  656. data/ext/gecode-1.3.1/contribs/map/doxygen.hh +0 -33
  657. data/ext/gecode-1.3.1/contribs/map/examples/approximateMatching.cc +0 -199
  658. data/ext/gecode-1.3.1/contribs/map/examples/g1.txt +0 -1
  659. data/ext/gecode-1.3.1/contribs/map/examples/g2.txt +0 -1
  660. data/ext/gecode-1.3.1/contribs/map/examples/graph-examples.tgz +0 -0
  661. data/ext/gecode-1.3.1/contribs/map/examples/isomorphism.cc +0 -148
  662. data/ext/gecode-1.3.1/contribs/map/examples/map +0 -0
  663. data/ext/gecode-1.3.1/contribs/map/examples/map.cc +0 -80
  664. data/ext/gecode-1.3.1/contribs/map/examples/subgraphmonomorphism.cc +0 -155
  665. data/ext/gecode-1.3.1/contribs/map/map.hh +0 -65
  666. data/ext/gecode-1.3.1/contribs/map/matching/mono.hh +0 -235
  667. data/ext/gecode-1.3.1/contribs/map/matching/mono.icc +0 -771
  668. data/ext/gecode-1.3.1/contribs/map/shortdesc.ac +0 -2
  669. data/ext/gecode-1.3.1/contribs/map/var.icc +0 -346
  670. data/ext/gecode-1.3.1/contribs/map/var/imp.cc +0 -42
  671. data/ext/gecode-1.3.1/contribs/map/var/imp.icc +0 -436
  672. data/ext/gecode-1.3.1/doxygen.conf.in +0 -1225
  673. data/ext/gecode-1.3.1/doxygen.hh.in +0 -877
  674. data/ext/gecode-1.3.1/examples/all-interval-sort.cc +0 -201
  675. data/ext/gecode-1.3.1/examples/all-interval.cc +0 -114
  676. data/ext/gecode-1.3.1/examples/alpha.cc +0 -112
  677. data/ext/gecode-1.3.1/examples/baseline.cc +0 -71
  678. data/ext/gecode-1.3.1/examples/bibd.cc +0 -173
  679. data/ext/gecode-1.3.1/examples/black-hole.cc +0 -281
  680. data/ext/gecode-1.3.1/examples/cars.cc +0 -165
  681. data/ext/gecode-1.3.1/examples/crew.cc +0 -220
  682. data/ext/gecode-1.3.1/examples/crowded-chess.cc +0 -312
  683. data/ext/gecode-1.3.1/examples/donald.cc +0 -93
  684. data/ext/gecode-1.3.1/examples/eq20.cc +0 -111
  685. data/ext/gecode-1.3.1/examples/golf.cc +0 -242
  686. data/ext/gecode-1.3.1/examples/golomb.cc +0 -141
  687. data/ext/gecode-1.3.1/examples/graph-color.cc +0 -371
  688. data/ext/gecode-1.3.1/examples/grocery.cc +0 -107
  689. data/ext/gecode-1.3.1/examples/hamming.cc +0 -107
  690. data/ext/gecode-1.3.1/examples/ind-set.cc +0 -130
  691. data/ext/gecode-1.3.1/examples/knights.cc +0 -146
  692. data/ext/gecode-1.3.1/examples/langfordnum.cc +0 -244
  693. data/ext/gecode-1.3.1/examples/magic-sequence-gcc.cc +0 -93
  694. data/ext/gecode-1.3.1/examples/magic-sequence.cc +0 -108
  695. data/ext/gecode-1.3.1/examples/magic-square.cc +0 -120
  696. data/ext/gecode-1.3.1/examples/money.cc +0 -92
  697. data/ext/gecode-1.3.1/examples/ortho-latin.cc +0 -156
  698. data/ext/gecode-1.3.1/examples/packing.cc +0 -211
  699. data/ext/gecode-1.3.1/examples/partition.cc +0 -126
  700. data/ext/gecode-1.3.1/examples/photo.cc +0 -155
  701. data/ext/gecode-1.3.1/examples/picture-puzzle.cc +0 -481
  702. data/ext/gecode-1.3.1/examples/queen-armies.cc +0 -240
  703. data/ext/gecode-1.3.1/examples/queens.cc +0 -99
  704. data/ext/gecode-1.3.1/examples/sports-league.cc +0 -454
  705. data/ext/gecode-1.3.1/examples/steiner.cc +0 -148
  706. data/ext/gecode-1.3.1/examples/stress-domain.cc +0 -86
  707. data/ext/gecode-1.3.1/examples/stress-element.cc +0 -95
  708. data/ext/gecode-1.3.1/examples/stress-exec.cc +0 -74
  709. data/ext/gecode-1.3.1/examples/stress-min.cc +0 -84
  710. data/ext/gecode-1.3.1/examples/stress-search.cc +0 -72
  711. data/ext/gecode-1.3.1/examples/sudoku-mixed.cc +0 -282
  712. data/ext/gecode-1.3.1/examples/sudoku-set.cc +0 -162
  713. data/ext/gecode-1.3.1/examples/sudoku.cc +0 -188
  714. data/ext/gecode-1.3.1/examples/sudoku.icc +0 -703
  715. data/ext/gecode-1.3.1/examples/support.cc +0 -160
  716. data/ext/gecode-1.3.1/examples/support.hh +0 -98
  717. data/ext/gecode-1.3.1/examples/support.icc +0 -187
  718. data/ext/gecode-1.3.1/examples/timer.cc +0 -47
  719. data/ext/gecode-1.3.1/examples/timer.hh +0 -72
  720. data/ext/gecode-1.3.1/examples/warehouses.cc +0 -176
  721. data/ext/gecode-1.3.1/extconf.rb +0 -8
  722. data/ext/gecode-1.3.1/gecode.m4 +0 -736
  723. data/ext/gecode-1.3.1/gecode/config.icc.in +0 -50
  724. data/ext/gecode-1.3.1/gecode/int.hh +0 -1426
  725. data/ext/gecode-1.3.1/gecode/int/arithmetic.cc +0 -87
  726. data/ext/gecode-1.3.1/gecode/int/arithmetic.hh +0 -292
  727. data/ext/gecode-1.3.1/gecode/int/arithmetic/abs.icc +0 -213
  728. data/ext/gecode-1.3.1/gecode/int/arithmetic/max.icc +0 -196
  729. data/ext/gecode-1.3.1/gecode/int/arithmetic/mult.icc +0 -478
  730. data/ext/gecode-1.3.1/gecode/int/array.cc +0 -61
  731. data/ext/gecode-1.3.1/gecode/int/array.icc +0 -264
  732. data/ext/gecode-1.3.1/gecode/int/bool.cc +0 -187
  733. data/ext/gecode-1.3.1/gecode/int/bool.hh +0 -255
  734. data/ext/gecode-1.3.1/gecode/int/bool/base.icc +0 -123
  735. data/ext/gecode-1.3.1/gecode/int/bool/eq.icc +0 -89
  736. data/ext/gecode-1.3.1/gecode/int/bool/eqv.icc +0 -132
  737. data/ext/gecode-1.3.1/gecode/int/bool/or.icc +0 -380
  738. data/ext/gecode-1.3.1/gecode/int/branch.cc +0 -81
  739. data/ext/gecode-1.3.1/gecode/int/branch.hh +0 -444
  740. data/ext/gecode-1.3.1/gecode/int/branch/assign.cc +0 -83
  741. data/ext/gecode-1.3.1/gecode/int/branch/assign.icc +0 -76
  742. data/ext/gecode-1.3.1/gecode/int/branch/select-val.icc +0 -104
  743. data/ext/gecode-1.3.1/gecode/int/branch/select-view.icc +0 -219
  744. data/ext/gecode-1.3.1/gecode/int/channel.cc +0 -62
  745. data/ext/gecode-1.3.1/gecode/int/channel.hh +0 -144
  746. data/ext/gecode-1.3.1/gecode/int/channel/base.icc +0 -60
  747. data/ext/gecode-1.3.1/gecode/int/channel/dom.icc +0 -313
  748. data/ext/gecode-1.3.1/gecode/int/channel/stack.icc +0 -59
  749. data/ext/gecode-1.3.1/gecode/int/channel/val.icc +0 -239
  750. data/ext/gecode-1.3.1/gecode/int/count.cc +0 -174
  751. data/ext/gecode-1.3.1/gecode/int/count.hh +0 -401
  752. data/ext/gecode-1.3.1/gecode/int/count/int.icc +0 -495
  753. data/ext/gecode-1.3.1/gecode/int/count/rel.icc +0 -100
  754. data/ext/gecode-1.3.1/gecode/int/count/view.icc +0 -332
  755. data/ext/gecode-1.3.1/gecode/int/cumulatives.cc +0 -210
  756. data/ext/gecode-1.3.1/gecode/int/cumulatives.hh +0 -118
  757. data/ext/gecode-1.3.1/gecode/int/cumulatives/val.icc +0 -377
  758. data/ext/gecode-1.3.1/gecode/int/distinct.cc +0 -77
  759. data/ext/gecode-1.3.1/gecode/int/distinct.hh +0 -272
  760. data/ext/gecode-1.3.1/gecode/int/distinct/bilink.icc +0 -73
  761. data/ext/gecode-1.3.1/gecode/int/distinct/bnd.icc +0 -335
  762. data/ext/gecode-1.3.1/gecode/int/distinct/combptr.icc +0 -62
  763. data/ext/gecode-1.3.1/gecode/int/distinct/dom.icc +0 -740
  764. data/ext/gecode-1.3.1/gecode/int/distinct/edge.icc +0 -96
  765. data/ext/gecode-1.3.1/gecode/int/distinct/node.icc +0 -107
  766. data/ext/gecode-1.3.1/gecode/int/distinct/ter-dom.icc +0 -97
  767. data/ext/gecode-1.3.1/gecode/int/distinct/val.icc +0 -171
  768. data/ext/gecode-1.3.1/gecode/int/dom.cc +0 -81
  769. data/ext/gecode-1.3.1/gecode/int/dom.hh +0 -101
  770. data/ext/gecode-1.3.1/gecode/int/dom/range.icc +0 -85
  771. data/ext/gecode-1.3.1/gecode/int/dom/spec.icc +0 -85
  772. data/ext/gecode-1.3.1/gecode/int/element.cc +0 -58
  773. data/ext/gecode-1.3.1/gecode/int/element.hh +0 -203
  774. data/ext/gecode-1.3.1/gecode/int/element/int.icc +0 -396
  775. data/ext/gecode-1.3.1/gecode/int/element/view.icc +0 -443
  776. data/ext/gecode-1.3.1/gecode/int/exception.icc +0 -137
  777. data/ext/gecode-1.3.1/gecode/int/gcc.cc +0 -708
  778. data/ext/gecode-1.3.1/gecode/int/gcc.hh +0 -338
  779. data/ext/gecode-1.3.1/gecode/int/gcc/bnd.icc +0 -629
  780. data/ext/gecode-1.3.1/gecode/int/gcc/dom.icc +0 -504
  781. data/ext/gecode-1.3.1/gecode/int/gcc/gccbndsup.icc +0 -760
  782. data/ext/gecode-1.3.1/gecode/int/gcc/graphsup.icc +0 -2375
  783. data/ext/gecode-1.3.1/gecode/int/gcc/lbc.icc +0 -375
  784. data/ext/gecode-1.3.1/gecode/int/gcc/occur.icc +0 -687
  785. data/ext/gecode-1.3.1/gecode/int/gcc/ubc.icc +0 -236
  786. data/ext/gecode-1.3.1/gecode/int/gcc/val.icc +0 -373
  787. data/ext/gecode-1.3.1/gecode/int/int-set.cc +0 -115
  788. data/ext/gecode-1.3.1/gecode/int/int-set.icc +0 -151
  789. data/ext/gecode-1.3.1/gecode/int/linear.cc +0 -247
  790. data/ext/gecode-1.3.1/gecode/int/linear.hh +0 -1056
  791. data/ext/gecode-1.3.1/gecode/int/linear/binary.icc +0 -439
  792. data/ext/gecode-1.3.1/gecode/int/linear/bool-int.icc +0 -422
  793. data/ext/gecode-1.3.1/gecode/int/linear/bool-view.icc +0 -311
  794. data/ext/gecode-1.3.1/gecode/int/linear/dom.icc +0 -503
  795. data/ext/gecode-1.3.1/gecode/int/linear/nary.icc +0 -857
  796. data/ext/gecode-1.3.1/gecode/int/linear/noview.icc +0 -264
  797. data/ext/gecode-1.3.1/gecode/int/linear/post.cc +0 -542
  798. data/ext/gecode-1.3.1/gecode/int/linear/ternary.icc +0 -255
  799. data/ext/gecode-1.3.1/gecode/int/propagator.icc +0 -194
  800. data/ext/gecode-1.3.1/gecode/int/regular.cc +0 -40
  801. data/ext/gecode-1.3.1/gecode/int/regular.hh +0 -83
  802. data/ext/gecode-1.3.1/gecode/int/regular/dfa.cc +0 -466
  803. data/ext/gecode-1.3.1/gecode/int/regular/dfa.icc +0 -172
  804. data/ext/gecode-1.3.1/gecode/int/regular/dom.icc +0 -480
  805. data/ext/gecode-1.3.1/gecode/int/regular/reg.cc +0 -738
  806. data/ext/gecode-1.3.1/gecode/int/rel.cc +0 -293
  807. data/ext/gecode-1.3.1/gecode/int/rel.hh +0 -526
  808. data/ext/gecode-1.3.1/gecode/int/rel/eq.icc +0 -640
  809. data/ext/gecode-1.3.1/gecode/int/rel/lex.icc +0 -212
  810. data/ext/gecode-1.3.1/gecode/int/rel/lq-le.icc +0 -246
  811. data/ext/gecode-1.3.1/gecode/int/rel/nq.icc +0 -188
  812. data/ext/gecode-1.3.1/gecode/int/sortedness.cc +0 -124
  813. data/ext/gecode-1.3.1/gecode/int/sortedness.hh +0 -108
  814. data/ext/gecode-1.3.1/gecode/int/sortedness/matching.icc +0 -177
  815. data/ext/gecode-1.3.1/gecode/int/sortedness/narrowing.icc +0 -243
  816. data/ext/gecode-1.3.1/gecode/int/sortedness/order.icc +0 -232
  817. data/ext/gecode-1.3.1/gecode/int/sortedness/sortedness.icc +0 -727
  818. data/ext/gecode-1.3.1/gecode/int/sortedness/sortsup.icc +0 -666
  819. data/ext/gecode-1.3.1/gecode/int/var-imp.vis +0 -198
  820. data/ext/gecode-1.3.1/gecode/int/var.icc +0 -590
  821. data/ext/gecode-1.3.1/gecode/int/var/bool.icc +0 -52
  822. data/ext/gecode-1.3.1/gecode/int/var/imp-body.icc +0 -65
  823. data/ext/gecode-1.3.1/gecode/int/var/imp-hdr.icc +0 -191
  824. data/ext/gecode-1.3.1/gecode/int/var/imp.cc +0 -361
  825. data/ext/gecode-1.3.1/gecode/int/var/imp.icc +0 -579
  826. data/ext/gecode-1.3.1/gecode/int/var/int.cc +0 -63
  827. data/ext/gecode-1.3.1/gecode/int/var/int.icc +0 -135
  828. data/ext/gecode-1.3.1/gecode/int/view.icc +0 -1219
  829. data/ext/gecode-1.3.1/gecode/int/view/bool.icc +0 -270
  830. data/ext/gecode-1.3.1/gecode/int/view/constint.icc +0 -306
  831. data/ext/gecode-1.3.1/gecode/int/view/int.icc +0 -221
  832. data/ext/gecode-1.3.1/gecode/int/view/iter.icc +0 -49
  833. data/ext/gecode-1.3.1/gecode/int/view/minus.icc +0 -285
  834. data/ext/gecode-1.3.1/gecode/int/view/offset.icc +0 -274
  835. data/ext/gecode-1.3.1/gecode/int/view/print.cc +0 -109
  836. data/ext/gecode-1.3.1/gecode/int/view/rtest.icc +0 -215
  837. data/ext/gecode-1.3.1/gecode/int/view/scale.icc +0 -373
  838. data/ext/gecode-1.3.1/gecode/iter.hh +0 -65
  839. data/ext/gecode-1.3.1/gecode/iter/ranges-add.icc +0 -130
  840. data/ext/gecode-1.3.1/gecode/iter/ranges-append.icc +0 -208
  841. data/ext/gecode-1.3.1/gecode/iter/ranges-array.icc +0 -123
  842. data/ext/gecode-1.3.1/gecode/iter/ranges-cache.icc +0 -143
  843. data/ext/gecode-1.3.1/gecode/iter/ranges-compl.icc +0 -206
  844. data/ext/gecode-1.3.1/gecode/iter/ranges-diff.icc +0 -127
  845. data/ext/gecode-1.3.1/gecode/iter/ranges-empty.icc +0 -96
  846. data/ext/gecode-1.3.1/gecode/iter/ranges-inter.icc +0 -202
  847. data/ext/gecode-1.3.1/gecode/iter/ranges-minmax.icc +0 -103
  848. data/ext/gecode-1.3.1/gecode/iter/ranges-minus.icc +0 -138
  849. data/ext/gecode-1.3.1/gecode/iter/ranges-offset.icc +0 -112
  850. data/ext/gecode-1.3.1/gecode/iter/ranges-operations.icc +0 -142
  851. data/ext/gecode-1.3.1/gecode/iter/ranges-scale.icc +0 -224
  852. data/ext/gecode-1.3.1/gecode/iter/ranges-singleton.icc +0 -71
  853. data/ext/gecode-1.3.1/gecode/iter/ranges-size.icc +0 -131
  854. data/ext/gecode-1.3.1/gecode/iter/ranges-union.icc +0 -211
  855. data/ext/gecode-1.3.1/gecode/iter/ranges-values.icc +0 -125
  856. data/ext/gecode-1.3.1/gecode/iter/values-ranges.icc +0 -91
  857. data/ext/gecode-1.3.1/gecode/iter/virtual-ranges-compl.icc +0 -247
  858. data/ext/gecode-1.3.1/gecode/iter/virtual-ranges-inter.icc +0 -227
  859. data/ext/gecode-1.3.1/gecode/iter/virtual-ranges-union.icc +0 -236
  860. data/ext/gecode-1.3.1/gecode/iter/virtual-ranges.icc +0 -126
  861. data/ext/gecode-1.3.1/gecode/kernel.hh +0 -141
  862. data/ext/gecode-1.3.1/gecode/kernel/array.icc +0 -954
  863. data/ext/gecode-1.3.1/gecode/kernel/branching.icc +0 -233
  864. data/ext/gecode-1.3.1/gecode/kernel/core.cc +0 -417
  865. data/ext/gecode-1.3.1/gecode/kernel/core.icc +0 -1681
  866. data/ext/gecode-1.3.1/gecode/kernel/exception.cc +0 -49
  867. data/ext/gecode-1.3.1/gecode/kernel/exception.icc +0 -104
  868. data/ext/gecode-1.3.1/gecode/kernel/macros.icc +0 -98
  869. data/ext/gecode-1.3.1/gecode/kernel/memory-manager.cc +0 -41
  870. data/ext/gecode-1.3.1/gecode/kernel/memory-manager.icc +0 -438
  871. data/ext/gecode-1.3.1/gecode/kernel/memory.icc +0 -205
  872. data/ext/gecode-1.3.1/gecode/kernel/modevent.icc +0 -53
  873. data/ext/gecode-1.3.1/gecode/kernel/propagator.icc +0 -680
  874. data/ext/gecode-1.3.1/gecode/kernel/view.icc +0 -583
  875. data/ext/gecode-1.3.1/gecode/limits.hh +0 -87
  876. data/ext/gecode-1.3.1/gecode/minimodel.hh +0 -942
  877. data/ext/gecode-1.3.1/gecode/minimodel/arithmetic.cc +0 -137
  878. data/ext/gecode-1.3.1/gecode/minimodel/bool-expr.cc +0 -207
  879. data/ext/gecode-1.3.1/gecode/minimodel/bool-expr.icc +0 -191
  880. data/ext/gecode-1.3.1/gecode/minimodel/bool-rel.icc +0 -66
  881. data/ext/gecode-1.3.1/gecode/minimodel/exception.icc +0 -59
  882. data/ext/gecode-1.3.1/gecode/minimodel/lin-expr.cc +0 -103
  883. data/ext/gecode-1.3.1/gecode/minimodel/lin-expr.icc +0 -192
  884. data/ext/gecode-1.3.1/gecode/minimodel/lin-rel.icc +0 -200
  885. data/ext/gecode-1.3.1/gecode/minimodel/matrix.icc +0 -118
  886. data/ext/gecode-1.3.1/gecode/minimodel/scheduling.cc +0 -241
  887. data/ext/gecode-1.3.1/gecode/search.hh +0 -745
  888. data/ext/gecode-1.3.1/gecode/search/bab.cc +0 -153
  889. data/ext/gecode-1.3.1/gecode/search/bab.icc +0 -101
  890. data/ext/gecode-1.3.1/gecode/search/dfs.cc +0 -63
  891. data/ext/gecode-1.3.1/gecode/search/dfs.icc +0 -144
  892. data/ext/gecode-1.3.1/gecode/search/engine-ctrl.icc +0 -109
  893. data/ext/gecode-1.3.1/gecode/search/lds.cc +0 -237
  894. data/ext/gecode-1.3.1/gecode/search/lds.icc +0 -57
  895. data/ext/gecode-1.3.1/gecode/search/reco-stack.icc +0 -219
  896. data/ext/gecode-1.3.1/gecode/search/restart.icc +0 -76
  897. data/ext/gecode-1.3.1/gecode/search/statistics.icc +0 -30
  898. data/ext/gecode-1.3.1/gecode/search/stop.cc +0 -58
  899. data/ext/gecode-1.3.1/gecode/search/stop.icc +0 -100
  900. data/ext/gecode-1.3.1/gecode/set.hh +0 -419
  901. data/ext/gecode-1.3.1/gecode/set/array.cc +0 -114
  902. data/ext/gecode-1.3.1/gecode/set/array.icc +0 -134
  903. data/ext/gecode-1.3.1/gecode/set/branch.cc +0 -57
  904. data/ext/gecode-1.3.1/gecode/set/branch.hh +0 -176
  905. data/ext/gecode-1.3.1/gecode/set/branch/select-val.icc +0 -72
  906. data/ext/gecode-1.3.1/gecode/set/branch/select-view.icc +0 -112
  907. data/ext/gecode-1.3.1/gecode/set/cardinality.cc +0 -49
  908. data/ext/gecode-1.3.1/gecode/set/convex.cc +0 -43
  909. data/ext/gecode-1.3.1/gecode/set/convex.hh +0 -92
  910. data/ext/gecode-1.3.1/gecode/set/convex/conv.cc +0 -81
  911. data/ext/gecode-1.3.1/gecode/set/convex/conv.icc +0 -51
  912. data/ext/gecode-1.3.1/gecode/set/convex/hull.cc +0 -100
  913. data/ext/gecode-1.3.1/gecode/set/convex/hull.icc +0 -52
  914. data/ext/gecode-1.3.1/gecode/set/distinct.cc +0 -48
  915. data/ext/gecode-1.3.1/gecode/set/distinct.hh +0 -97
  916. data/ext/gecode-1.3.1/gecode/set/distinct/atmostOne.cc +0 -151
  917. data/ext/gecode-1.3.1/gecode/set/distinct/atmostOne.icc +0 -50
  918. data/ext/gecode-1.3.1/gecode/set/distinct/binomial.cc +0 -46
  919. data/ext/gecode-1.3.1/gecode/set/distinct/binomial.icc +0 -157
  920. data/ext/gecode-1.3.1/gecode/set/distinct/distinct.cc +0 -124
  921. data/ext/gecode-1.3.1/gecode/set/distinct/distinct.icc +0 -58
  922. data/ext/gecode-1.3.1/gecode/set/dom.cc +0 -224
  923. data/ext/gecode-1.3.1/gecode/set/exception.icc +0 -132
  924. data/ext/gecode-1.3.1/gecode/set/int.cc +0 -139
  925. data/ext/gecode-1.3.1/gecode/set/int.hh +0 -226
  926. data/ext/gecode-1.3.1/gecode/set/int/card.cc +0 -61
  927. data/ext/gecode-1.3.1/gecode/set/int/card.icc +0 -54
  928. data/ext/gecode-1.3.1/gecode/set/int/channel.cc +0 -100
  929. data/ext/gecode-1.3.1/gecode/set/int/channel.icc +0 -75
  930. data/ext/gecode-1.3.1/gecode/set/int/match.cc +0 -148
  931. data/ext/gecode-1.3.1/gecode/set/int/match.icc +0 -67
  932. data/ext/gecode-1.3.1/gecode/set/int/minmax.cc +0 -109
  933. data/ext/gecode-1.3.1/gecode/set/int/minmax.icc +0 -63
  934. data/ext/gecode-1.3.1/gecode/set/int/weights.cc +0 -182
  935. data/ext/gecode-1.3.1/gecode/set/int/weights.icc +0 -174
  936. data/ext/gecode-1.3.1/gecode/set/projectors-compiler.hh +0 -148
  937. data/ext/gecode-1.3.1/gecode/set/projectors.cc +0 -109
  938. data/ext/gecode-1.3.1/gecode/set/projectors.hh +0 -319
  939. data/ext/gecode-1.3.1/gecode/set/projectors/compiler.cc +0 -841
  940. data/ext/gecode-1.3.1/gecode/set/projectors/projector-set.cc +0 -69
  941. data/ext/gecode-1.3.1/gecode/set/projectors/projector-set.icc +0 -66
  942. data/ext/gecode-1.3.1/gecode/set/projectors/projector.cc +0 -125
  943. data/ext/gecode-1.3.1/gecode/set/projectors/projector.icc +0 -79
  944. data/ext/gecode-1.3.1/gecode/set/projectors/propagator.hh +0 -127
  945. data/ext/gecode-1.3.1/gecode/set/projectors/propagator/card.icc +0 -96
  946. data/ext/gecode-1.3.1/gecode/set/projectors/propagator/nary.icc +0 -106
  947. data/ext/gecode-1.3.1/gecode/set/projectors/propagator/re-nary.cc +0 -76
  948. data/ext/gecode-1.3.1/gecode/set/projectors/propagator/re-nary.icc +0 -53
  949. data/ext/gecode-1.3.1/gecode/set/projectors/set-expr.cc +0 -306
  950. data/ext/gecode-1.3.1/gecode/set/projectors/set-expr.icc +0 -192
  951. data/ext/gecode-1.3.1/gecode/set/propagator.icc +0 -96
  952. data/ext/gecode-1.3.1/gecode/set/rel-op-const.cc +0 -233
  953. data/ext/gecode-1.3.1/gecode/set/rel-op.cc +0 -96
  954. data/ext/gecode-1.3.1/gecode/set/rel-op.hh +0 -267
  955. data/ext/gecode-1.3.1/gecode/set/rel-op/common.icc +0 -528
  956. data/ext/gecode-1.3.1/gecode/set/rel-op/inter.icc +0 -312
  957. data/ext/gecode-1.3.1/gecode/set/rel-op/partition.icc +0 -131
  958. data/ext/gecode-1.3.1/gecode/set/rel-op/post.icc +0 -198
  959. data/ext/gecode-1.3.1/gecode/set/rel-op/subofunion.icc +0 -150
  960. data/ext/gecode-1.3.1/gecode/set/rel-op/superofinter.icc +0 -151
  961. data/ext/gecode-1.3.1/gecode/set/rel-op/union.icc +0 -292
  962. data/ext/gecode-1.3.1/gecode/set/rel.cc +0 -201
  963. data/ext/gecode-1.3.1/gecode/set/rel.hh +0 -250
  964. data/ext/gecode-1.3.1/gecode/set/rel/common.icc +0 -109
  965. data/ext/gecode-1.3.1/gecode/set/rel/eq.icc +0 -101
  966. data/ext/gecode-1.3.1/gecode/set/rel/nosubset.icc +0 -88
  967. data/ext/gecode-1.3.1/gecode/set/rel/nq.icc +0 -132
  968. data/ext/gecode-1.3.1/gecode/set/rel/re-eq.icc +0 -142
  969. data/ext/gecode-1.3.1/gecode/set/rel/re-subset.icc +0 -121
  970. data/ext/gecode-1.3.1/gecode/set/rel/subset.icc +0 -80
  971. data/ext/gecode-1.3.1/gecode/set/select.cc +0 -88
  972. data/ext/gecode-1.3.1/gecode/set/select.hh +0 -113
  973. data/ext/gecode-1.3.1/gecode/set/select/disjoint.cc +0 -267
  974. data/ext/gecode-1.3.1/gecode/set/select/disjoint.icc +0 -59
  975. data/ext/gecode-1.3.1/gecode/set/select/idxarray.hh +0 -91
  976. data/ext/gecode-1.3.1/gecode/set/select/idxarray.icc +0 -112
  977. data/ext/gecode-1.3.1/gecode/set/select/inter.icc +0 -300
  978. data/ext/gecode-1.3.1/gecode/set/sequence.cc +0 -48
  979. data/ext/gecode-1.3.1/gecode/set/sequence.hh +0 -97
  980. data/ext/gecode-1.3.1/gecode/set/sequence/common.icc +0 -79
  981. data/ext/gecode-1.3.1/gecode/set/sequence/seq-u.cc +0 -83
  982. data/ext/gecode-1.3.1/gecode/set/sequence/seq-u.icc +0 -63
  983. data/ext/gecode-1.3.1/gecode/set/sequence/seq.cc +0 -61
  984. data/ext/gecode-1.3.1/gecode/set/sequence/seq.icc +0 -53
  985. data/ext/gecode-1.3.1/gecode/set/var-imp.vis +0 -205
  986. data/ext/gecode-1.3.1/gecode/set/var.icc +0 -1090
  987. data/ext/gecode-1.3.1/gecode/set/var/imp-body.icc +0 -192
  988. data/ext/gecode-1.3.1/gecode/set/var/imp-hdr.icc +0 -235
  989. data/ext/gecode-1.3.1/gecode/set/var/imp.cc +0 -127
  990. data/ext/gecode-1.3.1/gecode/set/var/imp.icc +0 -356
  991. data/ext/gecode-1.3.1/gecode/set/var/integerset.cc +0 -256
  992. data/ext/gecode-1.3.1/gecode/set/var/integerset.icc +0 -512
  993. data/ext/gecode-1.3.1/gecode/set/var/iter.icc +0 -47
  994. data/ext/gecode-1.3.1/gecode/set/var/set.cc +0 -99
  995. data/ext/gecode-1.3.1/gecode/set/var/set.icc +0 -282
  996. data/ext/gecode-1.3.1/gecode/set/view.icc +0 -1075
  997. data/ext/gecode-1.3.1/gecode/set/view/complement.icc +0 -525
  998. data/ext/gecode-1.3.1/gecode/set/view/const.icc +0 -651
  999. data/ext/gecode-1.3.1/gecode/set/view/print.cc +0 -120
  1000. data/ext/gecode-1.3.1/gecode/set/view/set.icc +0 -217
  1001. data/ext/gecode-1.3.1/gecode/set/view/singleton.icc +0 -348
  1002. data/ext/gecode-1.3.1/gecode/support/block-allocator.hh +0 -152
  1003. data/ext/gecode-1.3.1/gecode/support/dynamic-array.hh +0 -131
  1004. data/ext/gecode-1.3.1/gecode/support/dynamic-stack.hh +0 -157
  1005. data/ext/gecode-1.3.1/gecode/support/random.hh +0 -100
  1006. data/ext/gecode-1.3.1/gecode/support/shared-array.hh +0 -255
  1007. data/ext/gecode-1.3.1/gecode/support/sort.hh +0 -193
  1008. data/ext/gecode-1.3.1/gecode/support/static-pqueue.hh +0 -240
  1009. data/ext/gecode-1.3.1/gecode/support/static-stack.hh +0 -117
  1010. data/ext/gecode-1.3.1/misc/debian/Makefile.am +0 -8
  1011. data/ext/gecode-1.3.1/misc/debian/copyright +0 -44
  1012. data/ext/gecode-1.3.1/misc/doxygen/stylesheet.css +0 -460
  1013. data/ext/gecode-1.3.1/misc/fixproperties.sh +0 -32
  1014. data/ext/gecode-1.3.1/misc/gecode-minimodel.pc.in +0 -12
  1015. data/ext/gecode-1.3.1/misc/gecode-search.pc.in +0 -12
  1016. data/ext/gecode-1.3.1/misc/gecode.pc.in +0 -12
  1017. data/ext/gecode-1.3.1/misc/genchangelog.perl +0 -190
  1018. data/ext/gecode-1.3.1/misc/genlicense.perl +0 -113
  1019. data/ext/gecode-1.3.1/misc/genstatistics.perl +0 -155
  1020. data/ext/gecode-1.3.1/misc/gentxtchangelog.perl +0 -170
  1021. data/ext/gecode-1.3.1/misc/genvarimp.perl +0 -666
  1022. data/ext/gecode-1.3.1/misc/getrevision.perl +0 -32
  1023. data/ext/gecode-1.3.1/misc/makedepend.perl +0 -66
  1024. data/ext/gecode-1.3.1/test/int.cc +0 -497
  1025. data/ext/gecode-1.3.1/test/int.hh +0 -119
  1026. data/ext/gecode-1.3.1/test/int/arithmetic.cc +0 -262
  1027. data/ext/gecode-1.3.1/test/int/basic.cc +0 -42
  1028. data/ext/gecode-1.3.1/test/int/bool.cc +0 -189
  1029. data/ext/gecode-1.3.1/test/int/channel.cc +0 -79
  1030. data/ext/gecode-1.3.1/test/int/count.cc +0 -264
  1031. data/ext/gecode-1.3.1/test/int/distinct.cc +0 -121
  1032. data/ext/gecode-1.3.1/test/int/dom.cc +0 -69
  1033. data/ext/gecode-1.3.1/test/int/element.cc +0 -132
  1034. data/ext/gecode-1.3.1/test/int/gcc.cc +0 -592
  1035. data/ext/gecode-1.3.1/test/int/linear.cc +0 -315
  1036. data/ext/gecode-1.3.1/test/int/minimodel.cc +0 -451
  1037. data/ext/gecode-1.3.1/test/int/regular.cc +0 -105
  1038. data/ext/gecode-1.3.1/test/int/rel.cc +0 -283
  1039. data/ext/gecode-1.3.1/test/int/scheduling.cc +0 -259
  1040. data/ext/gecode-1.3.1/test/int/sortedness.cc +0 -272
  1041. data/ext/gecode-1.3.1/test/intset.cc +0 -40
  1042. data/ext/gecode-1.3.1/test/log.cc +0 -515
  1043. data/ext/gecode-1.3.1/test/log.hh +0 -68
  1044. data/ext/gecode-1.3.1/test/set.cc +0 -542
  1045. data/ext/gecode-1.3.1/test/set.hh +0 -152
  1046. data/ext/gecode-1.3.1/test/set/convex.cc +0 -94
  1047. data/ext/gecode-1.3.1/test/set/distinct.cc +0 -148
  1048. data/ext/gecode-1.3.1/test/set/dom.cc +0 -67
  1049. data/ext/gecode-1.3.1/test/set/int.cc +0 -249
  1050. data/ext/gecode-1.3.1/test/set/projection.cc +0 -333
  1051. data/ext/gecode-1.3.1/test/set/rel-op.cc +0 -662
  1052. data/ext/gecode-1.3.1/test/set/rel.cc +0 -198
  1053. data/ext/gecode-1.3.1/test/set/select.cc +0 -108
  1054. data/ext/gecode-1.3.1/test/set/sequence.cc +0 -83
  1055. data/ext/gecode-1.3.1/test/stress.cc +0 -93
  1056. data/ext/gecode-1.3.1/test/stress.hh +0 -74
  1057. data/ext/gecode-1.3.1/test/stress/distinct.cc +0 -70
  1058. data/ext/gecode-1.3.1/test/stress/domain.cc +0 -69
  1059. data/ext/gecode-1.3.1/test/stress/exec.cc +0 -60
  1060. data/ext/gecode-1.3.1/test/stress/minsort.cc +0 -63
  1061. data/ext/gecode-1.3.1/test/stress/regular.cc +0 -112
  1062. data/ext/gecode-1.3.1/test/test.cc +0 -215
  1063. data/ext/gecode-1.3.1/test/test.hh +0 -107
@@ -0,0 +1,184 @@
1
+ /*****************************************************************[implicative.hh]
2
+ Copyright (c) 2007, Universite d'Orleans - Jeremie Vautard, Marco Benedetti,
3
+ Arnaud Lallouet.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+ *****************************************************************************/
23
+ #ifndef __QECODE_IMPLICATIVE__
24
+ #define __QECODE_IMPLICATIVE__
25
+ #include "qecode.hh"
26
+ #include <iostream>
27
+ #include <cstdlib>
28
+ #include "gecode/minimodel.hh"
29
+ #include "warner.hh"
30
+ #include "qecore.hh"
31
+ #include "myspace.hh"
32
+
33
+ using namespace Gecode;
34
+ using namespace std;
35
+ using namespace Gecode::Int;
36
+
37
+
38
+ class QECODE_VTABLE_EXPORT Implicative : public QSpace {
39
+ friend class valueHeuristic;
40
+
41
+ protected :
42
+ bool* q; ///< Quantification of the variables (true for universal, false for existential)
43
+ int nbSpaces; ///< Number of rule spaces
44
+ int currentDeclareSpace;///< The rule space in which we are currently declaring constraints (for declaration part only)
45
+ int* nbVarBySpace; ///< Number of variables by rule space.
46
+ int* whichSpaceOwns; ///< Indicates in which space a given variable first appears.
47
+ MySpace** rules; ///< The rule spaces
48
+ MySpace* goal; ///< The goal space
49
+ bool* varInitialised; ///< Indicates wether a variable has been initialised or not (for declaration part only)
50
+ bool* ruleDefined; ///< Indicates wether a rule space is defind or not. If not, it has a failed or solved value.
51
+ int* ruleStatus; ///< Indicates wether a rule space is failed (0), solved (1), or not yet decided (-1).
52
+ bool goalDefined; ///< Indicates wether the goal space is defined or not.
53
+ int goalStatus; ///< Indicates wether the goal is failed, solved, or not yet decided.
54
+ Warner* w;
55
+ int prop_power; ///< Propagation power applied.
56
+ /// Cascade propagation
57
+ int cascade(int firstSpace, unsigned long int& propsteps);
58
+
59
+ public :
60
+
61
+ /** \brief Default constructor for a restricted-quantified space.
62
+ * This is the first step for building a restricted-quantified space. The prefix is defined here.
63
+ * @param ns The number of scope i.e. the number of quantifier alternations in the prefix.
64
+ * @param firstQ Must be set to true if the first quantifier is universal, false otherwise.
65
+ * @param nv Array of integer which contains the number of variables by scope.
66
+ */
67
+ QECODE_EXPORT Implicative(int ns,bool firstQ,int* nv);
68
+
69
+ /** Copy constructor for a restricted-quantified space.
70
+ * @param im The space we want to copy.
71
+ */
72
+ QECODE_EXPORT Implicative(Implicative& im);
73
+
74
+ /** Destructor for a restricted-quantified space.
75
+ * This doesn't destruct the shared datastructures between a quantified space and its copy.
76
+ */
77
+ QECODE_EXPORT virtual ~Implicative();
78
+
79
+ /** \brief Number of "rules" the quantified space contains.
80
+ * Returns the number of rules the quantified space contains. This is equal to the number of quantifier alternations in the prefix.
81
+ */
82
+ QECODE_EXPORT int spaces();
83
+
84
+ /** \brief Defines an integer variable in a quantified space.
85
+ * Defines an integer variable in the quantified space with an interval domain.
86
+ * @param var number of the variable to be defined.
87
+ * @param min The min element of the domain
88
+ * @param max the max element of the domain
89
+ */
90
+ QECODE_EXPORT void QIntVar(int var,int min,int max);
91
+
92
+ /** \brief Defines an integer variable in the quantified space.
93
+ * Defines an integer variable in the quantifies space using a fully declared domain.
94
+ * @param var Number of the variable to be defined.
95
+ * @param dom The initial domain of the variable.
96
+ */
97
+ QECODE_EXPORT void QIntVar(int var,IntSet dom);
98
+
99
+ /** \brief Defines a boolean variable in the quantified space.
100
+ * Defines a boolean variable in the quantified space, uning a min and a max domain value (with false < true).
101
+ * @param var Number of the variable to be defined.
102
+ * @param min The min element of the domain (0 or 1, respectively for false or true)
103
+ * @param min The max element of the domain (0 or 1, respectively for false or true)
104
+ */
105
+ QECODE_EXPORT void QBoolVar(int var,int min, int max);
106
+
107
+ /** \brief Defines a boolean variable in the quantified space.
108
+ * Defines a boolean variable with a full initial domain in the quantified space.
109
+ * @param var Number of the variable to be defined.
110
+ */
111
+ QECODE_EXPORT void QBoolVar(int var) {QBoolVar(var,0,1);}
112
+
113
+
114
+ // /** \brief Returns one of the restrictor space.
115
+ // * Returns one of the restrictor space. Deprecated : use space() and nextScope instead for constraint posting.
116
+ // * @param sp the number of the restrictor to get (first restrictor is 0).
117
+ // */
118
+ // MySpace* getRuleSpace(int sp);
119
+ //
120
+ //
121
+ // /** \brief Returns the goal space.
122
+ // * Returns the goal space. Deprecated : use space() and nextScope instead for constraint posting.
123
+ // */
124
+ // MySpace* getGoalSpace();
125
+
126
+
127
+ /** \brief Returns the current declarating space.
128
+ * Return the space we are currently declarating constraints in. nextScope() is used to set the nextspace as the current one.
129
+ */
130
+ QECODE_EXPORT MySpace* space();
131
+
132
+
133
+ /** \brief Returns an integer variable from the space we are currently declaring.
134
+ * Returns an integer variable from the cpace we are currently declaring. Will abort if the variable is not integer.
135
+ * @param n The number of the variable to return.
136
+ */
137
+ QECODE_EXPORT IntVar var(int n);
138
+
139
+
140
+ /** \brief Returns a boolean variable from the space we are currently declaring.
141
+ * Returns a boolean variable from the space we are currently declaring. Will abort if the variable is not boolean.
142
+ * @param n The number of the variable to return.
143
+ */
144
+ QECODE_EXPORT BoolVar bvar(int n);
145
+
146
+
147
+
148
+ /** \brief Switch to the next space for constraint declaration.
149
+ * Switches to the next space for constraint declaration. var, bvar and space methods will now refer to the next rule space (or to the goal space if the current space was the last rule one).
150
+ * Returns the new space number, or -1 if it was called while there was no next space to declare constraints in.
151
+ */
152
+ QECODE_EXPORT int nextScope();
153
+
154
+
155
+ /** \brief Finalizes the restricted-quantified space construction.
156
+ * Finalizes the restricted-quantified space construction. Must be invoked once all the variable and all the constraints have been declared, and before the search is performed on this space.
157
+ */
158
+ QECODE_EXPORT void makeStructure();
159
+
160
+ /** \brief Prints the current state of an implicative object.
161
+ * Prints the variable domains of all the spaces (if defined). Does not perform an ounce of propagation
162
+ */
163
+ QECODE_EXPORT virtual void print();
164
+
165
+
166
+ QECODE_EXPORT virtual bool quantification(int v);
167
+ QECODE_EXPORT virtual int status(int var,unsigned long int& propsteps);
168
+ QECODE_EXPORT virtual int finalStatus(unsigned long int& propsteps);
169
+ QECODE_EXPORT virtual bool subsumed(int var);
170
+ QECODE_EXPORT virtual Implicative* clone();
171
+ QECODE_EXPORT virtual void assign_int(int var,int** vals,int nbVals);
172
+ QECODE_EXPORT virtual void remove_int(int var,int** vals,int nbVals);
173
+ QECODE_EXPORT virtual void assign_bool(int var,int** vals,int nbVals);
174
+ QECODE_EXPORT virtual void remove_bool(int var,int** vals,int nbVals);
175
+ QECODE_EXPORT virtual void assign_bool(int var,int b);
176
+ QECODE_EXPORT virtual void remove_bool(int var,int b);
177
+ // virtual void infEqual(int var,int val);
178
+ // virtual void sup(int var,int val);
179
+ QECODE_EXPORT virtual void backtrack();
180
+ QECODE_EXPORT virtual void indicateBranchingHeuristic(BranchingHeuristic* bh);
181
+ };
182
+
183
+
184
+ #endif
@@ -0,0 +1,39 @@
1
+
2
+ #ifndef QECODE_MYDOM
3
+ #define QECODE_MYDOM
4
+ #include "gecode/minimodel.hh"
5
+ using namespace Gecode;
6
+ using namespace Gecode::Int;
7
+ using namespace std;
8
+
9
+ void myAntidom_int(Space* home, IntVar x, const IntSet& is, IntConLevel) {
10
+ if (home->failed()) return;
11
+ IntView xv(x);
12
+ IntSetRanges ris(is);
13
+ GECODE_ME_FAIL(home,xv.minus_r(home,ris));
14
+ }
15
+
16
+ void myAntidom_bool(Space* home, BoolVar x, const IntSet& is, IntConLevel) {
17
+ if (home->failed()) return;
18
+ BoolView xv(x);
19
+ IntSetRanges ris(is);
20
+ GECODE_ME_FAIL(home,xv.minus_r(home,ris));
21
+ }
22
+
23
+ /*
24
+ void myDom_int(Space* home, IntVar x, const IntSet& is, IntConLevel) {
25
+ if (home->failed()) return;
26
+ IntView xv(x);
27
+ IntSetRanges ris(is);
28
+ GECODE_ME_FAIL(home,xv.inter_r(home,ris));
29
+ }
30
+
31
+ void myDom_bool(Space* home, BoolVar x, const IntSet& is, IntConLevel) {
32
+ if (home->failed()) return;
33
+ BoolView xv(x);
34
+ IntSetRanges ris(is);
35
+ GECODE_ME_FAIL(home,xv.inter_r(home,ris));
36
+ }
37
+ */
38
+
39
+ #endif
@@ -0,0 +1,69 @@
1
+ /*****************************************************************[myspace.cc]
2
+ Copyright (c) 2007, Universite d'Orleans - Jeremie Vautard, Marco Benedetti,
3
+ Arnaud Lallouet.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+ *****************************************************************************/
23
+ #include "./myspace.hh"
24
+ #include <iostream>
25
+
26
+
27
+ using namespace std;
28
+
29
+ MySpace::MySpace(unsigned int nv) {
30
+ n=nv;
31
+ v=new void*[n];
32
+ type_of_v=new VarType[n];
33
+ }
34
+
35
+
36
+ MySpace::~MySpace() {
37
+ for (int i=0;i<n;i++)
38
+ delete v[i];
39
+
40
+ delete[] v;
41
+ delete[] type_of_v;
42
+ }
43
+
44
+ MySpace::MySpace(bool share,MySpace& ms) : Space(share,ms) {
45
+ n=ms.n;
46
+ v=new void*[n];
47
+ type_of_v=new VarType[n];
48
+ for (int i=0;i<n;i++) {
49
+ type_of_v[i] = ms.type_of_v[i];
50
+ switch (type_of_v[i]) {
51
+ case VTYPE_INT :
52
+ v[i] = new IntVar(*(static_cast<IntVar*>(ms.v[i])));
53
+ (static_cast<IntVar*>(v[i]))->update(this,true,*(static_cast<IntVar*>(ms.v[i])));
54
+ break;
55
+ case VTYPE_BOOL :
56
+ v[i] = new BoolVar(*(static_cast<BoolVar*>(ms.v[i])));
57
+ (static_cast<BoolVar*>(v[i]))->update(this,true,*(static_cast<BoolVar*>(ms.v[i])));
58
+ break;
59
+ default:
60
+ cout<<"Unsupported variable type"<<endl;
61
+ abort();
62
+ }
63
+ }
64
+ }
65
+
66
+
67
+ MySpace* MySpace::copy(bool share) {return new MySpace(share,*this);}
68
+
69
+
@@ -0,0 +1,69 @@
1
+ /*****************************************************************[myspace.hh]
2
+ Copyright (c) 2007, Universite d'Orleans - Jeremie Vautard, Marco Benedetti,
3
+ Arnaud Lallouet.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+ *****************************************************************************/
23
+ #ifndef __QECODE_MYSPACE__
24
+ #define __QECODE_MYSPACE__
25
+
26
+ #include "qecode.hh"
27
+ #include <vector>
28
+ #include "gecode/minimodel.hh"
29
+ #include "vartype.hh"
30
+
31
+ using namespace Gecode;
32
+ using namespace Gecode::Int;
33
+
34
+ /** \brief A simple extension of Gecode::Space class.
35
+ * A simple extension of the Space class from Gecode, in order to have access to the variables it contains.
36
+ */
37
+
38
+ /** Types of variables.
39
+ */
40
+
41
+ class QECODE_VTABLE_EXPORT MySpace : public Space {
42
+
43
+ protected :
44
+ unsigned int n;
45
+
46
+ public:
47
+ /** This array contains all the variables this space contains.
48
+ */
49
+ void** v;
50
+
51
+
52
+ /** This array indicates the type of each variable.
53
+ */
54
+ VarType* type_of_v;
55
+
56
+ /** \brief Constructor of a space with a fixed number of variables.
57
+ * Builds a space which will contain nv variables (the variables themselves are however not declared).
58
+ * @param nv the number of variable the space must contain.
59
+ */
60
+ QECODE_EXPORT MySpace(unsigned int nv);
61
+
62
+ QECODE_EXPORT MySpace(bool share,MySpace& ms);
63
+ QECODE_EXPORT virtual MySpace* copy(bool share);
64
+ QECODE_EXPORT virtual ~MySpace();
65
+ };
66
+
67
+
68
+
69
+ #endif
@@ -0,0 +1,56 @@
1
+ /**** , [ qecode.hh ],
2
+ Copyright (c) 2007 Universite d'Orleans - Jeremie Vautard
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in
12
+ all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ THE SOFTWARE.
21
+ *************************************************************************/
22
+
23
+ #ifndef __QECODE_HH__
24
+ #define __QECODE_HH__
25
+
26
+ #include "gecode/kernel.hh"
27
+
28
+ #if !defined(GECODE_STATIC_LIBS) && \
29
+ (defined(__CYGWIN__) || defined(__MINGW32__) || defined(_MSC_VER))
30
+
31
+ #define QECODE_VTABLE_EXPORT
32
+
33
+ #ifdef GECODE_BUILD_QECODE
34
+ #define QECODE_EXPORT __declspec( dllexport )
35
+ #else
36
+ #define QECODE_EXPORT __declspec( dllimport )
37
+ #endif
38
+
39
+ #else
40
+
41
+ #ifdef GECODE_GCC_HAS_CLASS_VISIBILITY
42
+
43
+ #define QECODE_VTABLE_EXPORT __attribute__ ((visibility("default")))
44
+ #define QECODE_EXPORT __attribute__ ((visibility("default")))
45
+
46
+ #else
47
+ #define QECODE_VTABLE_EXPORT
48
+ #define QECODE_EXPORT
49
+
50
+ #endif
51
+ #endif
52
+
53
+ #define QECODE_EXISTENTIAL false
54
+ #define QECODE_UNIVERSAL true
55
+
56
+ #endif
@@ -0,0 +1,145 @@
1
+ /*****************************************************************[qecore.cc]
2
+ Copyright (c) 2007, Universite d'Orleans - Jeremie Vautard, Marco Benedetti,
3
+ Arnaud Lallouet.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+ *****************************************************************************/
23
+ #include "qecore.hh"
24
+
25
+ #include <iostream>
26
+
27
+
28
+ QSpace::QSpace() {}
29
+
30
+ QSpace::QSpace(QSpace& qs) {
31
+ n=qs.n;
32
+ ps=qs.ps;
33
+ v = new void*[n];
34
+ type_of_v = qs.type_of_v;
35
+ }
36
+
37
+
38
+ #define MARKER size
39
+
40
+ BranchingHeuristic::BranchingHeuristic(QSpace* qs,VariableHeuristic* ev) {
41
+
42
+ eval=ev;
43
+ size=qs->nv();
44
+ score=new int[size];
45
+ touched.push(MARKER);
46
+ bloc=new int[size];
47
+
48
+ blocks=1; bool q=qs->quantification(0);
49
+ for (int i=0;i<size;i++) {
50
+ if ((qs->quantification(i)) != q) {
51
+ q=qs->quantification(i);
52
+ blocks++;
53
+ }
54
+ bloc[i]=(blocks-1);
55
+ }
56
+
57
+ treated.push(MARKER);
58
+
59
+ for (int i=0;i<size;i++) {
60
+ score[i]=eval->score(qs,i);
61
+ }
62
+
63
+ ExtensiveComparator* c = new ExtensiveComparator(size,score);
64
+
65
+ heaps=new cheap[blocks];
66
+ for (int i=0;i<blocks;i++) {
67
+ heaps[i]=cheap(c);
68
+ heaps[i].setBounds(size);
69
+ }
70
+
71
+
72
+ int whichblock=0; bool qf=(qs->quantification(0));
73
+ for (int i=0;i<size;i++) {
74
+ if (qf != (qs->quantification(i)) ) {
75
+ whichblock++;
76
+ qf=(qs->quantification(i));
77
+ }
78
+ heaps[whichblock].insert(i);
79
+ }
80
+
81
+ curHeap=0;
82
+ }
83
+
84
+ int BranchingHeuristic::nextVar(QSpace* qs) {
85
+ int ret;
86
+ touched.push(MARKER);
87
+ while (! (heaps[blocks-1]).empty() ) {
88
+ if (heaps[curHeap].empty()) {
89
+ curHeap++;
90
+ }
91
+ if (curHeap >= blocks ) break;
92
+ ret=heaps[curHeap].getminwopop();
93
+ treated.push(ret);
94
+
95
+ if( !(qs->subsumed(ret)) ) { // If the variable is a good one to branch on.../!\ A INSTANCIATED VARIABLE MUST BE SUBSUMED
96
+ treated.push(MARKER);
97
+ return ret;
98
+ }
99
+ else { // If the variable is subsumed, we delete it fron the heap...
100
+ int rien=heaps[curHeap].getmin();
101
+ }
102
+ }
103
+ treated.push(MARKER);
104
+ return MARKER;
105
+ }
106
+
107
+ void BranchingHeuristic::updateVar(int pos, QSpace* qs) {
108
+
109
+ if (!(heaps[bloc[pos]].inHeap(pos)) ) return; // If the variable is not in the heap (so, it is already assigned or ignored), do nothing
110
+ if ( eval->score(qs,pos) == score[pos] ) return; // if no update is necessary, do nothing
111
+
112
+ if ( eval->score(qs,pos) < score[pos] ) {
113
+ score[pos]=eval->score(qs,pos);
114
+ heaps[bloc[pos]].increase(pos);
115
+ }
116
+ else {
117
+ score[pos]=eval->score(qs,pos);
118
+ heaps[bloc[pos]].decrease(pos);
119
+ }
120
+ }
121
+
122
+ void BranchingHeuristic::vartouched(int pos,QSpace* qs) {
123
+ touched.push(pos);
124
+ updateVar(pos,qs);
125
+ }
126
+
127
+ void BranchingHeuristic::backtrack(QSpace* qs) {
128
+ if (treated.top() != MARKER ) {
129
+ cout<<"Branching Heuristic : Probleme de pile... "<<endl;
130
+ abort();
131
+ }
132
+ else {
133
+ treated.pop();
134
+ }
135
+ while (treated.top() != MARKER ) {
136
+ heaps[bloc[treated.top()]].insert(treated.top() );
137
+ curHeap=bloc[treated.top()];
138
+ treated.pop();
139
+ }
140
+
141
+ while (touched.top() != MARKER ) {
142
+ updateVar(touched.top(),qs);
143
+ touched.pop();
144
+ }
145
+ }