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,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