ruby-cbc 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (303) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/Gemfile +4 -0
  6. data/README.md +203 -0
  7. data/Rakefile +40 -0
  8. data/bin/console +14 -0
  9. data/bin/setup +7 -0
  10. data/ext/ruby-cbc/cbc.i +15 -0
  11. data/ext/ruby-cbc/cbc_wrap.c +4618 -0
  12. data/ext/ruby-cbc/extconf.rb +60 -0
  13. data/ext/ruby-cbc/install/bin/cbc +0 -0
  14. data/ext/ruby-cbc/install/bin/clp +0 -0
  15. data/ext/ruby-cbc/install/include/coin/CbcBranchActual.hpp +24 -0
  16. data/ext/ruby-cbc/install/include/coin/CbcBranchAllDifferent.hpp +62 -0
  17. data/ext/ruby-cbc/install/include/coin/CbcBranchBase.hpp +78 -0
  18. data/ext/ruby-cbc/install/include/coin/CbcBranchCut.hpp +183 -0
  19. data/ext/ruby-cbc/install/include/coin/CbcBranchDecision.hpp +129 -0
  20. data/ext/ruby-cbc/install/include/coin/CbcBranchDefaultDecision.hpp +100 -0
  21. data/ext/ruby-cbc/install/include/coin/CbcBranchDynamic.hpp +206 -0
  22. data/ext/ruby-cbc/install/include/coin/CbcBranchLotsize.hpp +242 -0
  23. data/ext/ruby-cbc/install/include/coin/CbcBranchToFixLots.hpp +94 -0
  24. data/ext/ruby-cbc/install/include/coin/CbcBranchingObject.hpp +236 -0
  25. data/ext/ruby-cbc/install/include/coin/CbcClique.hpp +303 -0
  26. data/ext/ruby-cbc/install/include/coin/CbcCompare.hpp +39 -0
  27. data/ext/ruby-cbc/install/include/coin/CbcCompareActual.hpp +14 -0
  28. data/ext/ruby-cbc/install/include/coin/CbcCompareBase.hpp +142 -0
  29. data/ext/ruby-cbc/install/include/coin/CbcCompareDefault.hpp +120 -0
  30. data/ext/ruby-cbc/install/include/coin/CbcCompareDepth.hpp +47 -0
  31. data/ext/ruby-cbc/install/include/coin/CbcCompareEstimate.hpp +48 -0
  32. data/ext/ruby-cbc/install/include/coin/CbcCompareObjective.hpp +49 -0
  33. data/ext/ruby-cbc/install/include/coin/CbcConfig.h +14 -0
  34. data/ext/ruby-cbc/install/include/coin/CbcConsequence.hpp +49 -0
  35. data/ext/ruby-cbc/install/include/coin/CbcCountRowCut.hpp +168 -0
  36. data/ext/ruby-cbc/install/include/coin/CbcCutGenerator.hpp +482 -0
  37. data/ext/ruby-cbc/install/include/coin/CbcCutModifier.hpp +57 -0
  38. data/ext/ruby-cbc/install/include/coin/CbcCutSubsetModifier.hpp +66 -0
  39. data/ext/ruby-cbc/install/include/coin/CbcDummyBranchingObject.hpp +83 -0
  40. data/ext/ruby-cbc/install/include/coin/CbcEventHandler.hpp +245 -0
  41. data/ext/ruby-cbc/install/include/coin/CbcFathom.hpp +137 -0
  42. data/ext/ruby-cbc/install/include/coin/CbcFathomDynamicProgramming.hpp +169 -0
  43. data/ext/ruby-cbc/install/include/coin/CbcFeasibilityBase.hpp +56 -0
  44. data/ext/ruby-cbc/install/include/coin/CbcFixVariable.hpp +67 -0
  45. data/ext/ruby-cbc/install/include/coin/CbcFollowOn.hpp +207 -0
  46. data/ext/ruby-cbc/install/include/coin/CbcFullNodeInfo.hpp +161 -0
  47. data/ext/ruby-cbc/install/include/coin/CbcGeneral.hpp +60 -0
  48. data/ext/ruby-cbc/install/include/coin/CbcGeneralDepth.hpp +279 -0
  49. data/ext/ruby-cbc/install/include/coin/CbcHeuristic.hpp +682 -0
  50. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDINS.hpp +96 -0
  51. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDW.hpp +309 -0
  52. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDive.hpp +192 -0
  53. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveCoefficient.hpp +52 -0
  54. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveFractional.hpp +52 -0
  55. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveGuided.hpp +55 -0
  56. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveLineSearch.hpp +52 -0
  57. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDivePseudoCost.hpp +60 -0
  58. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveVectorLength.hpp +52 -0
  59. data/ext/ruby-cbc/install/include/coin/CbcHeuristicFPump.hpp +340 -0
  60. data/ext/ruby-cbc/install/include/coin/CbcHeuristicGreedy.hpp +280 -0
  61. data/ext/ruby-cbc/install/include/coin/CbcHeuristicLocal.hpp +271 -0
  62. data/ext/ruby-cbc/install/include/coin/CbcHeuristicPivotAndFix.hpp +58 -0
  63. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRENS.hpp +77 -0
  64. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRINS.hpp +102 -0
  65. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRandRound.hpp +58 -0
  66. data/ext/ruby-cbc/install/include/coin/CbcHeuristicVND.hpp +94 -0
  67. data/ext/ruby-cbc/install/include/coin/CbcLinked.hpp +1406 -0
  68. data/ext/ruby-cbc/install/include/coin/CbcMessage.hpp +94 -0
  69. data/ext/ruby-cbc/install/include/coin/CbcMipStartIO.hpp +26 -0
  70. data/ext/ruby-cbc/install/include/coin/CbcModel.hpp +2952 -0
  71. data/ext/ruby-cbc/install/include/coin/CbcNWay.hpp +166 -0
  72. data/ext/ruby-cbc/install/include/coin/CbcNode.hpp +351 -0
  73. data/ext/ruby-cbc/install/include/coin/CbcNodeInfo.hpp +349 -0
  74. data/ext/ruby-cbc/install/include/coin/CbcObject.hpp +272 -0
  75. data/ext/ruby-cbc/install/include/coin/CbcObjectUpdateData.hpp +64 -0
  76. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.cpp +4134 -0
  77. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.hpp +532 -0
  78. data/ext/ruby-cbc/install/include/coin/CbcParam.hpp +324 -0
  79. data/ext/ruby-cbc/install/include/coin/CbcPartialNodeInfo.hpp +110 -0
  80. data/ext/ruby-cbc/install/include/coin/CbcSOS.hpp +279 -0
  81. data/ext/ruby-cbc/install/include/coin/CbcSimpleInteger.hpp +286 -0
  82. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +564 -0
  83. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerPseudoCost.hpp +114 -0
  84. data/ext/ruby-cbc/install/include/coin/CbcSolver.hpp +447 -0
  85. data/ext/ruby-cbc/install/include/coin/CbcStrategy.hpp +258 -0
  86. data/ext/ruby-cbc/install/include/coin/CbcSubProblem.hpp +83 -0
  87. data/ext/ruby-cbc/install/include/coin/CbcTree.hpp +490 -0
  88. data/ext/ruby-cbc/install/include/coin/CbcTreeLocal.hpp +372 -0
  89. data/ext/ruby-cbc/install/include/coin/Cbc_C_Interface.h +381 -0
  90. data/ext/ruby-cbc/install/include/coin/Cgl012cut.hpp +464 -0
  91. data/ext/ruby-cbc/install/include/coin/CglAllDifferent.hpp +115 -0
  92. data/ext/ruby-cbc/install/include/coin/CglClique.hpp +308 -0
  93. data/ext/ruby-cbc/install/include/coin/CglConfig.h +19 -0
  94. data/ext/ruby-cbc/install/include/coin/CglCutGenerator.hpp +121 -0
  95. data/ext/ruby-cbc/install/include/coin/CglDuplicateRow.hpp +189 -0
  96. data/ext/ruby-cbc/install/include/coin/CglFlowCover.hpp +371 -0
  97. data/ext/ruby-cbc/install/include/coin/CglGMI.hpp +364 -0
  98. data/ext/ruby-cbc/install/include/coin/CglGMIParam.hpp +313 -0
  99. data/ext/ruby-cbc/install/include/coin/CglGomory.hpp +204 -0
  100. data/ext/ruby-cbc/install/include/coin/CglKnapsackCover.hpp +310 -0
  101. data/ext/ruby-cbc/install/include/coin/CglLandP.hpp +306 -0
  102. data/ext/ruby-cbc/install/include/coin/CglLandPValidator.hpp +130 -0
  103. data/ext/ruby-cbc/install/include/coin/CglLiftAndProject.hpp +104 -0
  104. data/ext/ruby-cbc/install/include/coin/CglMessage.hpp +50 -0
  105. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding.hpp +429 -0
  106. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding2.hpp +427 -0
  107. data/ext/ruby-cbc/install/include/coin/CglOddHole.hpp +160 -0
  108. data/ext/ruby-cbc/install/include/coin/CglParam.hpp +93 -0
  109. data/ext/ruby-cbc/install/include/coin/CglPreProcess.hpp +492 -0
  110. data/ext/ruby-cbc/install/include/coin/CglProbing.hpp +543 -0
  111. data/ext/ruby-cbc/install/include/coin/CglRedSplit.hpp +448 -0
  112. data/ext/ruby-cbc/install/include/coin/CglRedSplit2.hpp +494 -0
  113. data/ext/ruby-cbc/install/include/coin/CglRedSplit2Param.hpp +495 -0
  114. data/ext/ruby-cbc/install/include/coin/CglRedSplitParam.hpp +272 -0
  115. data/ext/ruby-cbc/install/include/coin/CglResidualCapacity.hpp +240 -0
  116. data/ext/ruby-cbc/install/include/coin/CglSimpleRounding.hpp +174 -0
  117. data/ext/ruby-cbc/install/include/coin/CglStored.hpp +125 -0
  118. data/ext/ruby-cbc/install/include/coin/CglTreeInfo.hpp +180 -0
  119. data/ext/ruby-cbc/install/include/coin/CglTwomir.hpp +565 -0
  120. data/ext/ruby-cbc/install/include/coin/CglZeroHalf.hpp +133 -0
  121. data/ext/ruby-cbc/install/include/coin/ClpAmplObjective.hpp +113 -0
  122. data/ext/ruby-cbc/install/include/coin/ClpCholeskyBase.hpp +294 -0
  123. data/ext/ruby-cbc/install/include/coin/ClpCholeskyDense.hpp +162 -0
  124. data/ext/ruby-cbc/install/include/coin/ClpConfig.h +17 -0
  125. data/ext/ruby-cbc/install/include/coin/ClpConstraint.hpp +125 -0
  126. data/ext/ruby-cbc/install/include/coin/ClpConstraintAmpl.hpp +108 -0
  127. data/ext/ruby-cbc/install/include/coin/ClpConstraintLinear.hpp +110 -0
  128. data/ext/ruby-cbc/install/include/coin/ClpConstraintQuadratic.hpp +119 -0
  129. data/ext/ruby-cbc/install/include/coin/ClpDualRowDantzig.hpp +71 -0
  130. data/ext/ruby-cbc/install/include/coin/ClpDualRowPivot.hpp +129 -0
  131. data/ext/ruby-cbc/install/include/coin/ClpDualRowSteepest.hpp +153 -0
  132. data/ext/ruby-cbc/install/include/coin/ClpDummyMatrix.hpp +183 -0
  133. data/ext/ruby-cbc/install/include/coin/ClpDynamicExampleMatrix.hpp +186 -0
  134. data/ext/ruby-cbc/install/include/coin/ClpDynamicMatrix.hpp +381 -0
  135. data/ext/ruby-cbc/install/include/coin/ClpEventHandler.hpp +187 -0
  136. data/ext/ruby-cbc/install/include/coin/ClpFactorization.hpp +432 -0
  137. data/ext/ruby-cbc/install/include/coin/ClpGubDynamicMatrix.hpp +247 -0
  138. data/ext/ruby-cbc/install/include/coin/ClpGubMatrix.hpp +358 -0
  139. data/ext/ruby-cbc/install/include/coin/ClpInterior.hpp +570 -0
  140. data/ext/ruby-cbc/install/include/coin/ClpLinearObjective.hpp +103 -0
  141. data/ext/ruby-cbc/install/include/coin/ClpMatrixBase.hpp +524 -0
  142. data/ext/ruby-cbc/install/include/coin/ClpMessage.hpp +131 -0
  143. data/ext/ruby-cbc/install/include/coin/ClpModel.hpp +1307 -0
  144. data/ext/ruby-cbc/install/include/coin/ClpNetworkMatrix.hpp +229 -0
  145. data/ext/ruby-cbc/install/include/coin/ClpNode.hpp +349 -0
  146. data/ext/ruby-cbc/install/include/coin/ClpNonLinearCost.hpp +401 -0
  147. data/ext/ruby-cbc/install/include/coin/ClpObjective.hpp +134 -0
  148. data/ext/ruby-cbc/install/include/coin/ClpPackedMatrix.hpp +638 -0
  149. data/ext/ruby-cbc/install/include/coin/ClpParameters.hpp +126 -0
  150. data/ext/ruby-cbc/install/include/coin/ClpPdcoBase.hpp +103 -0
  151. data/ext/ruby-cbc/install/include/coin/ClpPlusMinusOneMatrix.hpp +290 -0
  152. data/ext/ruby-cbc/install/include/coin/ClpPresolve.hpp +299 -0
  153. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnDantzig.hpp +72 -0
  154. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnPivot.hpp +155 -0
  155. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnSteepest.hpp +247 -0
  156. data/ext/ruby-cbc/install/include/coin/ClpQuadraticObjective.hpp +155 -0
  157. data/ext/ruby-cbc/install/include/coin/ClpSimplex.hpp +1797 -0
  158. data/ext/ruby-cbc/install/include/coin/ClpSimplexDual.hpp +300 -0
  159. data/ext/ruby-cbc/install/include/coin/ClpSimplexNonlinear.hpp +117 -0
  160. data/ext/ruby-cbc/install/include/coin/ClpSimplexOther.hpp +277 -0
  161. data/ext/ruby-cbc/install/include/coin/ClpSimplexPrimal.hpp +244 -0
  162. data/ext/ruby-cbc/install/include/coin/ClpSolve.hpp +446 -0
  163. data/ext/ruby-cbc/install/include/coin/Clp_C_Interface.h +525 -0
  164. data/ext/ruby-cbc/install/include/coin/CoinAlloc.hpp +176 -0
  165. data/ext/ruby-cbc/install/include/coin/CoinBuild.hpp +149 -0
  166. data/ext/ruby-cbc/install/include/coin/CoinDenseFactorization.hpp +419 -0
  167. data/ext/ruby-cbc/install/include/coin/CoinDenseVector.hpp +383 -0
  168. data/ext/ruby-cbc/install/include/coin/CoinDistance.hpp +48 -0
  169. data/ext/ruby-cbc/install/include/coin/CoinError.hpp +257 -0
  170. data/ext/ruby-cbc/install/include/coin/CoinFactorization.hpp +2044 -0
  171. data/ext/ruby-cbc/install/include/coin/CoinFileIO.hpp +166 -0
  172. data/ext/ruby-cbc/install/include/coin/CoinFinite.hpp +34 -0
  173. data/ext/ruby-cbc/install/include/coin/CoinFloatEqual.hpp +177 -0
  174. data/ext/ruby-cbc/install/include/coin/CoinHelperFunctions.hpp +1111 -0
  175. data/ext/ruby-cbc/install/include/coin/CoinIndexedVector.hpp +1164 -0
  176. data/ext/ruby-cbc/install/include/coin/CoinLpIO.hpp +805 -0
  177. data/ext/ruby-cbc/install/include/coin/CoinMessage.hpp +96 -0
  178. data/ext/ruby-cbc/install/include/coin/CoinMessageHandler.hpp +666 -0
  179. data/ext/ruby-cbc/install/include/coin/CoinModel.hpp +1054 -0
  180. data/ext/ruby-cbc/install/include/coin/CoinModelUseful.hpp +441 -0
  181. data/ext/ruby-cbc/install/include/coin/CoinMpsIO.hpp +1056 -0
  182. data/ext/ruby-cbc/install/include/coin/CoinOslFactorization.hpp +280 -0
  183. data/ext/ruby-cbc/install/include/coin/CoinPackedMatrix.hpp +947 -0
  184. data/ext/ruby-cbc/install/include/coin/CoinPackedVector.hpp +657 -0
  185. data/ext/ruby-cbc/install/include/coin/CoinPackedVectorBase.hpp +269 -0
  186. data/ext/ruby-cbc/install/include/coin/CoinParam.hpp +644 -0
  187. data/ext/ruby-cbc/install/include/coin/CoinPragma.hpp +26 -0
  188. data/ext/ruby-cbc/install/include/coin/CoinPresolveDoubleton.hpp +73 -0
  189. data/ext/ruby-cbc/install/include/coin/CoinPresolveDual.hpp +85 -0
  190. data/ext/ruby-cbc/install/include/coin/CoinPresolveDupcol.hpp +226 -0
  191. data/ext/ruby-cbc/install/include/coin/CoinPresolveEmpty.hpp +116 -0
  192. data/ext/ruby-cbc/install/include/coin/CoinPresolveFixed.hpp +181 -0
  193. data/ext/ruby-cbc/install/include/coin/CoinPresolveForcing.hpp +61 -0
  194. data/ext/ruby-cbc/install/include/coin/CoinPresolveImpliedFree.hpp +60 -0
  195. data/ext/ruby-cbc/install/include/coin/CoinPresolveIsolated.hpp +51 -0
  196. data/ext/ruby-cbc/install/include/coin/CoinPresolveMatrix.hpp +1842 -0
  197. data/ext/ruby-cbc/install/include/coin/CoinPresolveMonitor.hpp +105 -0
  198. data/ext/ruby-cbc/install/include/coin/CoinPresolvePsdebug.hpp +166 -0
  199. data/ext/ruby-cbc/install/include/coin/CoinPresolveSingleton.hpp +112 -0
  200. data/ext/ruby-cbc/install/include/coin/CoinPresolveSubst.hpp +101 -0
  201. data/ext/ruby-cbc/install/include/coin/CoinPresolveTighten.hpp +55 -0
  202. data/ext/ruby-cbc/install/include/coin/CoinPresolveTripleton.hpp +66 -0
  203. data/ext/ruby-cbc/install/include/coin/CoinPresolveUseless.hpp +63 -0
  204. data/ext/ruby-cbc/install/include/coin/CoinPresolveZeros.hpp +60 -0
  205. data/ext/ruby-cbc/install/include/coin/CoinRational.hpp +44 -0
  206. data/ext/ruby-cbc/install/include/coin/CoinSearchTree.hpp +465 -0
  207. data/ext/ruby-cbc/install/include/coin/CoinShallowPackedVector.hpp +148 -0
  208. data/ext/ruby-cbc/install/include/coin/CoinSignal.hpp +117 -0
  209. data/ext/ruby-cbc/install/include/coin/CoinSimpFactorization.hpp +431 -0
  210. data/ext/ruby-cbc/install/include/coin/CoinSmartPtr.hpp +528 -0
  211. data/ext/ruby-cbc/install/include/coin/CoinSnapshot.hpp +476 -0
  212. data/ext/ruby-cbc/install/include/coin/CoinSort.hpp +678 -0
  213. data/ext/ruby-cbc/install/include/coin/CoinStructuredModel.hpp +247 -0
  214. data/ext/ruby-cbc/install/include/coin/CoinTime.hpp +310 -0
  215. data/ext/ruby-cbc/install/include/coin/CoinTypes.hpp +64 -0
  216. data/ext/ruby-cbc/install/include/coin/CoinUtility.hpp +19 -0
  217. data/ext/ruby-cbc/install/include/coin/CoinUtilsConfig.h +34 -0
  218. data/ext/ruby-cbc/install/include/coin/CoinWarmStart.hpp +58 -0
  219. data/ext/ruby-cbc/install/include/coin/CoinWarmStartBasis.hpp +456 -0
  220. data/ext/ruby-cbc/install/include/coin/CoinWarmStartDual.hpp +166 -0
  221. data/ext/ruby-cbc/install/include/coin/CoinWarmStartPrimalDual.hpp +211 -0
  222. data/ext/ruby-cbc/install/include/coin/CoinWarmStartVector.hpp +488 -0
  223. data/ext/ruby-cbc/install/include/coin/Coin_C_defines.h +115 -0
  224. data/ext/ruby-cbc/install/include/coin/Idiot.hpp +298 -0
  225. data/ext/ruby-cbc/install/include/coin/OsiAuxInfo.hpp +206 -0
  226. data/ext/ruby-cbc/install/include/coin/OsiBranchingObject.hpp +1005 -0
  227. data/ext/ruby-cbc/install/include/coin/OsiCbcSolverInterface.hpp +764 -0
  228. data/ext/ruby-cbc/install/include/coin/OsiChooseVariable.hpp +534 -0
  229. data/ext/ruby-cbc/install/include/coin/OsiClpSolverInterface.hpp +1509 -0
  230. data/ext/ruby-cbc/install/include/coin/OsiColCut.hpp +324 -0
  231. data/ext/ruby-cbc/install/include/coin/OsiCollections.hpp +35 -0
  232. data/ext/ruby-cbc/install/include/coin/OsiConfig.h +19 -0
  233. data/ext/ruby-cbc/install/include/coin/OsiCut.hpp +245 -0
  234. data/ext/ruby-cbc/install/include/coin/OsiCuts.hpp +474 -0
  235. data/ext/ruby-cbc/install/include/coin/OsiPresolve.hpp +252 -0
  236. data/ext/ruby-cbc/install/include/coin/OsiRowCut.hpp +331 -0
  237. data/ext/ruby-cbc/install/include/coin/OsiRowCutDebugger.hpp +187 -0
  238. data/ext/ruby-cbc/install/include/coin/OsiSolverBranch.hpp +152 -0
  239. data/ext/ruby-cbc/install/include/coin/OsiSolverInterface.hpp +2143 -0
  240. data/ext/ruby-cbc/install/include/coin/OsiSolverParameters.hpp +142 -0
  241. data/ext/ruby-cbc/install/include/coin/OsiUnitTests.hpp +374 -0
  242. data/ext/ruby-cbc/install/lib/libCbc.la +35 -0
  243. data/ext/ruby-cbc/install/lib/libCbc.so +0 -0
  244. data/ext/ruby-cbc/install/lib/libCbc.so.3 +0 -0
  245. data/ext/ruby-cbc/install/lib/libCbc.so.3.9.7 +0 -0
  246. data/ext/ruby-cbc/install/lib/libCbcSolver.la +35 -0
  247. data/ext/ruby-cbc/install/lib/libCbcSolver.so +0 -0
  248. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3 +0 -0
  249. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3.9.7 +0 -0
  250. data/ext/ruby-cbc/install/lib/libCgl.la +35 -0
  251. data/ext/ruby-cbc/install/lib/libCgl.so +0 -0
  252. data/ext/ruby-cbc/install/lib/libCgl.so.1 +0 -0
  253. data/ext/ruby-cbc/install/lib/libCgl.so.1.9.7 +0 -0
  254. data/ext/ruby-cbc/install/lib/libClp.la +35 -0
  255. data/ext/ruby-cbc/install/lib/libClp.so +0 -0
  256. data/ext/ruby-cbc/install/lib/libClp.so.1 +0 -0
  257. data/ext/ruby-cbc/install/lib/libClp.so.1.13.9 +0 -0
  258. data/ext/ruby-cbc/install/lib/libClpSolver.la +35 -0
  259. data/ext/ruby-cbc/install/lib/libClpSolver.so +0 -0
  260. data/ext/ruby-cbc/install/lib/libClpSolver.so.1 +0 -0
  261. data/ext/ruby-cbc/install/lib/libClpSolver.so.1.13.9 +0 -0
  262. data/ext/ruby-cbc/install/lib/libCoinUtils.la +35 -0
  263. data/ext/ruby-cbc/install/lib/libCoinUtils.so +0 -0
  264. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3 +0 -0
  265. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3.10.11 +0 -0
  266. data/ext/ruby-cbc/install/lib/libOsi.la +35 -0
  267. data/ext/ruby-cbc/install/lib/libOsi.so +0 -0
  268. data/ext/ruby-cbc/install/lib/libOsi.so.1 +0 -0
  269. data/ext/ruby-cbc/install/lib/libOsi.so.1.12.6 +0 -0
  270. data/ext/ruby-cbc/install/lib/libOsiCbc.la +35 -0
  271. data/ext/ruby-cbc/install/lib/libOsiCbc.so +0 -0
  272. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3 +0 -0
  273. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3.9.7 +0 -0
  274. data/ext/ruby-cbc/install/lib/libOsiClp.la +35 -0
  275. data/ext/ruby-cbc/install/lib/libOsiClp.so +0 -0
  276. data/ext/ruby-cbc/install/lib/libOsiClp.so.1 +0 -0
  277. data/ext/ruby-cbc/install/lib/libOsiClp.so.1.13.9 +0 -0
  278. data/ext/ruby-cbc/install/lib/libOsiCommonTests.la +35 -0
  279. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so +0 -0
  280. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1 +0 -0
  281. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1.12.6 +0 -0
  282. data/ext/ruby-cbc/install/lib/pkgconfig/cbc.pc +12 -0
  283. data/ext/ruby-cbc/install/lib/pkgconfig/cgl.pc +12 -0
  284. data/ext/ruby-cbc/install/lib/pkgconfig/clp.pc +12 -0
  285. data/ext/ruby-cbc/install/lib/pkgconfig/coindatamiplib3.pc +9 -0
  286. data/ext/ruby-cbc/install/lib/pkgconfig/coindatasample.pc +9 -0
  287. data/ext/ruby-cbc/install/lib/pkgconfig/coinutils.pc +12 -0
  288. data/ext/ruby-cbc/install/lib/pkgconfig/osi-cbc.pc +12 -0
  289. data/ext/ruby-cbc/install/lib/pkgconfig/osi-clp.pc +12 -0
  290. data/ext/ruby-cbc/install/lib/pkgconfig/osi-unittests.pc +12 -0
  291. data/ext/ruby-cbc/install/lib/pkgconfig/osi.pc +12 -0
  292. data/lib/ruby-cbc/ilp/constant.rb +44 -0
  293. data/lib/ruby-cbc/ilp/constraint.rb +32 -0
  294. data/lib/ruby-cbc/ilp/objective.rb +26 -0
  295. data/lib/ruby-cbc/ilp/term.rb +47 -0
  296. data/lib/ruby-cbc/ilp/term_array.rb +80 -0
  297. data/lib/ruby-cbc/ilp/var.rb +62 -0
  298. data/lib/ruby-cbc/model.rb +125 -0
  299. data/lib/ruby-cbc/problem.rb +170 -0
  300. data/lib/ruby-cbc/version.rb +3 -0
  301. data/lib/ruby-cbc.rb +21 -0
  302. data/ruby-cbc.gemspec +36 -0
  303. metadata +431 -0
