ruby-cbc 0.1.9 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (290) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/Rakefile +0 -2
  4. data/lib/ruby-cbc.rb +1 -1
  5. data/lib/ruby-cbc/problem.rb +6 -8
  6. data/lib/ruby-cbc/version.rb +1 -1
  7. data/ruby-cbc.gemspec +3 -2
  8. metadata +17 -287
  9. data/ext/ruby-cbc/cbc.i +0 -15
  10. data/ext/ruby-cbc/cbc_wrap.c +0 -4618
  11. data/ext/ruby-cbc/extconf.rb +0 -60
  12. data/ext/ruby-cbc/install/bin/cbc +0 -0
  13. data/ext/ruby-cbc/install/bin/clp +0 -0
  14. data/ext/ruby-cbc/install/include/coin/CbcBranchActual.hpp +0 -24
  15. data/ext/ruby-cbc/install/include/coin/CbcBranchAllDifferent.hpp +0 -62
  16. data/ext/ruby-cbc/install/include/coin/CbcBranchBase.hpp +0 -78
  17. data/ext/ruby-cbc/install/include/coin/CbcBranchCut.hpp +0 -183
  18. data/ext/ruby-cbc/install/include/coin/CbcBranchDecision.hpp +0 -129
  19. data/ext/ruby-cbc/install/include/coin/CbcBranchDefaultDecision.hpp +0 -100
  20. data/ext/ruby-cbc/install/include/coin/CbcBranchDynamic.hpp +0 -206
  21. data/ext/ruby-cbc/install/include/coin/CbcBranchLotsize.hpp +0 -242
  22. data/ext/ruby-cbc/install/include/coin/CbcBranchToFixLots.hpp +0 -94
  23. data/ext/ruby-cbc/install/include/coin/CbcBranchingObject.hpp +0 -236
  24. data/ext/ruby-cbc/install/include/coin/CbcClique.hpp +0 -303
  25. data/ext/ruby-cbc/install/include/coin/CbcCompare.hpp +0 -39
  26. data/ext/ruby-cbc/install/include/coin/CbcCompareActual.hpp +0 -14
  27. data/ext/ruby-cbc/install/include/coin/CbcCompareBase.hpp +0 -142
  28. data/ext/ruby-cbc/install/include/coin/CbcCompareDefault.hpp +0 -120
  29. data/ext/ruby-cbc/install/include/coin/CbcCompareDepth.hpp +0 -47
  30. data/ext/ruby-cbc/install/include/coin/CbcCompareEstimate.hpp +0 -48
  31. data/ext/ruby-cbc/install/include/coin/CbcCompareObjective.hpp +0 -49
  32. data/ext/ruby-cbc/install/include/coin/CbcConfig.h +0 -14
  33. data/ext/ruby-cbc/install/include/coin/CbcConsequence.hpp +0 -49
  34. data/ext/ruby-cbc/install/include/coin/CbcCountRowCut.hpp +0 -168
  35. data/ext/ruby-cbc/install/include/coin/CbcCutGenerator.hpp +0 -482
  36. data/ext/ruby-cbc/install/include/coin/CbcCutModifier.hpp +0 -57
  37. data/ext/ruby-cbc/install/include/coin/CbcCutSubsetModifier.hpp +0 -66
  38. data/ext/ruby-cbc/install/include/coin/CbcDummyBranchingObject.hpp +0 -83
  39. data/ext/ruby-cbc/install/include/coin/CbcEventHandler.hpp +0 -245
  40. data/ext/ruby-cbc/install/include/coin/CbcFathom.hpp +0 -137
  41. data/ext/ruby-cbc/install/include/coin/CbcFathomDynamicProgramming.hpp +0 -169
  42. data/ext/ruby-cbc/install/include/coin/CbcFeasibilityBase.hpp +0 -56
  43. data/ext/ruby-cbc/install/include/coin/CbcFixVariable.hpp +0 -67
  44. data/ext/ruby-cbc/install/include/coin/CbcFollowOn.hpp +0 -207
  45. data/ext/ruby-cbc/install/include/coin/CbcFullNodeInfo.hpp +0 -161
  46. data/ext/ruby-cbc/install/include/coin/CbcGeneral.hpp +0 -60
  47. data/ext/ruby-cbc/install/include/coin/CbcGeneralDepth.hpp +0 -279
  48. data/ext/ruby-cbc/install/include/coin/CbcHeuristic.hpp +0 -682
  49. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDINS.hpp +0 -96
  50. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDW.hpp +0 -309
  51. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDive.hpp +0 -192
  52. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveCoefficient.hpp +0 -52
  53. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveFractional.hpp +0 -52
  54. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveGuided.hpp +0 -55
  55. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveLineSearch.hpp +0 -52
  56. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDivePseudoCost.hpp +0 -60
  57. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveVectorLength.hpp +0 -52
  58. data/ext/ruby-cbc/install/include/coin/CbcHeuristicFPump.hpp +0 -340
  59. data/ext/ruby-cbc/install/include/coin/CbcHeuristicGreedy.hpp +0 -280
  60. data/ext/ruby-cbc/install/include/coin/CbcHeuristicLocal.hpp +0 -271
  61. data/ext/ruby-cbc/install/include/coin/CbcHeuristicPivotAndFix.hpp +0 -58
  62. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRENS.hpp +0 -77
  63. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRINS.hpp +0 -102
  64. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRandRound.hpp +0 -58
  65. data/ext/ruby-cbc/install/include/coin/CbcHeuristicVND.hpp +0 -94
  66. data/ext/ruby-cbc/install/include/coin/CbcLinked.hpp +0 -1406
  67. data/ext/ruby-cbc/install/include/coin/CbcMessage.hpp +0 -94
  68. data/ext/ruby-cbc/install/include/coin/CbcMipStartIO.hpp +0 -26
  69. data/ext/ruby-cbc/install/include/coin/CbcModel.hpp +0 -2952
  70. data/ext/ruby-cbc/install/include/coin/CbcNWay.hpp +0 -166
  71. data/ext/ruby-cbc/install/include/coin/CbcNode.hpp +0 -351
  72. data/ext/ruby-cbc/install/include/coin/CbcNodeInfo.hpp +0 -349
  73. data/ext/ruby-cbc/install/include/coin/CbcObject.hpp +0 -272
  74. data/ext/ruby-cbc/install/include/coin/CbcObjectUpdateData.hpp +0 -64
  75. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.cpp +0 -4134
  76. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.hpp +0 -532
  77. data/ext/ruby-cbc/install/include/coin/CbcParam.hpp +0 -324
  78. data/ext/ruby-cbc/install/include/coin/CbcPartialNodeInfo.hpp +0 -110
  79. data/ext/ruby-cbc/install/include/coin/CbcSOS.hpp +0 -279
  80. data/ext/ruby-cbc/install/include/coin/CbcSimpleInteger.hpp +0 -286
  81. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +0 -564
  82. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerPseudoCost.hpp +0 -114
  83. data/ext/ruby-cbc/install/include/coin/CbcSolver.hpp +0 -447
  84. data/ext/ruby-cbc/install/include/coin/CbcStrategy.hpp +0 -258
  85. data/ext/ruby-cbc/install/include/coin/CbcSubProblem.hpp +0 -83
  86. data/ext/ruby-cbc/install/include/coin/CbcTree.hpp +0 -490
  87. data/ext/ruby-cbc/install/include/coin/CbcTreeLocal.hpp +0 -372
  88. data/ext/ruby-cbc/install/include/coin/Cbc_C_Interface.h +0 -381
  89. data/ext/ruby-cbc/install/include/coin/Cgl012cut.hpp +0 -464
  90. data/ext/ruby-cbc/install/include/coin/CglAllDifferent.hpp +0 -115
  91. data/ext/ruby-cbc/install/include/coin/CglClique.hpp +0 -308
  92. data/ext/ruby-cbc/install/include/coin/CglConfig.h +0 -19
  93. data/ext/ruby-cbc/install/include/coin/CglCutGenerator.hpp +0 -121
  94. data/ext/ruby-cbc/install/include/coin/CglDuplicateRow.hpp +0 -189
  95. data/ext/ruby-cbc/install/include/coin/CglFlowCover.hpp +0 -371
  96. data/ext/ruby-cbc/install/include/coin/CglGMI.hpp +0 -364
  97. data/ext/ruby-cbc/install/include/coin/CglGMIParam.hpp +0 -313
  98. data/ext/ruby-cbc/install/include/coin/CglGomory.hpp +0 -204
  99. data/ext/ruby-cbc/install/include/coin/CglKnapsackCover.hpp +0 -310
  100. data/ext/ruby-cbc/install/include/coin/CglLandP.hpp +0 -306
  101. data/ext/ruby-cbc/install/include/coin/CglLandPValidator.hpp +0 -130
  102. data/ext/ruby-cbc/install/include/coin/CglLiftAndProject.hpp +0 -104
  103. data/ext/ruby-cbc/install/include/coin/CglMessage.hpp +0 -50
  104. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding.hpp +0 -429
  105. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding2.hpp +0 -427
  106. data/ext/ruby-cbc/install/include/coin/CglOddHole.hpp +0 -160
  107. data/ext/ruby-cbc/install/include/coin/CglParam.hpp +0 -93
  108. data/ext/ruby-cbc/install/include/coin/CglPreProcess.hpp +0 -492
  109. data/ext/ruby-cbc/install/include/coin/CglProbing.hpp +0 -543
  110. data/ext/ruby-cbc/install/include/coin/CglRedSplit.hpp +0 -448
  111. data/ext/ruby-cbc/install/include/coin/CglRedSplit2.hpp +0 -494
  112. data/ext/ruby-cbc/install/include/coin/CglRedSplit2Param.hpp +0 -495
  113. data/ext/ruby-cbc/install/include/coin/CglRedSplitParam.hpp +0 -272
  114. data/ext/ruby-cbc/install/include/coin/CglResidualCapacity.hpp +0 -240
  115. data/ext/ruby-cbc/install/include/coin/CglSimpleRounding.hpp +0 -174
  116. data/ext/ruby-cbc/install/include/coin/CglStored.hpp +0 -125
  117. data/ext/ruby-cbc/install/include/coin/CglTreeInfo.hpp +0 -180
  118. data/ext/ruby-cbc/install/include/coin/CglTwomir.hpp +0 -565
  119. data/ext/ruby-cbc/install/include/coin/CglZeroHalf.hpp +0 -133
  120. data/ext/ruby-cbc/install/include/coin/ClpAmplObjective.hpp +0 -113
  121. data/ext/ruby-cbc/install/include/coin/ClpCholeskyBase.hpp +0 -294
  122. data/ext/ruby-cbc/install/include/coin/ClpCholeskyDense.hpp +0 -162
  123. data/ext/ruby-cbc/install/include/coin/ClpConfig.h +0 -17
  124. data/ext/ruby-cbc/install/include/coin/ClpConstraint.hpp +0 -125
  125. data/ext/ruby-cbc/install/include/coin/ClpConstraintAmpl.hpp +0 -108
  126. data/ext/ruby-cbc/install/include/coin/ClpConstraintLinear.hpp +0 -110
  127. data/ext/ruby-cbc/install/include/coin/ClpConstraintQuadratic.hpp +0 -119
  128. data/ext/ruby-cbc/install/include/coin/ClpDualRowDantzig.hpp +0 -71
  129. data/ext/ruby-cbc/install/include/coin/ClpDualRowPivot.hpp +0 -129
  130. data/ext/ruby-cbc/install/include/coin/ClpDualRowSteepest.hpp +0 -153
  131. data/ext/ruby-cbc/install/include/coin/ClpDummyMatrix.hpp +0 -183
  132. data/ext/ruby-cbc/install/include/coin/ClpDynamicExampleMatrix.hpp +0 -186
  133. data/ext/ruby-cbc/install/include/coin/ClpDynamicMatrix.hpp +0 -381
  134. data/ext/ruby-cbc/install/include/coin/ClpEventHandler.hpp +0 -187
  135. data/ext/ruby-cbc/install/include/coin/ClpFactorization.hpp +0 -432
  136. data/ext/ruby-cbc/install/include/coin/ClpGubDynamicMatrix.hpp +0 -247
  137. data/ext/ruby-cbc/install/include/coin/ClpGubMatrix.hpp +0 -358
  138. data/ext/ruby-cbc/install/include/coin/ClpInterior.hpp +0 -570
  139. data/ext/ruby-cbc/install/include/coin/ClpLinearObjective.hpp +0 -103
  140. data/ext/ruby-cbc/install/include/coin/ClpMatrixBase.hpp +0 -524
  141. data/ext/ruby-cbc/install/include/coin/ClpMessage.hpp +0 -131
  142. data/ext/ruby-cbc/install/include/coin/ClpModel.hpp +0 -1307
  143. data/ext/ruby-cbc/install/include/coin/ClpNetworkMatrix.hpp +0 -229
  144. data/ext/ruby-cbc/install/include/coin/ClpNode.hpp +0 -349
  145. data/ext/ruby-cbc/install/include/coin/ClpNonLinearCost.hpp +0 -401
  146. data/ext/ruby-cbc/install/include/coin/ClpObjective.hpp +0 -134
  147. data/ext/ruby-cbc/install/include/coin/ClpPackedMatrix.hpp +0 -638
  148. data/ext/ruby-cbc/install/include/coin/ClpParameters.hpp +0 -126
  149. data/ext/ruby-cbc/install/include/coin/ClpPdcoBase.hpp +0 -103
  150. data/ext/ruby-cbc/install/include/coin/ClpPlusMinusOneMatrix.hpp +0 -290
  151. data/ext/ruby-cbc/install/include/coin/ClpPresolve.hpp +0 -299
  152. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnDantzig.hpp +0 -72
  153. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnPivot.hpp +0 -155
  154. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnSteepest.hpp +0 -247
  155. data/ext/ruby-cbc/install/include/coin/ClpQuadraticObjective.hpp +0 -155
  156. data/ext/ruby-cbc/install/include/coin/ClpSimplex.hpp +0 -1797
  157. data/ext/ruby-cbc/install/include/coin/ClpSimplexDual.hpp +0 -300
  158. data/ext/ruby-cbc/install/include/coin/ClpSimplexNonlinear.hpp +0 -117
  159. data/ext/ruby-cbc/install/include/coin/ClpSimplexOther.hpp +0 -277
  160. data/ext/ruby-cbc/install/include/coin/ClpSimplexPrimal.hpp +0 -244
  161. data/ext/ruby-cbc/install/include/coin/ClpSolve.hpp +0 -446
  162. data/ext/ruby-cbc/install/include/coin/Clp_C_Interface.h +0 -525
  163. data/ext/ruby-cbc/install/include/coin/CoinAlloc.hpp +0 -176
  164. data/ext/ruby-cbc/install/include/coin/CoinBuild.hpp +0 -149
  165. data/ext/ruby-cbc/install/include/coin/CoinDenseFactorization.hpp +0 -419
  166. data/ext/ruby-cbc/install/include/coin/CoinDenseVector.hpp +0 -383
  167. data/ext/ruby-cbc/install/include/coin/CoinDistance.hpp +0 -48
  168. data/ext/ruby-cbc/install/include/coin/CoinError.hpp +0 -257
  169. data/ext/ruby-cbc/install/include/coin/CoinFactorization.hpp +0 -2044
  170. data/ext/ruby-cbc/install/include/coin/CoinFileIO.hpp +0 -166
  171. data/ext/ruby-cbc/install/include/coin/CoinFinite.hpp +0 -34
  172. data/ext/ruby-cbc/install/include/coin/CoinFloatEqual.hpp +0 -177
  173. data/ext/ruby-cbc/install/include/coin/CoinHelperFunctions.hpp +0 -1111
  174. data/ext/ruby-cbc/install/include/coin/CoinIndexedVector.hpp +0 -1164
  175. data/ext/ruby-cbc/install/include/coin/CoinLpIO.hpp +0 -805
  176. data/ext/ruby-cbc/install/include/coin/CoinMessage.hpp +0 -96
  177. data/ext/ruby-cbc/install/include/coin/CoinMessageHandler.hpp +0 -666
  178. data/ext/ruby-cbc/install/include/coin/CoinModel.hpp +0 -1054
  179. data/ext/ruby-cbc/install/include/coin/CoinModelUseful.hpp +0 -441
  180. data/ext/ruby-cbc/install/include/coin/CoinMpsIO.hpp +0 -1056
  181. data/ext/ruby-cbc/install/include/coin/CoinOslFactorization.hpp +0 -280
  182. data/ext/ruby-cbc/install/include/coin/CoinPackedMatrix.hpp +0 -947
  183. data/ext/ruby-cbc/install/include/coin/CoinPackedVector.hpp +0 -657
  184. data/ext/ruby-cbc/install/include/coin/CoinPackedVectorBase.hpp +0 -269
  185. data/ext/ruby-cbc/install/include/coin/CoinParam.hpp +0 -644
  186. data/ext/ruby-cbc/install/include/coin/CoinPragma.hpp +0 -26
  187. data/ext/ruby-cbc/install/include/coin/CoinPresolveDoubleton.hpp +0 -73
  188. data/ext/ruby-cbc/install/include/coin/CoinPresolveDual.hpp +0 -85
  189. data/ext/ruby-cbc/install/include/coin/CoinPresolveDupcol.hpp +0 -226
  190. data/ext/ruby-cbc/install/include/coin/CoinPresolveEmpty.hpp +0 -116
  191. data/ext/ruby-cbc/install/include/coin/CoinPresolveFixed.hpp +0 -181
  192. data/ext/ruby-cbc/install/include/coin/CoinPresolveForcing.hpp +0 -61
  193. data/ext/ruby-cbc/install/include/coin/CoinPresolveImpliedFree.hpp +0 -60
  194. data/ext/ruby-cbc/install/include/coin/CoinPresolveIsolated.hpp +0 -51
  195. data/ext/ruby-cbc/install/include/coin/CoinPresolveMatrix.hpp +0 -1842
  196. data/ext/ruby-cbc/install/include/coin/CoinPresolveMonitor.hpp +0 -105
  197. data/ext/ruby-cbc/install/include/coin/CoinPresolvePsdebug.hpp +0 -166
  198. data/ext/ruby-cbc/install/include/coin/CoinPresolveSingleton.hpp +0 -112
  199. data/ext/ruby-cbc/install/include/coin/CoinPresolveSubst.hpp +0 -101
  200. data/ext/ruby-cbc/install/include/coin/CoinPresolveTighten.hpp +0 -55
  201. data/ext/ruby-cbc/install/include/coin/CoinPresolveTripleton.hpp +0 -66
  202. data/ext/ruby-cbc/install/include/coin/CoinPresolveUseless.hpp +0 -63
  203. data/ext/ruby-cbc/install/include/coin/CoinPresolveZeros.hpp +0 -60
  204. data/ext/ruby-cbc/install/include/coin/CoinRational.hpp +0 -44
  205. data/ext/ruby-cbc/install/include/coin/CoinSearchTree.hpp +0 -465
  206. data/ext/ruby-cbc/install/include/coin/CoinShallowPackedVector.hpp +0 -148
  207. data/ext/ruby-cbc/install/include/coin/CoinSignal.hpp +0 -117
  208. data/ext/ruby-cbc/install/include/coin/CoinSimpFactorization.hpp +0 -431
  209. data/ext/ruby-cbc/install/include/coin/CoinSmartPtr.hpp +0 -528
  210. data/ext/ruby-cbc/install/include/coin/CoinSnapshot.hpp +0 -476
  211. data/ext/ruby-cbc/install/include/coin/CoinSort.hpp +0 -678
  212. data/ext/ruby-cbc/install/include/coin/CoinStructuredModel.hpp +0 -247
  213. data/ext/ruby-cbc/install/include/coin/CoinTime.hpp +0 -310
  214. data/ext/ruby-cbc/install/include/coin/CoinTypes.hpp +0 -64
  215. data/ext/ruby-cbc/install/include/coin/CoinUtility.hpp +0 -19
  216. data/ext/ruby-cbc/install/include/coin/CoinUtilsConfig.h +0 -34
  217. data/ext/ruby-cbc/install/include/coin/CoinWarmStart.hpp +0 -58
  218. data/ext/ruby-cbc/install/include/coin/CoinWarmStartBasis.hpp +0 -456
  219. data/ext/ruby-cbc/install/include/coin/CoinWarmStartDual.hpp +0 -166
  220. data/ext/ruby-cbc/install/include/coin/CoinWarmStartPrimalDual.hpp +0 -211
  221. data/ext/ruby-cbc/install/include/coin/CoinWarmStartVector.hpp +0 -488
  222. data/ext/ruby-cbc/install/include/coin/Coin_C_defines.h +0 -115
  223. data/ext/ruby-cbc/install/include/coin/Idiot.hpp +0 -298
  224. data/ext/ruby-cbc/install/include/coin/OsiAuxInfo.hpp +0 -206
  225. data/ext/ruby-cbc/install/include/coin/OsiBranchingObject.hpp +0 -1005
  226. data/ext/ruby-cbc/install/include/coin/OsiCbcSolverInterface.hpp +0 -764
  227. data/ext/ruby-cbc/install/include/coin/OsiChooseVariable.hpp +0 -534
  228. data/ext/ruby-cbc/install/include/coin/OsiClpSolverInterface.hpp +0 -1509
  229. data/ext/ruby-cbc/install/include/coin/OsiColCut.hpp +0 -324
  230. data/ext/ruby-cbc/install/include/coin/OsiCollections.hpp +0 -35
  231. data/ext/ruby-cbc/install/include/coin/OsiConfig.h +0 -19
  232. data/ext/ruby-cbc/install/include/coin/OsiCut.hpp +0 -245
  233. data/ext/ruby-cbc/install/include/coin/OsiCuts.hpp +0 -474
  234. data/ext/ruby-cbc/install/include/coin/OsiPresolve.hpp +0 -252
  235. data/ext/ruby-cbc/install/include/coin/OsiRowCut.hpp +0 -331
  236. data/ext/ruby-cbc/install/include/coin/OsiRowCutDebugger.hpp +0 -187
  237. data/ext/ruby-cbc/install/include/coin/OsiSolverBranch.hpp +0 -152
  238. data/ext/ruby-cbc/install/include/coin/OsiSolverInterface.hpp +0 -2143
  239. data/ext/ruby-cbc/install/include/coin/OsiSolverParameters.hpp +0 -142
  240. data/ext/ruby-cbc/install/include/coin/OsiUnitTests.hpp +0 -374
  241. data/ext/ruby-cbc/install/lib/libCbc.la +0 -35
  242. data/ext/ruby-cbc/install/lib/libCbc.so +0 -0
  243. data/ext/ruby-cbc/install/lib/libCbc.so.3 +0 -0
  244. data/ext/ruby-cbc/install/lib/libCbc.so.3.9.7 +0 -0
  245. data/ext/ruby-cbc/install/lib/libCbcSolver.la +0 -35
  246. data/ext/ruby-cbc/install/lib/libCbcSolver.so +0 -0
  247. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3 +0 -0
  248. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3.9.7 +0 -0
  249. data/ext/ruby-cbc/install/lib/libCgl.la +0 -35
  250. data/ext/ruby-cbc/install/lib/libCgl.so +0 -0
  251. data/ext/ruby-cbc/install/lib/libCgl.so.1 +0 -0
  252. data/ext/ruby-cbc/install/lib/libCgl.so.1.9.7 +0 -0
  253. data/ext/ruby-cbc/install/lib/libClp.la +0 -35
  254. data/ext/ruby-cbc/install/lib/libClp.so +0 -0
  255. data/ext/ruby-cbc/install/lib/libClp.so.1 +0 -0
  256. data/ext/ruby-cbc/install/lib/libClp.so.1.13.9 +0 -0
  257. data/ext/ruby-cbc/install/lib/libClpSolver.la +0 -35
  258. data/ext/ruby-cbc/install/lib/libClpSolver.so +0 -0
  259. data/ext/ruby-cbc/install/lib/libClpSolver.so.1 +0 -0
  260. data/ext/ruby-cbc/install/lib/libClpSolver.so.1.13.9 +0 -0
  261. data/ext/ruby-cbc/install/lib/libCoinUtils.la +0 -35
  262. data/ext/ruby-cbc/install/lib/libCoinUtils.so +0 -0
  263. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3 +0 -0
  264. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3.10.11 +0 -0
  265. data/ext/ruby-cbc/install/lib/libOsi.la +0 -35
  266. data/ext/ruby-cbc/install/lib/libOsi.so +0 -0
  267. data/ext/ruby-cbc/install/lib/libOsi.so.1 +0 -0
  268. data/ext/ruby-cbc/install/lib/libOsi.so.1.12.6 +0 -0
  269. data/ext/ruby-cbc/install/lib/libOsiCbc.la +0 -35
  270. data/ext/ruby-cbc/install/lib/libOsiCbc.so +0 -0
  271. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3 +0 -0
  272. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3.9.7 +0 -0
  273. data/ext/ruby-cbc/install/lib/libOsiClp.la +0 -35
  274. data/ext/ruby-cbc/install/lib/libOsiClp.so +0 -0
  275. data/ext/ruby-cbc/install/lib/libOsiClp.so.1 +0 -0
  276. data/ext/ruby-cbc/install/lib/libOsiClp.so.1.13.9 +0 -0
  277. data/ext/ruby-cbc/install/lib/libOsiCommonTests.la +0 -35
  278. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so +0 -0
  279. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1 +0 -0
  280. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1.12.6 +0 -0
  281. data/ext/ruby-cbc/install/lib/pkgconfig/cbc.pc +0 -12
  282. data/ext/ruby-cbc/install/lib/pkgconfig/cgl.pc +0 -12
  283. data/ext/ruby-cbc/install/lib/pkgconfig/clp.pc +0 -12
  284. data/ext/ruby-cbc/install/lib/pkgconfig/coindatamiplib3.pc +0 -9
  285. data/ext/ruby-cbc/install/lib/pkgconfig/coindatasample.pc +0 -9
  286. data/ext/ruby-cbc/install/lib/pkgconfig/coinutils.pc +0 -12
  287. data/ext/ruby-cbc/install/lib/pkgconfig/osi-cbc.pc +0 -12
  288. data/ext/ruby-cbc/install/lib/pkgconfig/osi-clp.pc +0 -12
  289. data/ext/ruby-cbc/install/lib/pkgconfig/osi-unittests.pc +0 -12
  290. data/ext/ruby-cbc/install/lib/pkgconfig/osi.pc +0 -12
