ruby-cbc 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
+