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,125 @@
1
+ /* $Id: ClpConstraint.hpp 1665 2011-01-04 17:55:54Z lou $ */
2
+ // Copyright (C) 2007, 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 ClpConstraint_H
7
+ #define ClpConstraint_H
8
+
9
+
10
+ //#############################################################################
11
+ class ClpSimplex;
12
+ class ClpModel;
13
+
14
+ /** Constraint Abstract Base Class
15
+
16
+ Abstract Base Class for describing a constraint or objective function
17
+
18
+ */
19
+ class ClpConstraint {
20
+
21
+ public:
22
+
23
+ ///@name Stuff
24
+ //@{
25
+
26
+ /** Fills gradient. If Linear then solution may be NULL,
27
+ also returns true value of function and offset so we can use x not deltaX in constraint
28
+ If refresh is false then uses last solution
29
+ Uses model for scaling
30
+ Returns non-zero if gradient undefined at current solution
31
+ */
32
+ virtual int gradient(const ClpSimplex * model,
33
+ const double * solution,
34
+ double * gradient,
35
+ double & functionValue ,
36
+ double & offset,
37
+ bool useScaling = false,
38
+ bool refresh = true) const = 0;
39
+ /// Constraint function value
40
+ virtual double functionValue (const ClpSimplex * model,
41
+ const double * solution,
42
+ bool useScaling = false,
43
+ bool refresh = true) const ;
44
+ /// Resize constraint
45
+ virtual void resize(int newNumberColumns) = 0;
46
+ /// Delete columns in constraint
47
+ virtual void deleteSome(int numberToDelete, const int * which) = 0;
48
+ /// Scale constraint
49
+ virtual void reallyScale(const double * columnScale) = 0;
50
+ /** Given a zeroed array sets nonlinear columns to 1.
51
+ Returns number of nonlinear columns
52
+ */
53
+ virtual int markNonlinear(char * which) const = 0;
54
+ /** Given a zeroed array sets possible nonzero coefficients to 1.
55
+ Returns number of nonzeros
56
+ */
57
+ virtual int markNonzero(char * which) const = 0;
58
+ //@}
59
+
60
+
61
+ ///@name Constructors and destructors
62
+ //@{
63
+ /// Default Constructor
64
+ ClpConstraint();
65
+
66
+ /// Copy constructor
67
+ ClpConstraint(const ClpConstraint &);
68
+
69
+ /// Assignment operator
70
+ ClpConstraint & operator=(const ClpConstraint& rhs);
71
+
72
+ /// Destructor
73
+ virtual ~ClpConstraint ();
74
+
75
+ /// Clone
76
+ virtual ClpConstraint * clone() const = 0;
77
+
78
+ //@}
79
+
80
+ ///@name Other
81
+ //@{
82
+ /// Returns type, 0 linear, 1 nonlinear
83
+ inline int type() {
84
+ return type_;
85
+ }
86
+ /// Row number (-1 is objective)
87
+ inline int rowNumber() const {
88
+ return rowNumber_;
89
+ }
90
+
91
+ /// Number of possible coefficients in gradient
92
+ virtual int numberCoefficients() const = 0;
93
+
94
+ /// Stored constraint function value
95
+ inline double functionValue () const {
96
+ return functionValue_;
97
+ }
98
+
99
+ /// Constraint offset
100
+ inline double offset () const {
101
+ return offset_;
102
+ }
103
+ /// Say we have new primal solution - so may need to recompute
104
+ virtual void newXValues() {}
105
+ //@}
106
+
107
+ //---------------------------------------------------------------------------
108
+
109
+ protected:
110
+ ///@name Protected member data
111
+ //@{
112
+ /// Gradient at last evaluation
113
+ mutable double * lastGradient_;
114
+ /// Value of non-linear part of constraint
115
+ mutable double functionValue_;
116
+ /// Value of offset for constraint
117
+ mutable double offset_;
118
+ /// Type of constraint - linear is 1
119
+ int type_;
120
+ /// Row number (-1 is objective)
121
+ int rowNumber_;
122
+ //@}
123
+ };
124
+
125
+ #endif
@@ -0,0 +1,108 @@
1
+ /* $Id: ClpConstraintAmpl.hpp 1899 2013-04-09 18:12:08Z stefan $ */
2
+ // Copyright (C) 2007, 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 ClpConstraintAmpl_H
7
+ #define ClpConstraintAmpl_H
8
+
9
+ #include "ClpConstraint.hpp"
10
+
11
+ //#############################################################################
12
+
13
+ /** Ampl Constraint Class
14
+
15
+ */
16
+
17
+ class ClpConstraintAmpl : public ClpConstraint {
18
+
19
+ public:
20
+
21
+ ///@name Stuff
22
+ //@{
23
+
24
+
25
+ /** Fills gradient. If Ampl then solution may be NULL,
26
+ also returns true value of function and offset so we can use x not deltaX in constraint
27
+ If refresh is false then uses last solution
28
+ Uses model for scaling
29
+ Returns non-zero if gradient udefined at current solution
30
+ */
31
+ virtual int gradient(const ClpSimplex * model,
32
+ const double * solution,
33
+ double * gradient,
34
+ double & functionValue ,
35
+ double & offset,
36
+ bool useScaling = false,
37
+ bool refresh = true) const ;
38
+ /// Resize constraint
39
+ virtual void resize(int newNumberColumns) ;
40
+ /// Delete columns in constraint
41
+ virtual void deleteSome(int numberToDelete, const int * which) ;
42
+ /// Scale constraint
43
+ virtual void reallyScale(const double * columnScale) ;
44
+ /** Given a zeroed array sets nonampl columns to 1.
45
+ Returns number of nonampl columns
46
+ */
47
+ virtual int markNonlinear(char * which) const ;
48
+ /** Given a zeroed array sets possible nonzero coefficients to 1.
49
+ Returns number of nonzeros
50
+ */
51
+ virtual int markNonzero(char * which) const;
52
+ /// Say we have new primal solution - so may need to recompute
53
+ virtual void newXValues() ;
54
+ //@}
55
+
56
+
57
+ ///@name Constructors and destructors
58
+ //@{
59
+ /// Default Constructor
60
+ ClpConstraintAmpl();
61
+
62
+ /// Constructor from ampl
63
+ ClpConstraintAmpl(int row, void * amplInfo);
64
+
65
+ /** Copy constructor .
66
+ */
67
+ ClpConstraintAmpl(const ClpConstraintAmpl & rhs);
68
+
69
+ /// Assignment operator
70
+ ClpConstraintAmpl & operator=(const ClpConstraintAmpl& rhs);
71
+
72
+ /// Destructor
73
+ virtual ~ClpConstraintAmpl ();
74
+
75
+ /// Clone
76
+ virtual ClpConstraint * clone() const;
77
+ //@}
78
+ ///@name Gets and sets
79
+ //@{
80
+ /// Number of coefficients
81
+ virtual int numberCoefficients() const;
82
+ /// Columns
83
+ inline const int * column() const {
84
+ return column_;
85
+ }
86
+ /// Coefficients
87
+ inline const double * coefficient() const {
88
+ return coefficient_;
89
+ }
90
+ //@}
91
+
92
+ //---------------------------------------------------------------------------
93
+
94
+ private:
95
+ ///@name Private member data
96
+ /// Ampl info
97
+ void * amplInfo_;
98
+ /// Column
99
+ int * column_;
100
+ /// Coefficients
101
+ double * coefficient_;
102
+ /// Number of coefficients in gradient
103
+ int numberCoefficients_;
104
+ //@}
105
+ };
106
+
107
+ #endif
108
+
@@ -0,0 +1,110 @@
1
+ /* $Id: ClpConstraintLinear.hpp 1665 2011-01-04 17:55:54Z lou $ */
2
+ // Copyright (C) 2007, 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 ClpConstraintLinear_H
7
+ #define ClpConstraintLinear_H
8
+
9
+ #include "ClpConstraint.hpp"
10
+
11
+ //#############################################################################
12
+
13
+ /** Linear Constraint Class
14
+
15
+ */
16
+
17
+ class ClpConstraintLinear : public ClpConstraint {
18
+
19
+ public:
20
+
21
+ ///@name Stuff
22
+ //@{
23
+
24
+
25
+ /** Fills gradient. If Linear then solution may be NULL,
26
+ also returns true value of function and offset so we can use x not deltaX in constraint
27
+ If refresh is false then uses last solution
28
+ Uses model for scaling
29
+ Returns non-zero if gradient udefined at current solution
30
+ */
31
+ virtual int gradient(const ClpSimplex * model,
32
+ const double * solution,
33
+ double * gradient,
34
+ double & functionValue ,
35
+ double & offset,
36
+ bool useScaling = false,
37
+ bool refresh = true) const ;
38
+ /// Resize constraint
39
+ virtual void resize(int newNumberColumns) ;
40
+ /// Delete columns in constraint
41
+ virtual void deleteSome(int numberToDelete, const int * which) ;
42
+ /// Scale constraint
43
+ virtual void reallyScale(const double * columnScale) ;
44
+ /** Given a zeroed array sets nonlinear columns to 1.
45
+ Returns number of nonlinear columns
46
+ */
47
+ virtual int markNonlinear(char * which) const ;
48
+ /** Given a zeroed array sets possible nonzero coefficients to 1.
49
+ Returns number of nonzeros
50
+ */
51
+ virtual int markNonzero(char * which) const;
52
+ //@}
53
+
54
+
55
+ ///@name Constructors and destructors
56
+ //@{
57
+ /// Default Constructor
58
+ ClpConstraintLinear();
59
+
60
+ /// Constructor from constraint
61
+ ClpConstraintLinear(int row, int numberCoefficients, int numberColumns,
62
+ const int * column, const double * element);
63
+
64
+ /** Copy constructor .
65
+ */
66
+ ClpConstraintLinear(const ClpConstraintLinear & rhs);
67
+
68
+ /// Assignment operator
69
+ ClpConstraintLinear & operator=(const ClpConstraintLinear& rhs);
70
+
71
+ /// Destructor
72
+ virtual ~ClpConstraintLinear ();
73
+
74
+ /// Clone
75
+ virtual ClpConstraint * clone() const;
76
+ //@}
77
+ ///@name Gets and sets
78
+ //@{
79
+ /// Number of coefficients
80
+ virtual int numberCoefficients() const;
81
+ /// Number of columns in linear constraint
82
+ inline int numberColumns() const {
83
+ return numberColumns_;
84
+ }
85
+ /// Columns
86
+ inline const int * column() const {
87
+ return column_;
88
+ }
89
+ /// Coefficients
90
+ inline const double * coefficient() const {
91
+ return coefficient_;
92
+ }
93
+ //@}
94
+
95
+ //---------------------------------------------------------------------------
96
+
97
+ private:
98
+ ///@name Private member data
99
+ /// Column
100
+ int * column_;
101
+ /// Coefficients
102
+ double * coefficient_;
103
+ /// Useful to have number of columns about
104
+ int numberColumns_;
105
+ /// Number of coefficients
106
+ int numberCoefficients_;
107
+ //@}
108
+ };
109
+
110
+ #endif
@@ -0,0 +1,119 @@
1
+ /* $Id: ClpConstraintQuadratic.hpp 1665 2011-01-04 17:55:54Z lou $ */
2
+ // Copyright (C) 2007, 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 ClpConstraintQuadratic_H
7
+ #define ClpConstraintQuadratic_H
8
+
9
+ #include "ClpConstraint.hpp"
10
+
11
+ //#############################################################################
12
+
13
+ /** Quadratic Constraint Class
14
+
15
+ */
16
+
17
+ class ClpConstraintQuadratic : public ClpConstraint {
18
+
19
+ public:
20
+
21
+ ///@name Stuff
22
+ //@{
23
+
24
+
25
+ /** Fills gradient. If Quadratic then solution may be NULL,
26
+ also returns true value of function and offset so we can use x not deltaX in constraint
27
+ If refresh is false then uses last solution
28
+ Uses model for scaling
29
+ Returns non-zero if gradient udefined at current solution
30
+ */
31
+ virtual int gradient(const ClpSimplex * model,
32
+ const double * solution,
33
+ double * gradient,
34
+ double & functionValue ,
35
+ double & offset,
36
+ bool useScaling = false,
37
+ bool refresh = true) const ;
38
+ /// Resize constraint
39
+ virtual void resize(int newNumberColumns) ;
40
+ /// Delete columns in constraint
41
+ virtual void deleteSome(int numberToDelete, const int * which) ;
42
+ /// Scale constraint
43
+ virtual void reallyScale(const double * columnScale) ;
44
+ /** Given a zeroed array sets nonquadratic columns to 1.
45
+ Returns number of nonquadratic columns
46
+ */
47
+ virtual int markNonlinear(char * which) const ;
48
+ /** Given a zeroed array sets possible nonzero coefficients to 1.
49
+ Returns number of nonzeros
50
+ */
51
+ virtual int markNonzero(char * which) const;
52
+ //@}
53
+
54
+
55
+ ///@name Constructors and destructors
56
+ //@{
57
+ /// Default Constructor
58
+ ClpConstraintQuadratic();
59
+
60
+ /// Constructor from quadratic
61
+ ClpConstraintQuadratic(int row, int numberQuadraticColumns, int numberColumns,
62
+ const CoinBigIndex * start,
63
+ const int * column, const double * element);
64
+
65
+ /** Copy constructor .
66
+ */
67
+ ClpConstraintQuadratic(const ClpConstraintQuadratic & rhs);
68
+
69
+ /// Assignment operator
70
+ ClpConstraintQuadratic & operator=(const ClpConstraintQuadratic& rhs);
71
+
72
+ /// Destructor
73
+ virtual ~ClpConstraintQuadratic ();
74
+
75
+ /// Clone
76
+ virtual ClpConstraint * clone() const;
77
+ //@}
78
+ ///@name Gets and sets
79
+ //@{
80
+ /// Number of coefficients
81
+ virtual int numberCoefficients() const;
82
+ /// Number of columns in constraint
83
+ inline int numberColumns() const {
84
+ return numberColumns_;
85
+ }
86
+ /// Column starts
87
+ inline CoinBigIndex * start() const {
88
+ return start_;
89
+ }
90
+ /// Columns
91
+ inline const int * column() const {
92
+ return column_;
93
+ }
94
+ /// Coefficients
95
+ inline const double * coefficient() const {
96
+ return coefficient_;
97
+ }
98
+ //@}
99
+
100
+ //---------------------------------------------------------------------------
101
+
102
+ private:
103
+ ///@name Private member data
104
+ /// Column starts
105
+ CoinBigIndex * start_;
106
+ /// Column (if -1 then linear coefficient)
107
+ int * column_;
108
+ /// Coefficients
109
+ double * coefficient_;
110
+ /// Useful to have number of columns about
111
+ int numberColumns_;
112
+ /// Number of coefficients in gradient
113
+ int numberCoefficients_;
114
+ /// Number of quadratic columns
115
+ int numberQuadraticColumns_;
116
+ //@}
117
+ };
118
+
119
+ #endif
@@ -0,0 +1,71 @@
1
+ /* $Id: ClpDualRowDantzig.hpp 1665 2011-01-04 17:55:54Z lou $ */
2
+ // Copyright (C) 2002, 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 ClpDualRowDantzig_H
7
+ #define ClpDualRowDantzig_H
8
+
9
+ #include "ClpDualRowPivot.hpp"
10
+
11
+ //#############################################################################
12
+
13
+ /** Dual Row Pivot Dantzig Algorithm Class
14
+
15
+ This is simplest choice - choose largest infeasibility
16
+
17
+ */
18
+
19
+ class ClpDualRowDantzig : public ClpDualRowPivot {
20
+
21
+ public:
22
+
23
+ ///@name Algorithmic methods
24
+ //@{
25
+
26
+ /// Returns pivot row, -1 if none
27
+ virtual int pivotRow();
28
+
29
+ /** Updates weights and returns pivot alpha.
30
+ Also does FT update */
31
+ virtual double updateWeights(CoinIndexedVector * input,
32
+ CoinIndexedVector * spare,
33
+ CoinIndexedVector * spare2,
34
+ CoinIndexedVector * updatedColumn);
35
+ /** Updates primal solution (and maybe list of candidates)
36
+ Uses input vector which it deletes
37
+ Computes change in objective function
38
+ */
39
+ virtual void updatePrimalSolution(CoinIndexedVector * input,
40
+ double theta,
41
+ double & changeInObjective);
42
+ //@}
43
+
44
+
45
+ ///@name Constructors and destructors
46
+ //@{
47
+ /// Default Constructor
48
+ ClpDualRowDantzig();
49
+
50
+ /// Copy constructor
51
+ ClpDualRowDantzig(const ClpDualRowDantzig &);
52
+
53
+ /// Assignment operator
54
+ ClpDualRowDantzig & operator=(const ClpDualRowDantzig& rhs);
55
+
56
+ /// Destructor
57
+ virtual ~ClpDualRowDantzig ();
58
+
59
+ /// Clone
60
+ virtual ClpDualRowPivot * clone(bool copyData = true) const;
61
+
62
+ //@}
63
+
64
+ //---------------------------------------------------------------------------
65
+
66
+ private:
67
+ ///@name Private member data
68
+ //@}
69
+ };
70
+
71
+ #endif
@@ -0,0 +1,129 @@
1
+ /* $Id: ClpDualRowPivot.hpp 2070 2014-11-18 11:12:54Z forrest $ */
2
+ // Copyright (C) 2002, 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 ClpDualRowPivot_H
7
+ #define ClpDualRowPivot_H
8
+
9
+ class ClpSimplex;
10
+ class CoinIndexedVector;
11
+
12
+ //#############################################################################
13
+
14
+ /** Dual Row Pivot Abstract Base Class
15
+
16
+ Abstract Base Class for describing an interface to an algorithm
17
+ to choose row pivot in dual simplex algorithm. For some algorithms
18
+ e.g. Dantzig choice then some functions may be null.
19
+
20
+ */
21
+
22
+ class ClpDualRowPivot {
23
+
24
+ public:
25
+
26
+ ///@name Algorithmic methods
27
+ //@{
28
+
29
+ /// Returns pivot row, -1 if none
30
+ virtual int pivotRow() = 0;
31
+
32
+ /** Updates weights and returns pivot alpha.
33
+ Also does FT update */
34
+ virtual double updateWeights(CoinIndexedVector * input,
35
+ CoinIndexedVector * spare,
36
+ CoinIndexedVector * spare2,
37
+ CoinIndexedVector * updatedColumn) = 0;
38
+
39
+ /** Updates primal solution (and maybe list of candidates)
40
+ Uses input vector which it deletes
41
+ Computes change in objective function
42
+ Would be faster if we kept basic regions, but on other hand it
43
+ means everything is always in sync
44
+ */
45
+ /* FIXME: this was pure virtul (=0). Why? */
46
+ virtual void updatePrimalSolution(CoinIndexedVector * input,
47
+ double theta,
48
+ double & changeInObjective) = 0;
49
+ /** Saves any weights round factorization as pivot rows may change
50
+ Will be empty unless steepest edge (will save model)
51
+ May also recompute infeasibility stuff
52
+ 1) before factorization
53
+ 2) after good factorization (if weights empty may initialize)
54
+ 3) after something happened but no factorization
55
+ (e.g. check for infeasible)
56
+ 4) as 2 but restore weights from previous snapshot
57
+ 5) for strong branching - initialize to 1 , infeasibilities
58
+ 6) scale back
59
+ 7) for strong branching - initialize full weights , infeasibilities
60
+ */
61
+ virtual void saveWeights(ClpSimplex * model, int mode);
62
+ /// checks accuracy and may re-initialize (may be empty)
63
+ virtual void checkAccuracy();
64
+ /// Gets rid of last update (may be empty)
65
+ virtual void unrollWeights();
66
+ /// Gets rid of all arrays (may be empty)
67
+ virtual void clearArrays();
68
+ /// Returns true if would not find any row
69
+ virtual bool looksOptimal() const {
70
+ return false;
71
+ }
72
+ /// Called when maximum pivots changes
73
+ virtual void maximumPivotsChanged() {}
74
+ //@}
75
+
76
+
77
+ ///@name Constructors and destructors
78
+ //@{
79
+ /// Default Constructor
80
+ ClpDualRowPivot();
81
+
82
+ /// Copy constructor
83
+ ClpDualRowPivot(const ClpDualRowPivot &);
84
+
85
+ /// Assignment operator
86
+ ClpDualRowPivot & operator=(const ClpDualRowPivot& rhs);
87
+
88
+ /// Destructor
89
+ virtual ~ClpDualRowPivot ();
90
+
91
+ /// Clone
92
+ virtual ClpDualRowPivot * clone(bool copyData = true) const = 0;
93
+
94
+ //@}
95
+
96
+ ///@name Other
97
+ //@{
98
+ /// Returns model
99
+ inline ClpSimplex * model() {
100
+ return model_;
101
+ }
102
+
103
+ /// Sets model (normally to NULL)
104
+ inline void setModel(ClpSimplex * newmodel) {
105
+ model_ = newmodel;
106
+ }
107
+
108
+ /// Returns type (above 63 is extra information)
109
+ inline int type() {
110
+ return type_;
111
+ }
112
+
113
+ //@}
114
+
115
+ //---------------------------------------------------------------------------
116
+
117
+ protected:
118
+ ///@name Protected member data
119
+ //@{
120
+ /// Pointer to model
121
+ ClpSimplex * model_;
122
+ /// Type of row pivot algorithm
123
+ int type_;
124
+ //@}
125
+ };
126
+ #ifndef CLP_DUAL_COLUMN_MULTIPLIER
127
+ //#define CLP_DUAL_COLUMN_MULTIPLIER 0.99999
128
+ #endif
129
+ #endif