@@ -1,166 +0,0 @@
1
- /* $Id: CoinWarmStartDual.hpp 1372 2011-01-03 23:31:00Z lou $ */
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 CoinWarmStartDual_H
7
- #define CoinWarmStartDual_H
8
-
9
- #include "CoinHelperFunctions.hpp"
10
- #include "CoinWarmStart.hpp"
11
- #include "CoinWarmStartVector.hpp"
12
-
13
-
14
- //#############################################################################
15
-
16
- /** WarmStart information that is only a dual vector */
17
-
18
- class CoinWarmStartDual : public virtual CoinWarmStart {
19
- public:
20
- /// return the size of the dual vector
21
- inline int size() const { return dual_.size(); }
22
- /// return a pointer to the array of duals
23
- inline const double * dual() const { return dual_.values(); }
24
-
25
- /** Assign the dual vector to be the warmstart information. In this method
26
- the object assumes ownership of the pointer and upon return "dual" will
27
- be a NULL pointer. If copying is desirable use the constructor. */
28
- inline void assignDual(int size, double *& dual)
29
- { dual_.assignVector(size, dual); }
30
-
31
- CoinWarmStartDual() {}
32
-
33
- CoinWarmStartDual(int size, const double * dual) : dual_(size, dual) {}
34
-
35
- CoinWarmStartDual(const CoinWarmStartDual& rhs) : dual_(rhs.dual_) {}
36
-
37
- CoinWarmStartDual& operator=(const CoinWarmStartDual& rhs) {
38
- if (this != &rhs) {
39
- dual_ = rhs.dual_;
40
- }
41
- return *this;
42
- }
43
-
44
- /** `Virtual constructor' */
45
- virtual CoinWarmStart *clone() const {
46
- return new CoinWarmStartDual(*this);
47
- }
48
-
49
- virtual ~CoinWarmStartDual() {}
50
-
51
- /*! \name Dual warm start `diff' methods */
52
- //@{
53
-
54
- /*! \brief Generate a `diff' that can convert the warm start passed as a
55
- parameter to the warm start specified by \c this.
56
-
57
- The capabilities are limited: the basis passed as a parameter can be no
58
- larger than the basis pointed to by \c this.
59
- */
60
-
61
- virtual CoinWarmStartDiff*
62
- generateDiff (const CoinWarmStart *const oldCWS) const ;
63
-
64
- /*! \brief Apply \p diff to this warm start.
65
-
66
- Update this warm start by applying \p diff. It's assumed that the
67
- allocated capacity of the warm start is sufficiently large.
68
- */
69
-
70
- virtual void applyDiff (const CoinWarmStartDiff *const cwsdDiff) ;
71
-
72
- #if 0
73
- protected:
74
- inline const CoinWarmStartVector<double>& warmStartVector() const { return dual_; }
75
- #endif
76
-
77
- //@}
78
-
79
- private:
80
- ///@name Private data members
81
- CoinWarmStartVector<double> dual_;
82
- };
83
-
84
- //#############################################################################
85
-
86
- /*! \class CoinWarmStartDualDiff
87
- \brief A `diff' between two CoinWarmStartDual objects
88
-
89
- This class exists in order to hide from the world the details of
90
- calculating and representing a `diff' between two CoinWarmStartDual
91
- objects. For convenience, assignment, cloning, and deletion are visible to
92
- the world, and default and copy constructors are made available to derived
93
- classes. Knowledge of the rest of this structure, and of generating and
94
- applying diffs, is restricted to the friend functions
95
- CoinWarmStartDual::generateDiff() and CoinWarmStartDual::applyDiff().
96
-
97
- The actual data structure is a pair of vectors, #diffNdxs_ and #diffVals_.
98
-
99
- */
100
-
101
- class CoinWarmStartDualDiff : public virtual CoinWarmStartDiff
102
- { public:
103
-
104
- /*! \brief `Virtual constructor' */
105
- virtual CoinWarmStartDiff *clone() const
106
- {
107
- return new CoinWarmStartDualDiff(*this) ;
108
- }
109
-
110
- /*! \brief Assignment */
111
- virtual CoinWarmStartDualDiff &operator= (const CoinWarmStartDualDiff &rhs)
112
- {
113
- if (this != &rhs) {
114
- diff_ = rhs.diff_;
115
- }
116
- return *this;
117
- }
118
-
119
- /*! \brief Destructor */
120
- virtual ~CoinWarmStartDualDiff() {}
121
-
122
- protected:
123
-
124
- /*! \brief Default constructor
125
-
126
- This is protected (rather than private) so that derived classes can
127
- see it when they make <i>their</i> default constructor protected or
128
- private.
129
- */
130
- CoinWarmStartDualDiff () : diff_() {}
131
-
132
- /*! \brief Copy constructor
133
-
134
- For convenience when copying objects containing CoinWarmStartDualDiff
135
- objects. But consider whether you should be using #clone() to retain
136
- polymorphism.
137
-
138
- This is protected (rather than private) so that derived classes can
139
- see it when the make <i>their</i> copy constructor protected or
140
- private.
141
- */
142
- CoinWarmStartDualDiff (const CoinWarmStartDualDiff &rhs) :
143
- diff_(rhs.diff_) {}
144
-
145
- private:
146
-
147
- friend CoinWarmStartDiff*
148
- CoinWarmStartDual::generateDiff(const CoinWarmStart *const oldCWS) const ;
149
- friend void
150
- CoinWarmStartDual::applyDiff(const CoinWarmStartDiff *const diff) ;
151
-
152
- /*! \brief Standard constructor */
153
- CoinWarmStartDualDiff (int sze, const unsigned int *const diffNdxs,
154
- const double *const diffVals) :
155
- diff_(sze, diffNdxs, diffVals) {}
156
-
157
- /*!
158
- \brief The difference in the dual vector is simply the difference in a
159
- vector.
160
- */
161
- CoinWarmStartVectorDiff<double> diff_;
162
- };
163
-
164
-
165
- #endif
166
-
@@ -1,211 +0,0 @@
1
- /* $Id: CoinWarmStartPrimalDual.hpp 1372 2011-01-03 23:31:00Z lou $ */
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 CoinWarmStartPrimalDual_H
7
- #define CoinWarmStartPrimalDual_H
8
-
9
- #include "CoinHelperFunctions.hpp"
10
- #include "CoinWarmStart.hpp"
11
- #include "CoinWarmStartVector.hpp"
12
-
13
-
14
- //#############################################################################
15
-
16
- /** WarmStart information that is only a dual vector */
17
-
18
- class CoinWarmStartPrimalDual : public virtual CoinWarmStart {
19
- public:
20
- /// return the size of the dual vector
21
- inline int dualSize() const { return dual_.size(); }
22
- /// return a pointer to the array of duals
23
- inline const double * dual() const { return dual_.values(); }
24
-
25
- /// return the size of the primal vector
26
- inline int primalSize() const { return primal_.size(); }
27
- /// return a pointer to the array of primals
28
- inline const double * primal() const { return primal_.values(); }
29
-
30
- /** Assign the primal/dual vectors to be the warmstart information. In this
31
- method the object assumes ownership of the pointers and upon return \c
32
- primal and \c dual will be a NULL pointers. If copying is desirable use
33
- the constructor.
34
-
35
- NOTE: \c primal and \c dual must have been allocated by new double[],
36
- because they will be freed by delete[] upon the desructtion of this
37
- object...
38
- */
39
- void assign(int primalSize, int dualSize, double*& primal, double *& dual) {
40
- primal_.assignVector(primalSize, primal);
41
- dual_.assignVector(dualSize, dual);
42
- }
43
-
44
- CoinWarmStartPrimalDual() : primal_(), dual_() {}
45
-
46
- CoinWarmStartPrimalDual(int primalSize, int dualSize,
47
- const double* primal, const double * dual) :
48
- primal_(primalSize, primal), dual_(dualSize, dual) {}
49
-
50
- CoinWarmStartPrimalDual(const CoinWarmStartPrimalDual& rhs) :
51
- primal_(rhs.primal_), dual_(rhs.dual_) {}
52
-
53
- CoinWarmStartPrimalDual& operator=(const CoinWarmStartPrimalDual& rhs) {
54
- if (this != &rhs) {
55
- primal_ = rhs.primal_;
56
- dual_ = rhs.dual_;
57
- }
58
- return *this;
59
- }
60
-
61
- /*! \brief Clear the data
62
-
63
- Make it appear as if the warmstart was just created using the default
64
- constructor.
65
- */
66
- inline void clear() {
67
- primal_.clear();
68
- dual_.clear();
69
- }
70
-
71
- inline void swap(CoinWarmStartPrimalDual& rhs) {
72
- if (this != &rhs) {
73
- primal_.swap(rhs.primal_);
74
- dual_.swap(rhs.dual_);
75
- }
76
- }
77
-
78
- /** `Virtual constructor' */
79
- virtual CoinWarmStart *clone() const {
80
- return new CoinWarmStartPrimalDual(*this);
81
- }
82
-
83
- virtual ~CoinWarmStartPrimalDual() {}
84
-
85
- /*! \name PrimalDual warm start `diff' methods */
86
- //@{
87
-
88
- /*! \brief Generate a `diff' that can convert the warm start passed as a
89
- parameter to the warm start specified by \c this.
90
-
91
- The capabilities are limited: the basis passed as a parameter can be no
92
- larger than the basis pointed to by \c this.
93
- */
94
-
95
- virtual CoinWarmStartDiff*
96
- generateDiff (const CoinWarmStart *const oldCWS) const ;
97
-
98
- /*! \brief Apply \p diff to this warm start.
99
-
100
- Update this warm start by applying \p diff. It's assumed that the
101
- allocated capacity of the warm start is sufficiently large.
102
- */
103
-
104
- virtual void applyDiff (const CoinWarmStartDiff *const cwsdDiff) ;
105
-
106
- //@}
107
-
108
- #if 0
109
- protected:
110
- inline const CoinWarmStartVector<double>& primalWarmStartVector() const
111
- { return primal_; }
112
- inline const CoinWarmStartVector<double>& dualWarmStartVector() const
113
- { return dual_; }
114
- #endif
115
-
116
- private:
117
- ///@name Private data members
118
- //@{
119
- CoinWarmStartVector<double> primal_;
120
- CoinWarmStartVector<double> dual_;
121
- //@}
122
- };
123
-
124
- //#############################################################################
125
-
126
- /*! \class CoinWarmStartPrimalDualDiff
127
- \brief A `diff' between two CoinWarmStartPrimalDual objects
128
-
129
- This class exists in order to hide from the world the details of calculating
130
- and representing a `diff' between two CoinWarmStartPrimalDual objects. For
131
- convenience, assignment, cloning, and deletion are visible to the world, and
132
- default and copy constructors are made available to derived classes.
133
- Knowledge of the rest of this structure, and of generating and applying
134
- diffs, is restricted to the friend functions
135
- CoinWarmStartPrimalDual::generateDiff() and
136
- CoinWarmStartPrimalDual::applyDiff().
137
-
138
- The actual data structure is a pair of vectors, #diffNdxs_ and #diffVals_.
139
-
140
- */
141
-
142
- class CoinWarmStartPrimalDualDiff : public virtual CoinWarmStartDiff
143
- {
144
- friend CoinWarmStartDiff*
145
- CoinWarmStartPrimalDual::generateDiff(const CoinWarmStart *const oldCWS) const;
146
- friend void
147
- CoinWarmStartPrimalDual::applyDiff(const CoinWarmStartDiff *const diff) ;
148
-
149
- public:
150
-
151
- /*! \brief `Virtual constructor'. To be used when retaining polymorphism is
152
- important */
153
- virtual CoinWarmStartDiff *clone() const
154
- {
155
- return new CoinWarmStartPrimalDualDiff(*this);
156
- }
157
-
158
- /*! \brief Destructor */
159
- virtual ~CoinWarmStartPrimalDualDiff() {}
160
-
161
- protected:
162
-
163
- /*! \brief Default constructor
164
-
165
- This is protected (rather than private) so that derived classes can
166
- see it when they make <i>their</i> default constructor protected or
167
- private.
168
- */
169
- CoinWarmStartPrimalDualDiff () : primalDiff_(), dualDiff_() {}
170
-
171
- /*! \brief Copy constructor
172
-
173
- For convenience when copying objects containing
174
- CoinWarmStartPrimalDualDiff objects. But consider whether you should be
175
- using #clone() to retain polymorphism.
176
-
177
- This is protected (rather than private) so that derived classes can
178
- see it when the make <i>their</i> copy constructor protected or
179
- private.
180
- */
181
- CoinWarmStartPrimalDualDiff (const CoinWarmStartPrimalDualDiff &rhs) :
182
- primalDiff_(rhs.primalDiff_), dualDiff_(rhs.dualDiff_) {}
183
-
184
- /*! \brief Clear the data
185
-
186
- Make it appear as if the diff was just created using the default
187
- constructor.
188
- */
189
- inline void clear() {
190
- primalDiff_.clear();
191
- dualDiff_.clear();
192
- }
193
-
194
- inline void swap(CoinWarmStartPrimalDualDiff& rhs) {
195
- if (this != &rhs) {
196
- primalDiff_.swap(rhs.primalDiff_);
197
- dualDiff_.swap(rhs.dualDiff_);
198
- }
199
- }
200
-
201
- private:
202
-
203
- /*!
204
- \brief These two differences describe the differences in the primal and
205
- in the dual vector.
206
- */
207
- CoinWarmStartVectorDiff<double> primalDiff_;
208
- CoinWarmStartVectorDiff<double> dualDiff_;
209
- } ;
210
-
211
- #endif
@@ -1,488 +0,0 @@
1
- /* $Id: CoinWarmStartVector.hpp 1498 2011-11-02 15:25:35Z mjs $ */
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 CoinWarmStartVector_H
7
- #define CoinWarmStartVector_H
8
-
9
- #if defined(_MSC_VER)
10
- // Turn off compiler warning about long names
11
- # pragma warning(disable:4786)
12
- #endif
13
-
14
- #include <cassert>
15
- #include <cmath>
16
-
17
- #include "CoinHelperFunctions.hpp"
18
- #include "CoinWarmStart.hpp"
19
-
20
-
21
- //#############################################################################
22
-
23
- /** WarmStart information that is only a vector */
24
-
25
- template <typename T>
26
- class CoinWarmStartVector : public virtual CoinWarmStart
27
- {
28
- protected:
29
- inline void gutsOfDestructor() {
30
- delete[] values_;
31
- }
32
- inline void gutsOfCopy(const CoinWarmStartVector<T>& rhs) {
33
- size_ = rhs.size_;
34
- values_ = new T[size_];
35
- CoinDisjointCopyN(rhs.values_, size_, values_);
36
- }
37
-
38
- public:
39
- /// return the size of the vector
40
- int size() const { return size_; }
41
- /// return a pointer to the array of vectors
42
- const T* values() const { return values_; }
43
-
44
- /** Assign the vector to be the warmstart information. In this method
45
- the object assumes ownership of the pointer and upon return #vector will
46
- be a NULL pointer. If copying is desirable use the constructor. */
47
- void assignVector(int size, T*& vec) {
48
- size_ = size;
49
- delete[] values_;
50
- values_ = vec;
51
- vec = NULL;
52
- }
53
-
54
- CoinWarmStartVector() : size_(0), values_(NULL) {}
55
-
56
- CoinWarmStartVector(int size, const T* vec) :
57
- size_(size), values_(new T[size]) {
58
- CoinDisjointCopyN(vec, size, values_);
59
- }
60
-
61
- CoinWarmStartVector(const CoinWarmStartVector& rhs) {
62
- gutsOfCopy(rhs);
63
- }
64
-
65
- CoinWarmStartVector& operator=(const CoinWarmStartVector& rhs) {
66
- if (this != &rhs) {
67
- gutsOfDestructor();
68
- gutsOfCopy(rhs);
69
- }
70
- return *this;
71
- }
72
-
73
- inline void swap(CoinWarmStartVector& rhs) {
74
- if (this != &rhs) {
75
- std::swap(size_, rhs.size_);
76
- std::swap(values_, rhs.values_);
77
- }
78
- }
79
-
80
- /** `Virtual constructor' */
81
- virtual CoinWarmStart *clone() const {
82
- return new CoinWarmStartVector(*this);
83
- }
84
-
85
- virtual ~CoinWarmStartVector() {
86
- gutsOfDestructor();
87
- }
88
-
89
- /*! \brief Clear the data
90
-
91
- Make it appear as if the warmstart was just created using the default
92
- constructor.
93
- */
94
- inline void clear() {
95
- size_ = 0;
96
- delete[] values_;
97
- values_ = NULL;
98
- }
99
-
100
- /*! \name Vector warm start `diff' methods */
101
- //@{
102
-
103
- /*! \brief Generate a `diff' that can convert the warm start passed as a
104
- parameter to the warm start specified by \c this.
105
-
106
- The capabilities are limited: the basis passed as a parameter can be no
107
- larger than the basis pointed to by \c this.
108
- */
109
-
110
- virtual CoinWarmStartDiff*
111
- generateDiff (const CoinWarmStart *const oldCWS) const ;
112
-
113
- /*! \brief Apply \p diff to this warm start.
114
-
115
- Update this warm start by applying \p diff. It's assumed that the
116
- allocated capacity of the warm start is sufficiently large.
117
- */
118
-
119
- virtual void applyDiff (const CoinWarmStartDiff *const cwsdDiff) ;
120
-
121
- //@}
122
-
123
- private:
124
- ///@name Private data members
125
- //@{
126
- /// the size of the vector
127
- int size_;
128
- /// the vector itself
129
- T* values_;
130
- //@}
131
- };
132
-
133
- //=============================================================================
134
-
135
- /*! \class CoinWarmStartVectorDiff
136
- \brief A `diff' between two CoinWarmStartVector objects
137
-
138
- This class exists in order to hide from the world the details of calculating
139
- and representing a `diff' between two CoinWarmStartVector objects. For
140
- convenience, assignment, cloning, and deletion are visible to the world, and
141
- default and copy constructors are made available to derived classes.
142
- Knowledge of the rest of this structure, and of generating and applying
143
- diffs, is restricted to the friend functions
144
- CoinWarmStartVector::generateDiff() and CoinWarmStartVector::applyDiff().
145
-
146
- The actual data structure is a pair of vectors, #diffNdxs_ and #diffVals_.
147
-
148
- */
149
-
150
- template <typename T>
151
- class CoinWarmStartVectorDiff : public virtual CoinWarmStartDiff
152
- {
153
- friend CoinWarmStartDiff*
154
- CoinWarmStartVector<T>::generateDiff(const CoinWarmStart *const oldCWS) const;
155
- friend void
156
- CoinWarmStartVector<T>::applyDiff(const CoinWarmStartDiff *const diff) ;
157
-
158
- public:
159
-
160
- /*! \brief `Virtual constructor' */
161
- virtual CoinWarmStartDiff * clone() const {
162
- return new CoinWarmStartVectorDiff(*this) ;
163
- }
164
-
165
- /*! \brief Assignment */
166
- virtual CoinWarmStartVectorDiff &
167
- operator= (const CoinWarmStartVectorDiff<T>& rhs) ;
168
-
169
- /*! \brief Destructor */
170
- virtual ~CoinWarmStartVectorDiff() {
171
- delete[] diffNdxs_ ;
172
- delete[] diffVals_ ;
173
- }
174
-
175
- inline void swap(CoinWarmStartVectorDiff& rhs) {
176
- if (this != &rhs) {
177
- std::swap(sze_, rhs.sze_);
178
- std::swap(diffNdxs_, rhs.diffNdxs_);
179
- std::swap(diffVals_, rhs.diffVals_);
180
- }
181
- }
182
-
183
- /*! \brief Default constructor
184
- */
185
- CoinWarmStartVectorDiff () : sze_(0), diffNdxs_(0), diffVals_(NULL) {}
186
-
187
- /*! \brief Copy constructor
188
-
189
- For convenience when copying objects containing CoinWarmStartVectorDiff
190
- objects. But consider whether you should be using #clone() to retain
191
- polymorphism.
192
- */
193
- CoinWarmStartVectorDiff(const CoinWarmStartVectorDiff<T>& rhs) ;
194
-
195
- /*! \brief Standard constructor */
196
- CoinWarmStartVectorDiff(int sze, const unsigned int* const diffNdxs,
197
- const T* const diffVals) ;
198
-
199
- /*! \brief Clear the data
200
-
201
- Make it appear as if the diff was just created using the default
202
- constructor.
203
- */
204
- inline void clear() {
205
- sze_ = 0;
206
- delete[] diffNdxs_; diffNdxs_ = NULL;
207
- delete[] diffVals_; diffVals_ = NULL;
208
- }
209
-
210
- private:
211
-
212
- /*!
213
- \brief Number of entries (and allocated capacity), in units of \c T.
214
- */
215
- int sze_ ;
216
-
217
- /*! \brief Array of diff indices */
218
-
219
- unsigned int* diffNdxs_ ;
220
-
221
- /*! \brief Array of diff values */
222
-
223
- T* diffVals_ ;
224
- };
225
-
226
- //##############################################################################
227
-
228
- template <typename T, typename U>
229
- class CoinWarmStartVectorPair : public virtual CoinWarmStart
230
- {
231
- private:
232
- CoinWarmStartVector<T> t_;
233
- CoinWarmStartVector<U> u_;
234
-
235
- public:
236
- inline int size0() const { return t_.size(); }
237
- inline int size1() const { return u_.size(); }
238
- inline const T* values0() const { return t_.values(); }
239
- inline const U* values1() const { return u_.values(); }
240
-
241
- inline void assignVector0(int size, T*& vec) { t_.assignVector(size, vec); }
242
- inline void assignVector1(int size, U*& vec) { u_.assignVector(size, vec); }
243
-
244
- CoinWarmStartVectorPair() {}
245
- CoinWarmStartVectorPair(int s0, const T* v0, int s1, const U* v1) :
246
- t_(s0, v0), u_(s1, v1) {}
247
-
248
- CoinWarmStartVectorPair(const CoinWarmStartVectorPair<T,U>& rhs) :
249
- t_(rhs.t_), u_(rhs.u_) {}
250
- CoinWarmStartVectorPair& operator=(const CoinWarmStartVectorPair<T,U>& rhs) {
251
- if (this != &rhs) {
252
- t_ = rhs.t_;
253
- u_ = rhs.u_;
254
- }
255
- return *this;
256
- }
257
-
258
- inline void swap(CoinWarmStartVectorPair<T,U>& rhs) {
259
- t_.swap(rhs.t_);
260
- u_.swap(rhs.u_);
261
- }
262
-
263
- virtual CoinWarmStart *clone() const {
264
- return new CoinWarmStartVectorPair(*this);
265
- }
266
-
267
- virtual ~CoinWarmStartVectorPair() {}
268
-
269
- inline void clear() {
270
- t_.clear();
271
- u_.clear();
272
- }
273
-
274
- virtual CoinWarmStartDiff*
275
- generateDiff (const CoinWarmStart *const oldCWS) const ;
276
-
277
- virtual void applyDiff (const CoinWarmStartDiff *const cwsdDiff) ;
278
- };
279
-
280
- //=============================================================================
281
-
282
- template <typename T, typename U>
283
- class CoinWarmStartVectorPairDiff : public virtual CoinWarmStartDiff
284
- {
285
- friend CoinWarmStartDiff*
286
- CoinWarmStartVectorPair<T,U>::generateDiff(const CoinWarmStart *const oldCWS) const;
287
- friend void
288
- CoinWarmStartVectorPair<T,U>::applyDiff(const CoinWarmStartDiff *const diff) ;
289
-
290
- private:
291
- CoinWarmStartVectorDiff<T> tdiff_;
292
- CoinWarmStartVectorDiff<U> udiff_;
293
-
294
- public:
295
- CoinWarmStartVectorPairDiff() {}
296
- CoinWarmStartVectorPairDiff(const CoinWarmStartVectorPairDiff<T,U>& rhs) :
297
- tdiff_(rhs.tdiff_), udiff_(rhs.udiff_) {}
298
- virtual ~CoinWarmStartVectorPairDiff() {}
299
-
300
- virtual CoinWarmStartVectorPairDiff&
301
- operator=(const CoinWarmStartVectorPairDiff<T,U>& rhs) {
302
- if (this != &rhs) {
303
- tdiff_ = rhs.tdiff_;
304
- udiff_ = rhs.udiff_;
305
- }
306
- return *this;
307
- }
308
-
309
- virtual CoinWarmStartDiff * clone() const {
310
- return new CoinWarmStartVectorPairDiff(*this) ;
311
- }
312
-
313
- inline void swap(CoinWarmStartVectorPairDiff<T,U>& rhs) {
314
- tdiff_.swap(rhs.tdiff_);
315
- udiff_.swap(rhs.udiff_);
316
- }
317
-
318
- inline void clear() {
319
- tdiff_.clear();
320
- udiff_.clear();
321
- }
322
- };
323
-
324
- //##############################################################################
325
- //#############################################################################
326
-
327
- /*
328
- Generate a `diff' that can convert the warm start passed as a parameter to
329
- the warm start specified by this.
330
-
331
- The capabilities are limited: the basis passed as a parameter can be no
332
- larger than the basis pointed to by this.
333
- */
334
-
335
- template <typename T> CoinWarmStartDiff*
336
- CoinWarmStartVector<T>::generateDiff(const CoinWarmStart *const oldCWS) const
337
- {
338
- /*
339
- Make sure the parameter is CoinWarmStartVector or derived class.
340
- */
341
- const CoinWarmStartVector<T>* oldVector =
342
- dynamic_cast<const CoinWarmStartVector<T>*>(oldCWS);
343
- if (!oldVector)
344
- { throw CoinError("Old warm start not derived from CoinWarmStartVector.",
345
- "generateDiff","CoinWarmStartVector") ; }
346
- const CoinWarmStartVector<T>* newVector = this ;
347
- /*
348
- Make sure newVector is equal or bigger than oldVector. Calculate the worst
349
- case number of diffs and allocate vectors to hold them.
350
- */
351
- const int oldCnt = oldVector->size() ;
352
- const int newCnt = newVector->size() ;
353
-
354
- assert(newCnt >= oldCnt) ;
355
-
356
- unsigned int *diffNdx = new unsigned int [newCnt];
357
- T* diffVal = new T[newCnt];
358
- /*
359
- Scan the vector vectors. For the portion of the vectors which overlap,
360
- create diffs. Then add any additional entries from newVector.
361
- */
362
- const T*oldVal = oldVector->values() ;
363
- const T*newVal = newVector->values() ;
364
- int numberChanged = 0 ;
365
- int i ;
366
- for (i = 0 ; i < oldCnt ; i++) {
367
- if (oldVal[i] != newVal[i]) {
368
- diffNdx[numberChanged] = i ;
369
- diffVal[numberChanged++] = newVal[i] ;
370
- }
371
- }
372
- for ( ; i < newCnt ; i++) {
373
- diffNdx[numberChanged] = i ;
374
- diffVal[numberChanged++] = newVal[i] ;
375
- }
376
- /*
377
- Create the object of our desire.
378
- */
379
- CoinWarmStartVectorDiff<T> *diff =
380
- new CoinWarmStartVectorDiff<T>(numberChanged,diffNdx,diffVal) ;
381
- /*
382
- Clean up and return.
383
- */
384
- delete[] diffNdx ;
385
- delete[] diffVal ;
386
-
387
- return diff;
388
- // return (dynamic_cast<CoinWarmStartDiff<T>*>(diff)) ;
389
- }
390
-
391
-
392
- /*
393
- Apply diff to this warm start.
394
-
395
- Update this warm start by applying diff. It's assumed that the
396
- allocated capacity of the warm start is sufficiently large.
397
- */
398
-
399
- template <typename T> void
400
- CoinWarmStartVector<T>::applyDiff (const CoinWarmStartDiff *const cwsdDiff)
401
- {
402
- /*
403
- Make sure we have a CoinWarmStartVectorDiff
404
- */
405
- const CoinWarmStartVectorDiff<T>* diff =
406
- dynamic_cast<const CoinWarmStartVectorDiff<T>*>(cwsdDiff) ;
407
- if (!diff) {
408
- throw CoinError("Diff not derived from CoinWarmStartVectorDiff.",
409
- "applyDiff","CoinWarmStartVector") ;
410
- }
411
- /*
412
- Application is by straighforward replacement of words in the vector vector.
413
- */
414
- const int numberChanges = diff->sze_ ;
415
- const unsigned int *diffNdxs = diff->diffNdxs_ ;
416
- const T* diffVals = diff->diffVals_ ;
417
- T* vals = this->values_ ;
418
-
419
- for (int i = 0 ; i < numberChanges ; i++) {
420
- unsigned int diffNdx = diffNdxs[i] ;
421
- T diffVal = diffVals[i] ;
422
- vals[diffNdx] = diffVal ;
423
- }
424
- }
425
-
426
- //#############################################################################
427
-
428
-
429
- // Assignment
430
-
431
- template <typename T> CoinWarmStartVectorDiff<T>&
432
- CoinWarmStartVectorDiff<T>::operator=(const CoinWarmStartVectorDiff<T> &rhs)
433
- {
434
- if (this != &rhs) {
435
- if (sze_ > 0) {
436
- delete[] diffNdxs_ ;
437
- delete[] diffVals_ ;
438
- }
439
- sze_ = rhs.sze_ ;
440
- if (sze_ > 0) {
441
- diffNdxs_ = new unsigned int[sze_] ;
442
- memcpy(diffNdxs_,rhs.diffNdxs_,sze_*sizeof(unsigned int)) ;
443
- diffVals_ = new T[sze_] ;
444
- memcpy(diffVals_,rhs.diffVals_,sze_*sizeof(T)) ;
445
- } else {
446
- diffNdxs_ = 0 ;
447
- diffVals_ = 0 ;
448
- }
449
- }
450
-
451
- return (*this) ;
452
- }
453
-
454
-
455
- // Copy constructor
456
-
457
- template <typename T>
458
- CoinWarmStartVectorDiff<T>::CoinWarmStartVectorDiff(const CoinWarmStartVectorDiff<T> &rhs)
459
- : sze_(rhs.sze_),
460
- diffNdxs_(0),
461
- diffVals_(0)
462
- {
463
- if (sze_ > 0) {
464
- diffNdxs_ = new unsigned int[sze_] ;
465
- memcpy(diffNdxs_,rhs.diffNdxs_,sze_*sizeof(unsigned int)) ;
466
- diffVals_ = new T[sze_] ;
467
- memcpy(diffVals_,rhs.diffVals_,sze_*sizeof(T)) ;
468
- }
469
- }
470
-
471
- /// Standard constructor
472
-
473
- template <typename T>
474
- CoinWarmStartVectorDiff<T>::CoinWarmStartVectorDiff
475
- (int sze, const unsigned int *const diffNdxs, const T *const diffVals)
476
- : sze_(sze),
477
- diffNdxs_(0),
478
- diffVals_(0)
479
- {
480
- if (sze > 0) {
481
- diffNdxs_ = new unsigned int[sze] ;
482
- memcpy(diffNdxs_,diffNdxs,sze*sizeof(unsigned int)) ;
483
- diffVals_ = new T[sze] ;
484
- memcpy(diffVals_,diffVals,sze*sizeof(T)) ;
485
- }
486
- }
487
-
488
- #endif