@@ -0,0 +1,55 @@
1
+ /* $Id: CbcHeuristicDiveGuided.hpp 1899 2013-04-09 18:12:08Z stefan $ */
2
+ // Copyright (C) 2008, International Business Machines
3
+ // Corporation and others. All Rights Reserved.
4
+ // This code is licensed under the terms of the Eclipse Public License (EPL).
5
+
6
+ #ifndef CbcHeuristicDiveGuided_H
7
+ #define CbcHeuristicDiveGuided_H
8
+
9
+ #include "CbcHeuristicDive.hpp"
10
+
11
+ /** DiveGuided class
12
+ */
13
+
14
+ class CbcHeuristicDiveGuided : public CbcHeuristicDive {
15
+ public:
16
+
17
+ // Default Constructor
18
+ CbcHeuristicDiveGuided ();
19
+
20
+ // Constructor with model - assumed before cuts
21
+ CbcHeuristicDiveGuided (CbcModel & model);
22
+
23
+ // Copy constructor
24
+ CbcHeuristicDiveGuided ( const CbcHeuristicDiveGuided &);
25
+
26
+ // Destructor
27
+ ~CbcHeuristicDiveGuided ();
28
+
29
+ /// Clone
30
+ virtual CbcHeuristicDiveGuided * clone() const;
31
+
32
+ /// Assignment operator
33
+ CbcHeuristicDiveGuided & operator=(const CbcHeuristicDiveGuided& rhs);
34
+
35
+ /// Create C++ lines to get to current state
36
+ virtual void generateCpp( FILE * fp) ;
37
+
38
+ /// Tests if the heuristic can run
39
+ virtual bool canHeuristicRun();
40
+
41
+ /// Selects the next variable to branch on
42
+ /** Returns true if all the fractional variables can be trivially
43
+ rounded. Returns false, if there is at least one fractional variable
44
+ that is not trivially roundable. In this case, the bestColumn
45
+ returned will not be trivially roundable.
46
+ */
47
+ virtual bool selectVariableToBranch(OsiSolverInterface* solver,
48
+ const double* newSolution,
49
+ int& bestColumn,
50
+ int& bestRound);
51
+
52
+ };
53
+
54
+ #endif
55
+
@@ -0,0 +1,52 @@
1
+ /* $Id: CbcHeuristicDiveLineSearch.hpp 1899 2013-04-09 18:12:08Z stefan $ */
2
+ // Copyright (C) 2008, International Business Machines
3
+ // Corporation and others. All Rights Reserved.
4
+ // This code is licensed under the terms of the Eclipse Public License (EPL).
5
+
6
+ #ifndef CbcHeuristicDiveLineSearch_H
7
+ #define CbcHeuristicDiveLineSearch_H
8
+
9
+ #include "CbcHeuristicDive.hpp"
10
+
11
+ /** DiveLineSearch class
12
+ */
13
+
14
+ class CbcHeuristicDiveLineSearch : public CbcHeuristicDive {
15
+ public:
16
+
17
+ // Default Constructor
18
+ CbcHeuristicDiveLineSearch ();
19
+
20
+ // Constructor with model - assumed before cuts
21
+ CbcHeuristicDiveLineSearch (CbcModel & model);
22
+
23
+ // Copy constructor
24
+ CbcHeuristicDiveLineSearch ( const CbcHeuristicDiveLineSearch &);
25
+
26
+ // Destructor
27
+ ~CbcHeuristicDiveLineSearch ();
28
+
29
+ /// Clone
30
+ virtual CbcHeuristicDiveLineSearch * clone() const;
31
+
32
+ /// Assignment operator
33
+ CbcHeuristicDiveLineSearch & operator=(const CbcHeuristicDiveLineSearch& rhs);
34
+
35
+ /// Create C++ lines to get to current state
36
+ virtual void generateCpp( FILE * fp) ;
37
+
38
+ /// Selects the next variable to branch on
39
+ /** Returns true if all the fractional variables can be trivially
40
+ rounded. Returns false, if there is at least one fractional variable
41
+ that is not trivially roundable. In this case, the bestColumn
42
+ returned will not be trivially roundable.
43
+ */
44
+ virtual bool selectVariableToBranch(OsiSolverInterface* solver,
45
+ const double* newSolution,
46
+ int& bestColumn,
47
+ int& bestRound);
48
+
49
+ };
50
+
51
+ #endif
52
+
@@ -0,0 +1,60 @@
1
+ /* $Id: CbcHeuristicDivePseudoCost.hpp 1899 2013-04-09 18:12:08Z stefan $ */
2
+ // Copyright (C) 2008, International Business Machines
3
+ // Corporation and others. All Rights Reserved.
4
+ // This code is licensed under the terms of the Eclipse Public License (EPL).
5
+
6
+ #ifndef CbcHeuristicDivePseudoCost_H
7
+ #define CbcHeuristicDivePseudoCost_H
8
+
9
+ #include "CbcHeuristicDive.hpp"
10
+
11
+ /** DivePseudoCost class
12
+ */
13
+
14
+ class CbcHeuristicDivePseudoCost : public CbcHeuristicDive {
15
+ public:
16
+
17
+ // Default Constructor
18
+ CbcHeuristicDivePseudoCost ();
19
+
20
+ // Constructor with model - assumed before cuts
21
+ CbcHeuristicDivePseudoCost (CbcModel & model);
22
+
23
+ // Copy constructor
24
+ CbcHeuristicDivePseudoCost ( const CbcHeuristicDivePseudoCost &);
25
+
26
+ // Destructor
27
+ ~CbcHeuristicDivePseudoCost ();
28
+
29
+ /// Clone
30
+ virtual CbcHeuristicDivePseudoCost * clone() const;
31
+
32
+ /// Assignment operator
33
+ CbcHeuristicDivePseudoCost & operator=(const CbcHeuristicDivePseudoCost& rhs);
34
+
35
+ /// Create C++ lines to get to current state
36
+ virtual void generateCpp( FILE * fp) ;
37
+
38
+ /// Selects the next variable to branch on
39
+ /** Returns true if all the fractional variables can be trivially
40
+ rounded. Returns false, if there is at least one fractional variable
41
+ that is not trivially roundable. In this case, the bestColumn
42
+ returned will not be trivially roundable.
43
+ */
44
+ virtual bool selectVariableToBranch(OsiSolverInterface* solver,
45
+ const double* newSolution,
46
+ int& bestColumn,
47
+ int& bestRound);
48
+ /** Initializes any data which is going to be used repeatedly
49
+ in selectVariableToBranch */
50
+ virtual void initializeData() ;
51
+ /// Fix other variables at bounds
52
+ virtual int fixOtherVariables(OsiSolverInterface * solver,
53
+ const double * solution,
54
+ PseudoReducedCost * candidate,
55
+ const double * random);
56
+
57
+ };
58
+
59
+ #endif
60
+
@@ -0,0 +1,52 @@
1
+ /* $Id: CbcHeuristicDiveVectorLength.hpp 1899 2013-04-09 18:12:08Z stefan $ */
2
+ // Copyright (C) 2008, International Business Machines
3
+ // Corporation and others. All Rights Reserved.
4
+ // This code is licensed under the terms of the Eclipse Public License (EPL).
5
+
6
+ #ifndef CbcHeuristicDiveVectorLength_H
7
+ #define CbcHeuristicDiveVectorLength_H
8
+
9
+ #include "CbcHeuristicDive.hpp"
10
+
11
+ /** DiveVectorLength class
12
+ */
13
+
14
+ class CbcHeuristicDiveVectorLength : public CbcHeuristicDive {
15
+ public:
16
+
17
+ // Default Constructor
18
+ CbcHeuristicDiveVectorLength ();
19
+
20
+ // Constructor with model - assumed before cuts
21
+ CbcHeuristicDiveVectorLength (CbcModel & model);
22
+
23
+ // Copy constructor
24
+ CbcHeuristicDiveVectorLength ( const CbcHeuristicDiveVectorLength &);
25
+
26
+ // Destructor
27
+ ~CbcHeuristicDiveVectorLength ();
28
+
29
+ /// Clone
30
+ virtual CbcHeuristicDiveVectorLength * clone() const;
31
+
32
+ /// Assignment operator
33
+ CbcHeuristicDiveVectorLength & operator=(const CbcHeuristicDiveVectorLength& rhs);
34
+
35
+ /// Create C++ lines to get to current state
36
+ virtual void generateCpp( FILE * fp) ;
37
+
38
+ /// Selects the next variable to branch on
39
+ /** Returns true if all the fractional variables can be trivially
40
+ rounded. Returns false, if there is at least one fractional variable
41
+ that is not trivially roundable. In this case, the bestColumn
42
+ returned will not be trivially roundable.
43
+ */
44
+ virtual bool selectVariableToBranch(OsiSolverInterface* solver,
45
+ const double* newSolution,
46
+ int& bestColumn,
47
+ int& bestRound);
48
+
49
+ };
50
+
51
+ #endif
52
+
@@ -0,0 +1,340 @@
1
+ /* $Id: CbcHeuristicFPump.hpp 1573 2011-01-05 01:12:36Z lou $ */
2
+ // Copyright (C) 2004, International Business Machines
3
+ // Corporation and others. All Rights Reserved.
4
+ // This code is licensed under the terms of the Eclipse Public License (EPL).
5
+
6
+ #ifndef CbcHeuristicFeasibilityPump_H
7
+ #define CbcHeuristicFeasibilityPump_H
8
+
9
+ #include "CbcHeuristic.hpp"
10
+ #include "OsiClpSolverInterface.hpp"
11
+
12
+ /** Feasibility Pump class
13
+ */
14
+
15
+ class CbcHeuristicFPump : public CbcHeuristic {
16
+ public:
17
+
18
+ // Default Constructor
19
+ CbcHeuristicFPump ();
20
+
21
+ // Constructor with model - assumed before cuts
22
+ CbcHeuristicFPump (CbcModel & model,
23
+ double downValue = 0.5, bool roundExpensive = false);
24
+
25
+ // Copy constructor
26
+ CbcHeuristicFPump ( const CbcHeuristicFPump &);
27
+
28
+ // Destructor
29
+ ~CbcHeuristicFPump ();
30
+
31
+ /// Assignment operator
32
+ CbcHeuristicFPump & operator=(const CbcHeuristicFPump& rhs);
33
+ /// Clone
34
+ virtual CbcHeuristic * clone() const;
35
+ /// Create C++ lines to get to current state
36
+ virtual void generateCpp( FILE * fp) ;
37
+
38
+ /// Resets stuff if model changes
39
+ virtual void resetModel(CbcModel * model);
40
+
41
+ /// update model (This is needed if cliques update matrix etc)
42
+ virtual void setModel(CbcModel * model);
43
+
44
+ using CbcHeuristic::solution ;
45
+ /** returns 0 if no solution, 1 if valid solution
46
+ with better objective value than one passed in
47
+ Sets solution values if good, sets objective value (only if good)
48
+ This is called after cuts have been added - so can not add cuts.
49
+
50
+ It may make sense for user to call this outside Branch and Cut to
51
+ get solution. Or normally is just at root node.
52
+
53
+ * new meanings for when_ - on first try then set back to 1
54
+ 11 - at end fix all integers at same bound throughout
55
+ 12 - also fix all integers staying at same internal integral value throughout
56
+ 13 - also fix all continuous variables staying at same bound throughout
57
+ 14 - also fix all continuous variables staying at same internal value throughout
58
+ 15 - as 13 but no internal integers
59
+ And beyond that, it's apparently possible for the range to be between 21
60
+ and 25, in which case it's reduced on entry to solution() to be between
61
+ 11 and 15 and allSlack is set to true. Then, if we're not processing
62
+ general integers, we'll use an all-slack basis to solve ... what? Don't
63
+ see that yet.
64
+ */
65
+ virtual int solution(double & objectiveValue,
66
+ double * newSolution);
67
+
68
+ /// Set maximum Time (default off) - also sets starttime to current
69
+ void setMaximumTime(double value);
70
+ /// Get maximum Time (default 0.0 == time limit off)
71
+ inline double maximumTime() const {
72
+ return maximumTime_;
73
+ }
74
+ /// Set fake cutoff (default COIN_DBL_MAX == off)
75
+ inline void setFakeCutoff(double value) {
76
+ fakeCutoff_ = value;
77
+ }
78
+ /// Get fake cutoff (default 0.0 == off)
79
+ inline double fakeCutoff() const {
80
+ return fakeCutoff_;
81
+ }
82
+ /// Set absolute increment (default 0.0 == off)
83
+ inline void setAbsoluteIncrement(double value) {
84
+ absoluteIncrement_ = value;
85
+ }
86
+ /// Get absolute increment (default 0.0 == off)
87
+ inline double absoluteIncrement() const {
88
+ return absoluteIncrement_;
89
+ }
90
+ /// Set relative increment (default 0.0 == off)
91
+ inline void setRelativeIncrement(double value) {
92
+ relativeIncrement_ = value;
93
+ }
94
+ /// Get relative increment (default 0.0 == off)
95
+ inline double relativeIncrement() const {
96
+ return relativeIncrement_;
97
+ }
98
+ /// Set default rounding (default 0.5)
99
+ inline void setDefaultRounding(double value) {
100
+ defaultRounding_ = value;
101
+ }
102
+ /// Get default rounding (default 0.5)
103
+ inline double defaultRounding() const {
104
+ return defaultRounding_;
105
+ }
106
+ /// Set initial weight (default 0.0 == off)
107
+ inline void setInitialWeight(double value) {
108
+ initialWeight_ = value;
109
+ }
110
+ /// Get initial weight (default 0.0 == off)
111
+ inline double initialWeight() const {
112
+ return initialWeight_;
113
+ }
114
+ /// Set weight factor (default 0.1)
115
+ inline void setWeightFactor(double value) {
116
+ weightFactor_ = value;
117
+ }
118
+ /// Get weight factor (default 0.1)
119
+ inline double weightFactor() const {
120
+ return weightFactor_;
121
+ }
122
+ /// Set threshold cost for using original cost - even on continuous (default infinity)
123
+ inline void setArtificialCost(double value) {
124
+ artificialCost_ = value;
125
+ }
126
+ /// Get threshold cost for using original cost - even on continuous (default infinity)
127
+ inline double artificialCost() const {
128
+ return artificialCost_;
129
+ }
130
+ /// Get iteration to size ratio
131
+ inline double iterationRatio() const {
132
+ return iterationRatio_;
133
+ }
134
+ /// Set iteration to size ratio
135
+ inline void setIterationRatio(double value) {
136
+ iterationRatio_ = value;
137
+ }
138
+ /// Set maximum passes (default 100)
139
+ inline void setMaximumPasses(int value) {
140
+ maximumPasses_ = value;
141
+ }
142
+ /// Get maximum passes (default 100)
143
+ inline int maximumPasses() const {
144
+ return maximumPasses_;
145
+ }
146
+ /// Set maximum retries (default 1)
147
+ inline void setMaximumRetries(int value) {
148
+ maximumRetries_ = value;
149
+ }
150
+ /// Get maximum retries (default 1)
151
+ inline int maximumRetries() const {
152
+ return maximumRetries_;
153
+ }
154
+ /** Set use of multiple solutions and solves
155
+ 0 - do not reuse solves, do not accumulate integer solutions for local search
156
+ 1 - do not reuse solves, accumulate integer solutions for local search
157
+ 2 - reuse solves, do not accumulate integer solutions for local search
158
+ 3 - reuse solves, accumulate integer solutions for local search
159
+ If we add 4 then use second form of problem (with extra rows and variables for general integers)
160
+ At some point (date?), I added
161
+
162
+ And then there are a few bit fields:
163
+ 4 - something about general integers
164
+ So my (lh) guess for 4 was at least in the ballpark, but I'll have to
165
+ rethink 8 entirely (and it may well not mean the same thing as it did
166
+ when I added that comment.
167
+ 8 - determines whether we process general integers
168
+
169
+ And on 090831, John added
170
+
171
+ If we add 4 then use second form of problem (with extra rows and
172
+ variables for general integers)
173
+ If we add 8 then can run after initial cuts (if no solution)
174
+ */
175
+ inline void setAccumulate(int value) {
176
+ accumulate_ = value;
177
+ }
178
+ /// Get accumulation option
179
+ inline int accumulate() const {
180
+ return accumulate_;
181
+ }
182
+ /** Set whether to fix variables on known solution
183
+ 0 - do not fix
184
+ 1 - fix integers on reduced costs
185
+ 2 - fix integers on reduced costs but only on entry
186
+ */
187
+ inline void setFixOnReducedCosts(int value) {
188
+ fixOnReducedCosts_ = value;
189
+ }
190
+ /// Get reduced cost option
191
+ inline int fixOnReducedCosts() const {
192
+ return fixOnReducedCosts_;
193
+ }
194
+ /** Set reduced cost multiplier
195
+ 1.0 as normal
196
+ <1.0 (x) - pretend gap is x* actual gap - just for fixing
197
+ */
198
+ inline void setReducedCostMultiplier(double value) {
199
+ reducedCostMultiplier_ = value;
200
+ }
201
+ /// Get reduced cost multiplier
202
+ inline double reducedCostMultiplier() const {
203
+ return reducedCostMultiplier_;
204
+ }
205
+
206
+ protected:
207
+ // Data
208
+ /// Start time
209
+ double startTime_;
210
+ /// Maximum Cpu seconds
211
+ double maximumTime_;
212
+ /** Fake cutoff value.
213
+ If set then better of real cutoff and this used to add a constraint
214
+ */
215
+ double fakeCutoff_;
216
+ /// If positive carry on after solution expecting gain of at least this
217
+ double absoluteIncrement_;
218
+ /// If positive carry on after solution expecting gain of at least this times objective
219
+ double relativeIncrement_;
220
+ /// Default is round up if > this
221
+ double defaultRounding_;
222
+ /// Initial weight for true objective
223
+ double initialWeight_;
224
+ /// Factor for decreasing weight
225
+ double weightFactor_;
226
+ /// Threshold cost for using original cost - even on continuous
227
+ double artificialCost_;
228
+ /** If iterationRatio >0 use instead of maximumPasses_
229
+ test is iterations > ratio*(2*nrow+ncol) */
230
+ double iterationRatio_;
231
+ /** Reduced cost multiplier
232
+ 1.0 as normal
233
+ <1.0 (x) - pretend gap is x* actual gap - just for fixing
234
+ */
235
+ double reducedCostMultiplier_;
236
+ /// Maximum number of passes
237
+ int maximumPasses_;
238
+ /** Maximum number of retries if we find a solution.
239
+ If negative we clean out used array
240
+ */
241
+ int maximumRetries_;
242
+ /** Set use of multiple solutions and solves
243
+ 0 - do not reuse solves, do not accumulate integer solutions for local search
244
+ 1 - do not reuse solves, accumulate integer solutions for local search
245
+ 2 - reuse solves, do not accumulate integer solutions for local search
246
+ 3 - reuse solves, accumulate integer solutions for local search
247
+ If we add 4 then use second form of problem (with extra rows and variables for general integers)
248
+ If we do not accumulate solutions then no mini branch and bounds will be done
249
+ reuse - refers to initial solve after adding in new "cut"
250
+ If we add 8 then can run after initial cuts (if no solution)
251
+ */
252
+ int accumulate_;
253
+ /** Set whether to fix variables on known solution
254
+ 0 - do not fix
255
+ 1 - fix integers on reduced costs
256
+ 2 - fix integers on reduced costs but only on entry
257
+ */
258
+ int fixOnReducedCosts_;
259
+ /// If true round to expensive
260
+ bool roundExpensive_;
261
+
262
+ private:
263
+ /** Rounds solution - down if < downValue
264
+ If roundExpensive then always to more expnsive.
265
+ returns 0 if current is solution
266
+ */
267
+ int rounds(OsiSolverInterface * solver, double * solution,
268
+ /*const double * objective, */
269
+ int numberIntegers, const int * integerVariable,
270
+ /*char * pumpPrint,*/int passNumber,
271
+ /*bool roundExpensive=false,*/
272
+ double downValue = 0.5, int *flip = 0);
273
+ /* note for eagle eyed readers.
274
+ when_ can now be exotic -
275
+ <=10 normal
276
+ */
277
+ };
278
+
279
+ # ifdef COIN_HAS_CLP
280
+
281
+ class CbcDisasterHandler : public OsiClpDisasterHandler {
282
+ public:
283
+ /**@name Virtual methods that the derived classe should provide.
284
+ */
285
+ //@{
286
+ #ifdef JJF_ZERO
287
+ /// Into simplex
288
+ virtual void intoSimplex();
289
+ /// Checks if disaster
290
+ virtual bool check() const ;
291
+ /// saves information for next attempt
292
+ virtual void saveInfo();
293
+ #endif
294
+ /// Type of disaster 0 can fix, 1 abort
295
+ virtual int typeOfDisaster();
296
+ //@}
297
+
298
+
299
+ /**@name Constructors, destructor */
300
+
301
+ //@{
302
+ /** Default constructor. */
303
+ CbcDisasterHandler(CbcModel * model = NULL);
304
+ /** Destructor */
305
+ virtual ~CbcDisasterHandler();
306
+ // Copy
307
+ CbcDisasterHandler(const CbcDisasterHandler&);
308
+ // Assignment
309
+ CbcDisasterHandler& operator=(const CbcDisasterHandler&);
310
+ /// Clone
311
+ virtual ClpDisasterHandler * clone() const;
312
+
313
+ //@}
314
+
315
+ /**@name Sets/gets */
316
+
317
+ //@{
318
+ /** set model. */
319
+ void setCbcModel(CbcModel * model);
320
+ /// Get model
321
+ inline CbcModel * cbcModel() const {
322
+ return cbcModel_;
323
+ }
324
+
325
+ //@}
326
+
327
+
328
+ protected:
329
+ /**@name Data members
330
+ The data members are protected to allow access for derived classes. */
331
+ //@{
332
+ /// Pointer to model
333
+ CbcModel * cbcModel_;
334
+
335
+ //@}
336
+ };
337
+ #endif
338
+
339
+ #endif
340
+