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,166 @@
1
+ /* $Id: CoinFileIO.hpp 1439 2011-06-13 16:31:21Z stefan $ */
2
+ // Copyright (C) 2005, COIN-OR. All Rights Reserved.
3
+ // This code is licensed under the terms of the Eclipse Public License (EPL).
4
+
5
+ #ifndef CoinFileIO_H
6
+ #define CoinFileIO_H
7
+
8
+ #include <string>
9
+
10
+ /// Base class for FileIO classes.
11
+ class CoinFileIOBase
12
+ {
13
+ public:
14
+ /// Constructor.
15
+ /// @param fileName The name of the file used by this object.
16
+ CoinFileIOBase (const std::string &fileName);
17
+
18
+ /// Destructor.
19
+ ~CoinFileIOBase ();
20
+
21
+ /// Return the name of the file used by this object.
22
+ const char *getFileName () const;
23
+
24
+ /// Return the method of reading being used
25
+ inline std::string getReadType () const
26
+ { return readType_.c_str();}
27
+ protected:
28
+ std::string readType_;
29
+ private:
30
+ CoinFileIOBase ();
31
+ CoinFileIOBase (const CoinFileIOBase &);
32
+
33
+ std::string fileName_;
34
+ };
35
+
36
+ /// Abstract base class for file input classes.
37
+ class CoinFileInput: public CoinFileIOBase
38
+ {
39
+ public:
40
+ /// indicates whether CoinFileInput supports gzip'ed files
41
+ static bool haveGzipSupport();
42
+ /// indicates whether CoinFileInput supports bzip2'ed files
43
+ static bool haveBzip2Support();
44
+
45
+ /// Factory method, that creates a CoinFileInput (more precisely
46
+ /// a subclass of it) for the file specified. This method reads the
47
+ /// first few bytes of the file and determines if this is a compressed
48
+ /// or a plain file and returns the correct subclass to handle it.
49
+ /// If the file does not exist or uses a compression not compiled in
50
+ /// an exception is thrown.
51
+ /// @param fileName The file that should be read.
52
+ static CoinFileInput *create (const std::string &fileName);
53
+
54
+ /// Constructor (don't use this, use the create method instead).
55
+ /// @param fileName The name of the file used by this object.
56
+ CoinFileInput (const std::string &fileName);
57
+
58
+ /// Destructor.
59
+ virtual ~CoinFileInput ();
60
+
61
+ /// Read a block of data from the file, similar to fread.
62
+ /// @param buffer Address of a buffer to store the data into.
63
+ /// @param size Number of bytes to read (buffer should be large enough).
64
+ /// @return Number of bytes read.
65
+ virtual int read (void *buffer, int size) = 0;
66
+
67
+ /// Reads up to (size-1) characters an stores them into the buffer,
68
+ /// similar to fgets.
69
+ /// Reading ends, when EOF or a newline occurs or (size-1) characters have
70
+ /// been read. The resulting string is terminated with '\0'. If reading
71
+ /// ends due to an encoutered newline, the '\n' is put into the buffer,
72
+ /// before the '\0' is appended.
73
+ /// @param buffer The buffer to put the string into.
74
+ /// @param size The size of the buffer in characters.
75
+ /// @return buffer on success, or 0 if no characters have been read.
76
+ virtual char *gets (char *buffer, int size) = 0;
77
+ };
78
+
79
+ /// Abstract base class for file output classes.
80
+ class CoinFileOutput: public CoinFileIOBase
81
+ {
82
+ public:
83
+
84
+ /// The compression method.
85
+ enum Compression {
86
+ COMPRESS_NONE = 0, ///< No compression.
87
+ COMPRESS_GZIP = 1, ///< gzip compression.
88
+ COMPRESS_BZIP2 = 2 ///< bzip2 compression.
89
+ };
90
+
91
+ /// Returns whether the specified compression method is supported
92
+ /// (i.e. was compiled into COIN).
93
+ static bool compressionSupported (Compression compression);
94
+
95
+ /// Factory method, that creates a CoinFileOutput (more precisely
96
+ /// a subclass of it) for the file specified. If the compression method
97
+ /// is not supported an exception is thrown (so use compressionSupported
98
+ /// first, if this is a problem). The reason for not providing direct
99
+ /// access to the subclasses (and using such a method instead) is that
100
+ /// depending on the build configuration some of the classes are not
101
+ /// available (or functional). This way we can handle all required ifdefs
102
+ /// here instead of polluting other files.
103
+ /// @param fileName The file that should be read.
104
+ /// @param compression Compression method used.
105
+ static CoinFileOutput *create (const std::string &fileName,
106
+ Compression compression);
107
+
108
+ /// Constructor (don't use this, use the create method instead).
109
+ /// @param fileName The name of the file used by this object.
110
+ CoinFileOutput (const std::string &fileName);
111
+
112
+ /// Destructor.
113
+ virtual ~CoinFileOutput ();
114
+
115
+ /// Write a block of data to the file, similar to fwrite.
116
+ /// @param buffer Address of a buffer containing the data to be written.
117
+ /// @param size Number of bytes to write.
118
+ /// @return Number of bytes written.
119
+ virtual int write (const void * buffer, int size) = 0;
120
+
121
+ /// Write a string to the file (like fputs).
122
+ /// Just as with fputs no trailing newline is inserted!
123
+ /// The terminating '\0' is not written to the file.
124
+ /// The default implementation determines the length of the string
125
+ /// and calls write on it.
126
+ /// @param s The zero terminated string to be written.
127
+ /// @return true on success, false on error.
128
+ virtual bool puts (const char *s);
129
+
130
+ /// Convenience method: just a 'puts(s.c_str())'.
131
+ inline bool puts (const std::string &s)
132
+ {
133
+ return puts (s.c_str ());
134
+ }
135
+ };
136
+
137
+ /*! \relates CoinFileInput
138
+ \brief Test if the given string looks like an absolute file path
139
+
140
+ The criteria are:
141
+ - unix: string begins with `/'
142
+ - windows: string begins with `\' or with `drv:' (drive specifier)
143
+ */
144
+ bool fileAbsPath (const std::string &path) ;
145
+
146
+ /*! \relates CoinFileInput
147
+ \brief Test if the file is readable, using likely versions of the file
148
+ name, and return the name that worked.
149
+
150
+ The file name is constructed from \p name using the following rules:
151
+ <ul>
152
+ <li> An absolute path is not modified.
153
+ <li> If the name begins with `~', an attempt is made to replace `~'
154
+ with the value of the environment variable HOME.
155
+ <li> If a default prefix (\p dfltPrefix) is provided, it is
156
+ prepended to the name.
157
+ </ul>
158
+ If the constructed file name cannot be opened, and CoinUtils was built
159
+ with support for compressed files, fileCoinReadable will try any
160
+ standard extensions for supported compressed files.
161
+
162
+ The value returned in \p name is the file name that actually worked.
163
+ */
164
+ bool fileCoinReadable(std::string &name,
165
+ const std::string &dfltPrefix = std::string(""));
166
+ #endif
@@ -0,0 +1,34 @@
1
+ /* $Id: CoinFinite.hpp 1762 2014-12-29 20:37:12Z tkr $ */
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
+ /* Defines COIN_DBL_MAX and relatives and provides CoinFinite and CoinIsnan. */
7
+
8
+ #ifndef CoinFinite_H
9
+ #define CoinFinite_H
10
+
11
+ #include <limits>
12
+
13
+ //=============================================================================
14
+ // Smallest positive double value and Plus infinity (double and int)
15
+
16
+ #if 1
17
+ const double COIN_DBL_MIN = (std::numeric_limits<double>::min)();
18
+ const double COIN_DBL_MAX = (std::numeric_limits<double>::max)();
19
+ const int COIN_INT_MAX = (std::numeric_limits<int>::max)();
20
+ const double COIN_INT_MAX_AS_DOUBLE = (std::numeric_limits<int>::max)();
21
+ #else
22
+ #define COIN_DBL_MIN (std::numeric_limits<double>::min())
23
+ #define COIN_DBL_MAX (std::numeric_limits<double>::max())
24
+ #define COIN_INT_MAX (std::numeric_limits<int>::max())
25
+ #define COIN_INT_MAX_AS_DOUBLE (std::numeric_limits<int>::max())
26
+ #endif
27
+
28
+ /** checks if a double value is finite (not infinity and not NaN) */
29
+ extern bool CoinFinite(double val);
30
+
31
+ /** checks if a double value is not a number */
32
+ extern bool CoinIsnan(double val);
33
+
34
+ #endif
@@ -0,0 +1,177 @@
1
+ /* $Id: CoinFloatEqual.hpp 1416 2011-04-17 09:57:29Z stefan $ */
2
+ // Copyright (C) 2000, 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 CoinFloatEqual_H
7
+ #define CoinFloatEqual_H
8
+
9
+ #include <algorithm>
10
+ #include <cmath>
11
+
12
+ #include "CoinFinite.hpp"
13
+
14
+ /*! \file CoinFloatEqual.hpp
15
+ \brief Function objects for testing equality of real numbers.
16
+
17
+ Two objects are provided; one tests for equality to an absolute tolerance,
18
+ one to a scaled tolerance. The tests will handle IEEE floating point, but
19
+ note that infinity == infinity. Mathematicians are rolling in their graves,
20
+ but this matches the behaviour for the common practice of using
21
+ <code>DBL_MAX</code> (<code>numeric_limits<double>::max()</code>, or similar
22
+ large finite number) as infinity.
23
+
24
+ <p>
25
+ Example usage:
26
+ @verbatim
27
+ double d1 = 3.14159 ;
28
+ double d2 = d1 ;
29
+ double d3 = d1+.0001 ;
30
+
31
+ CoinAbsFltEq eq1 ;
32
+ CoinAbsFltEq eq2(.001) ;
33
+
34
+ assert( eq1(d1,d2) ) ;
35
+ assert( !eq1(d1,d3) ) ;
36
+ assert( eq2(d1,d3) ) ;
37
+ @endverbatim
38
+ CoinRelFltEq follows the same pattern. */
39
+
40
+ /*! \brief Equality to an absolute tolerance
41
+
42
+ Operands are considered equal if their difference is within an epsilon ;
43
+ the test does not consider the relative magnitude of the operands.
44
+ */
45
+
46
+ class CoinAbsFltEq
47
+ {
48
+ public:
49
+
50
+ //! Compare function
51
+
52
+ inline bool operator() (const double f1, const double f2) const
53
+
54
+ { if (CoinIsnan(f1) || CoinIsnan(f2)) return false ;
55
+ if (f1 == f2) return true ;
56
+ return (fabs(f1-f2) < epsilon_) ; }
57
+
58
+ /*! \name Constructors and destructors */
59
+ //@{
60
+
61
+ /*! \brief Default constructor
62
+
63
+ Default tolerance is 1.0e-10.
64
+ */
65
+
66
+ CoinAbsFltEq () : epsilon_(1.e-10) {}
67
+
68
+ //! Alternate constructor with epsilon as a parameter
69
+
70
+ CoinAbsFltEq (const double epsilon) : epsilon_(epsilon) {}
71
+
72
+ //! Destructor
73
+
74
+ virtual ~CoinAbsFltEq () {}
75
+
76
+ //! Copy constructor
77
+
78
+ CoinAbsFltEq (const CoinAbsFltEq& src) : epsilon_(src.epsilon_) {}
79
+
80
+ //! Assignment
81
+
82
+ CoinAbsFltEq& operator= (const CoinAbsFltEq& rhs)
83
+
84
+ { if (this != &rhs) epsilon_ = rhs.epsilon_ ;
85
+ return (*this) ; }
86
+
87
+ //@}
88
+
89
+ private:
90
+
91
+ /*! \name Private member data */
92
+ //@{
93
+
94
+ //! Equality tolerance.
95
+
96
+ double epsilon_ ;
97
+
98
+ //@}
99
+
100
+ } ;
101
+
102
+
103
+
104
+ /*! \brief Equality to a scaled tolerance
105
+
106
+ Operands are considered equal if their difference is within a scaled
107
+ epsilon calculated as epsilon_*(1+CoinMax(|f1|,|f2|)).
108
+ */
109
+
110
+ class CoinRelFltEq
111
+ {
112
+ public:
113
+
114
+ //! Compare function
115
+
116
+ inline bool operator() (const double f1, const double f2) const
117
+
118
+ { if (CoinIsnan(f1) || CoinIsnan(f2)) return false ;
119
+ if (f1 == f2) return true ;
120
+ if (!CoinFinite(f1) || !CoinFinite(f2)) return false ;
121
+
122
+ double tol = (fabs(f1)>fabs(f2))?fabs(f1):fabs(f2) ;
123
+
124
+ return (fabs(f1-f2) <= epsilon_*(1+tol)) ; }
125
+
126
+ /*! \name Constructors and destructors */
127
+ //@{
128
+
129
+ #ifndef COIN_FLOAT
130
+ /*! Default constructor
131
+
132
+ Default tolerance is 1.0e-10.
133
+ */
134
+ CoinRelFltEq () : epsilon_(1.e-10) {}
135
+ #else
136
+ /*! Default constructor
137
+
138
+ Default tolerance is 1.0e-6.
139
+ */
140
+ CoinRelFltEq () : epsilon_(1.e-6) {} ; // as float
141
+ #endif
142
+
143
+ //! Alternate constructor with epsilon as a parameter
144
+
145
+ CoinRelFltEq (const double epsilon) : epsilon_(epsilon) {}
146
+
147
+ //! Destructor
148
+
149
+ virtual ~CoinRelFltEq () {}
150
+
151
+ //! Copy constructor
152
+
153
+ CoinRelFltEq (const CoinRelFltEq & src) : epsilon_(src.epsilon_) {}
154
+
155
+ //! Assignment
156
+
157
+ CoinRelFltEq& operator= (const CoinRelFltEq& rhs)
158
+
159
+ { if (this != &rhs) epsilon_ = rhs.epsilon_ ;
160
+ return (*this) ; }
161
+
162
+ //@}
163
+
164
+ private:
165
+
166
+ /*! \name Private member data */
167
+ //@{
168
+
169
+ //! Base equality tolerance
170
+
171
+ double epsilon_ ;
172
+
173
+ //@}
174
+
175
+ } ;
176
+
177
+ #endif